
У друзей, которые работают на платформе количественной торговли Inventor, часто могут быть такие потребности:
При разработке стратегии для аренды вы хотите установить различные ограничения по фондам для стратегии, установить различные ограничения обмена для аренды стратегии (ограничить операции обмена стратегии) или вы хотите установить ограничения по конфигурации счета обмена для аренды стратегии (указать Эту стратегию можно использовать только с заранее согласованными счетами. Когда пользователь стратегии использует другие счета, стратегия выдает запрос и больше не выполняет транзакции и т. д.).
Очевидно, что их нельзя жестко запрограммировать в коде, потому что если они жестко запрограммированы в коде. Эти ограничения будут распространяться на всех пользователей, и будет невозможно контролировать различные разрешения на использование для разных групп пользователей.
На основе вышеописанных сценариев спроса в количественной торговой платформе Inventor были расширены новые функции:Настройки метаданных кода регистрации аренды полиса
При создании регистрационного кода вы можете указать метаданныеMeta, данные представляют собой строку. Примечание: При генерации регистрационного кода длина метаданных не может превышать 190 символов.
Например, я разработчик стратегии. Я разработал стратегию для спотовой торговой пары BTC_USDT. Стратегия делает только длинные позиции (изначально только котируемая валютаQuoteCurrencyТо есть USDT. Купив его, вы получите торговую валюту.BaseCurrencyЯ хочу арендовать эту стратегию, название стратегииtest1。
Видно, что конструкция ограничений стратегии должна разрабатываться специально в сочетании с конкретными обстоятельствами стратегии. Этот пример является демонстрацией стратегии спот. А что, если стратегия является стратегией фьючерсов? Затем необходимо ограничить информацию о фьючерсных позициях (на основе данных о позициях, возвращаемых GetPosition). Когда стратегия обнаруживает, что позиция превышает лимит, логика открытия ордера больше не будет выполняться (другая логика должна выполняться в обычном режиме, например, закрытие позиций).
Поэтому эти проекты должны быть конкретными в сочетании с самой стратегией. Этот пример является всего лишь простым иллюстративным примером и может не иметь практической ценности использования.
Исходный код стратегии:
function main() {
// 策略允许的计价币最大资产数值
var maxBaseCurrency = null
// 获取创建注册码时的元数据
var level = GetMeta()
// 检测Meta对应的条件
if (level == "level1") {
// -1为不限制
maxBaseCurrency = -1
} else if (level == "level2") {
maxBaseCurrency = 10
} else if (level == "level3") {
maxBaseCurrency = 1
} else {
maxBaseCurrency = 0.5
}
while(1) {
Sleep(1000)
var ticker = exchange.GetTicker()
// 检测资产数值
var acc = exchange.GetAccount()
if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
// 停止执行策略交易逻辑
LogStatus(_D(), "持仓超过注册码的使用限定,不再执行策略交易逻辑!")
continue
}
// 其它交易逻辑
// 正常输出状态栏信息
LogStatus(_D(), "策略正常运行!ticker数据:\n", ticker)
}
}
При создании регистрационного кода найдите политику test1 в библиотеке политик и нажмитеДействие элемента, нажмитепродавать。

НажмитеВнутренняя продажа。

Нажмите на «маленький гаечный ключ», чтобы задать метаданные регистрационного кода.

Затем запишите информацию, которую вы хотите ограничить, вMetaЭлементы управления, такие как несколько стратегий, разработанных в этом примере, используют уровни:

Сначала мы устанавливаем мета-контрольlevel1, так что созданный код регистрации имеет стратегию test1level1оценка.
Регистрационный код создан:
购买地址: https://www.fmz.com/m/s/282900
注册码: 7af0c24404b268812c97b55d073c1867
Арендодатель стратегии отправляет этот регистрационный код арендатору стратегии.
Например, в данный момент я использую этот регистрационный код в своей другой учетной записи (strategy renter), чтобы получить право использовать стратегию test1.

Арендатор стратегии, создайте реальный счет, используйте test1 в качестве стратегии, добавьте объект спотовой биржи WexApp (WexApp — это смоделированный счет на платформе FMZ) и запустите реальный счет.

Вы можете видеть, что стратегия работает нормально, что указывает наlevel1Уровень не ограничивает количество удерживаемых позиций (количество монет, удерживаемых на спотовом счете).
Если после использования регистрационного кода политики разработчику политики необходимо скорректировать метаданные выданного регистрационного кода, их можно изменить.
В библиотеке стратегий продайте запись.

Метаданные могут быть изменены.

Мы изменяем предыдущие метаданные регистрационного кода наlevel3, то пользователь стратегии перезапускает тест в реальном времени.

Как вы можете видеть на картинке выше,level3Максимальный лимит уровня удержания — 1 монета.
При сдаче в аренду полисов в соответствии с различными группами пользователей и уровнями оплаты настраиваются специальные метаданные для достижения иерархического управления политиками.
Конечно, выше перечислены только наиболее распространенные требования к ограничениям и контролю. Существуют различные схожие требования, которые можно удовлетворить с помощью этой функции.