У друзей, которые работают на FMZ Quant Trading Platform, часто возникают такие потребности:
Когда вы разрабатываете стратегию аренды, вы хотите иметь различные ограничения средств на стратегию и различные ограничения платформы (ограничить платформы, которыми управляет стратегия), или вы хотите ограничить конфигурацию учетной записи платформы (уточнить, что стратегия может работать только на заранее согласованных счетах; когда пользователь стратегии использует другие счета, стратегия просит и больше не будет торговать и выполнять другие операции).
Эти, очевидно, не могут быть жестко кодированы, потому что если они будут жестко кодированы, все пользователи будут подчиняться этим ограничениям, и они не могут контролировать различные привилегии использования для разных групп пользователей.
Основываясь на вышеуказанных сценариях спроса, платформа FMZ Quant Trading расширила новую функцию:Настройки кода метаданных реестра аренды стратегии.
При создании кода реестра, вы можете указать метаданныеMeta
Примечание: длина мета не может превышать 190 символов при генерировании кода реестра.
Например, я экспортирую разработку стратегии, и я разработал стратегию с спотовой торговой парой BTC_USDT. Стратегия делает только длинные позиции (изначально она имеет только котировку валютыQuoteCurrency
, а именно USDT; после покупки он будет держать позицию сBaseCurrency
Если я хочу арендовать эту стратегию, название стратегииtest1
.
Как видите, ограничения стратегии должны быть специально разработаны в сочетании с конкретной ситуацией стратегии. Этот пример является демонстрацией спотовой стратегии, но что, если стратегия является фьючерсной стратегией? Затем необходимо ограничить информацию о фьючерсной позиции (согласно данным о позиции, возвращенным GetPosition). Когда стратегия обнаружит, что позиция превышает лимит, логика размещения ордера и открытия позиции больше не будет выполняться (другая логика должна выполняться нормально, например, закрытие позиции и другие операции).
Следовательно, разработка этих ограничений должна сочетаться с самой стратегией; пример - это просто инструкция, без реальной стоимости использования.
Стратегия Источник:
function main() {
// The maximum asset value of the quote currency allowed by the strategy
var maxBaseCurrency = null
// Obtain the metadata when the register code is created
var level = GetMeta()
// Detect the corresponding conditions of Meta
if (level == "level1") {
// -1 means no limit
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()
// Detect the assets amount
var acc = exchange.GetAccount()
if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
// Stop executing the strategy trading logic
LogStatus(_D(), "If the position exceeds the usage limits of register code, the strategy trading logic will no longer be executed!")
continue
}
// Other trading logic
// Normally export the information of status bar
LogStatus(_D(), "The strategy is operating normally!ticker data:\n", ticker)
}
}
При создании кода реестра, найдите тест стратегии1 на странице
НажмитеВнутренняя продажа.
Нажмите на маленький значок
Затем, вы должны написать информацию об ограничении вМетауправление, например, несколько уровней использования стратегии, разработанной в этом примере:
Во-первых, мы установилиlevel1
в Мета-контроль, и позвольте созданный код реестра иметьlevel1
из испытания1.
После создания регистрационного кода продавец стратегии отправляет регистрационный код покупателю стратегии.
Например, если я использую код реестра на другом своем счете (как на счете покупателя), я имею право использовать тест стратегии1.
Как покупатель стратегии, вам сначала нужно добавить бота, выбрать test1 в качестве стратегии и добавить объект спотового обмена WexApp (WexApp - это моделированный бот FMZ), а затем запустить бота.
Когда вы видите, как стратегия работает должным образом, это означаетlevel1
не имеет ограничения на сумму позиции (сумма монет, находящейся на спотовом счете).
При использовании кода реестра стратегии, если разработчику стратегии необходимо скорректировать метаданные кода реестра, который должен быть отправлен, он может полностью изменить его.
На странице
Метаданные могут быть изменены.
Мы изменили метаданные старого регистрационного кода наlevel3
, и пользователь стратегии должен перезапустить бота для тестирования.level3
ограничить максимальную сумму позиции до одной монеты.
При аренде стратегии, в соответствии с различными группами пользователей и уровнями оплаты, вы можете специально настроить метаданные, чтобы контролировать стратегию по уровням.
Разумеется, приведенные выше примеры являются лишь наиболее распространенными ограничениями и требованиями к контролю.