Специальные параметры стратегий
Стратегия "MoonShot" и её параметры
Задача данной стратегии — выставлять Buy-ордера на монетах, которые проходят по её фильтрам на заданном расстоянии от текущей цены, плавно перемещать их вверх или вниз вслед за ценой и выкупать монеты на резких прострелах. В отличие от остальных стратегий у стратегии MoonShot нет детекта как такового. Монеты, на которых будут выставляться Buy-ордера, отбираются посредством фильтров стратеги, а ордера выставляются и перемещаются в зависимости от нижеописанных параметров.
Общие параметры
-
MShotPrice: поле для указания цены в процентах от текущей рыночной, на которую выставлять Buy-ордер (значение всегда положительное). Buy-ордер всегда выставляется ниже рыночной цены на значение, указанное в этом параметре, и при плавном изменении цены старается выдерживать это расстояние с помощью механизма «коридор Муншота». Для лонга Buy-ордер будет выставляться автоматически ниже текущей цены, для шорта – выше текущей цены;
-
MShotPriceMin: поле для указания минимальной цены в процентах от текущей рыночной, на которую может подойти рыночная цена к цене ордера, то есть это верхняя граница «коридора Муншота», в котором может оставаться Buy ордер без перестановки (значение всегда положительное);
Пример:
при лонге и таких настройках: MShotPrice=3 (%), MShotPriceMin=2 (%), Buy ордер будет выставлен ниже текущей цены на 3%, а верхняя граница «коридора Муншота» будет установлена ниже текущей цены на 2%, то есть высота от Buy ордера до верхней границы «коридора Муншота» составит 3-2=1%.
Нижняя граница «коридора Муншота» будет добавлена автоматически и отобразится ниже Buy ордера тоже на 1%.
Когда цена пойдёт вниз, то «коридор Муншота» будет сдвигаться тоже вниз, поддерживая расстояние MShotPriceMin = 2 (%) и как только верхняя граница коридора Муншота станет ниже выставленого Buy-ордера, то Buy-ордер перевыставится ниже на новую линию цены, сохраняя расстояние до текущей цены, согласно значению MShotPrice = 3 (%).
Аналогично алгоритм работает и при движении цены вверх, когда уже нижняя граница «корридора Муншота» станет выше выставленного Buy-ордера, то Buy-ордер перевыставится выше на новую линию цены, сохраняя расстояние до текущей цены, согласно значению MShotPrice = 3 (%).
Чтобы видеть границы «коридора Муншота» нужно нажать правой кнопкой мышки на иконку Воронка (Фильтры на графиках) и в её меню установить галочку рядом с опцией Show Moonshot price corridor. -
MShotMinusSatoshiп: галочка YES/NO.
Если указано значение YES, то Buy-ордер будет установлен не ближе, чем 2 сатоши от цены ASK. Полезно для монет с ценой менее 100 сатоши, у которых шаг цены равен 1% или более; -
MShotAdd3hDelta: поле для указания добавочного процента к величине MShotPrice за каждый процент 3-х часовой дельты.
Пример:
если MShotAdd3HourlyDelta=0,05 (%), MShotPrice = 10 (%) и 3-х часовая дельта монеты 20%, то для лонга Buy-ордер выставится не на 10% ниже текущей цены, а на 10%+(20*0.05)=11%. Так как со временем 3-х часовая дельта меняется, то и расстояние от текущей цены до Buy-ордера тоже будет автоматически пересчитыватся, то есть если 3-х часовая дельта будет снижаться, то Buy-ордер будет выставляться ближе к текущей цене, если увеличиваться — то дальше от цены; -
MShotAddHourlyDelta: поле для указания добавочного процента к величине MShotPrice за каждый процент часовой дельты. Аналогично вышеописанному примеру;
-
MShotAdd15minDelta: поле для указания добавочного процента к величине MShotPrice за каждый процент 15-и минутной дельты. Аналогично вышеописанному примеру;
-
MShotAddMarketDelta: поле для указания добавочного процента к величине MShotPrice за каждый процент дельты Маркета. Аналогично вышеописанному примеру;
-
MShotAddBTCDelta: поле для указания добавочного процента к величине MShotPrice за каждый процент часовой дельты BTC. Аналогично вышеописанному примеру;
-
MShotAddBTC5mDelta: поле для указания добавочного процента к величине MShotPrice за каждый процент 5-и минутной дельты BTC. Аналогично вышеописанному примеру;
-
MShotAddDistance: поле для указания значения расширения в процентах дальней границы цен (MShotPrice) в зависимости от дельт. Если к ближней границе добавилось X%, то к дальней добавится X * (1 + MShotAddDistance / 100)%.
Пример:
MShotAddDistance = 100 (%), тогда дальняя граница будет отодвигаться в 2 раза дальше, чем верхняя (+100%). По умолчанию установлено значение 0 — не добавлять ничего. -
MShotAddPriceBug: поле для указания добавочного процента к величине MShotPrice за каждый процент PriceBug. Аналогично вышеописанному примеру. Рекомендованное значение этого параметра 0.2, используйте его, чтобы во время лагов биржи покупать дальше от текущей цены;
-
MShotSellAtLastPrice: галочка YES/NO.
Если установлено значение YES, то после покупки Moonbot выставит ордер на продажу по цене, равной максимуму из цены Sell ордера стратегии (Sell Price) и предпоследней (4х-секундной давности, то есть до прострела) цены ASK с учётом поправки MShotSellPriceAdjust (см. ниже); -
MShotSellPriceAdjust: поле для указания поправки в процентах к цене ASK. Для расчёта цены продажи из цены ASK вычитается поправка.
Пример:
цена ASK в момент прострела была 1000 сатоши. Поправка задана в MShotSellPriceAdjust = 1%: 1000 - 1% = 990 сатоши. Если MShotSellAtLastPrice = YES, то терминал выставит Sell ордер на наибольшую из двух цен: или на первую - цену продажи по общим настройкам стратегии, или на вторую - 990 сатоши; -
MShotReplaceDelay: поле для указания времени задержки в дробных секундах перед перестановкой вниз (для лонга) или вверх (для шорта) Buy-ордера после падения цены до MShotPriceMin, то есть после выхода Buy-ордера из «коридора Муншота» он снова в него переставится (отдалится от текущей цены), но только после этой задержки;
-
MShotRaiseWait: поле для указания времени задержки в дробных секундах перед перестановкой вверх (для лонга) или вниз (для шорта) Buy-ордера после роста цены, то есть после выхода Buy-ордера из «коридора Муншота» он снова в него переставится (приблизится к текущей цене), но только после этой задержки;
-
MShotSortBy: меню с выбором вариантов сортировки монет по различным значениям, которые стратегия MoonShot отбирает при своей работе:
-
Last1mDelta, Last15mDelta, Last30mDelta, Last1hDelta, Last2hDelta, Last3hDelta, 24h-Delta — по дельтам цены (за 1м, 15м, 30м, 1ч, 2ч, 3ч, 24ч);
-
DVolToHVolAsc — по соотношению суточного и часового объёмов по возрастанию;
-
DVolToHVolDesc — по соотношению суточного и часового объёмов по убыванию;
-
DailyVol, HourlyVol, MinuteVol, 3Min-Vol, 5Min-Vol — по объёмам (за 24ч, 1ч, 1м, 3м, 5м);
-
MaxOrder — по максимальному размеру ордера;
-
Orders — по количеству ордеров;
-
Session — по сессии;
-
MaxPos — по максимальной позиции;
-
MarkPrice — по маркпрайсу;
-
Funding — по фандингу;
-
Leverage — по размеру плеча;
-
Pump5m — по дельте роста цены за 5 минут (считается как разница между ценой 5 минут назад и максимальной ценой за 5 минут);
-
Pump1h — по дельте роста цены за час (считается как разница между ценой час назад и максимальной ценой за час);
-
Dump1h — по дельте падения цены за час (считается как разница между ценой час назад и минимальной ценой за час);
-
OrderBook (только у владельцев стратегии MoonStrike) — по стакану, берутся в первую очередь монеты с самым тонким стаканом.
-
MShotSortDesc: галочка YES/NO.
Если установлено значение YES, то направление сортировки значений в параметре MShotSortBy будет от большего к меньшему.
Если установлено значение NO, то направление сортировки значений в параметре MShotSortBy будет от меньшего к большему; -
MShotUsePrice: меню с выбором варианта отсчёта цены при выставлении Buy-ордера на расстояние MShotPrice:
-
BID — от границы BID
-
ASK — от границы ASK
-
Trade — от последнего трейда.
Если в стратегии MoonShot выставлен параметр MShotUsePrice = Trade, но при этом трейды отсутствуют, то в этом случае автоматически будет браться цена ASK; -
FastShotAlgo: галочка YES/NO.
Если установлено значение YES, то активируется более быстрый алгоритм работы Buy-ордеров в стратегии MoonShot, для этого рекомендуется установить эту галочку, а замедлением перестановок управлять через параметр MShotReplaceDelay. Параметр FastShotAlgo работает на всех биржах, однако фактическое ускорение зависит от конкретной биржи. Активация этого параметра приводит к небольшому росту загрузки ЦПУ (примерно на 10%).
Особенности работы алгоритма при FastShotAlgo = YES: -
при MShotRaiseWait = 0 используется алгоритм 1
-
иначе алгоритм 2.
Можно использовать, к примеру MShotRaiseWait = 0.01, на торги не повлияет, но при этом включит использование алгоритма 2.
Алгоритм 1: в этом случае цена для Buy-ордера стратегии MoonShot считается за несколько последних трейдов;
Алгоритм 2: в этом случае цена для Buy-ордера стратегии MoonShot считается по минимальному трейду за 100мс. Побочный эффект — такой алгоритм приведёт к "встроенному raisewait в 100мс", то есть возвращается не раньше чем через 100мс, так как вместо текущей цены для расчёта используем минимальную цену за 100мс. Поэтому "цена" теперь в течение 100мс остаётся равной минимальной, но удаляться от цены такой Buy ордер должен ещё быстрее.
Если в терминале Moonbot активирован модуль Пакет для автоторговли, то в стратегии MoonShot добавляются дополнительные параметры, которые расширяют её возможности, то есть тогда стратегия MoonShot может выставить повторно Buy-ордер на той же монете, не дожидаясь продажи первого Sell-ордера; -
MShotRepeatAfterBuy: галочка YES/NO.
Если установлено значение YES, то ставить повторный Buy-ордер, после покупки и выставления Sell-ордера; -
MShotRepeatIfProfit: поле для указания процента текущей цены от цены покупки, выше которой возможно выставление повторного Buy-ордера;
-
MShotRepeatWait: поле для указания интервала времени в секундах, в течении которого может выставиться повторный Buy-ордер при выполнении условия MShotRepeatIfProfit;
Повторный Buy-ордер ставится только, если текущая цена стала больше, чем цена покупки на MShotRepeatIfProfit процентов в течение MShotRepeatWait секунд.
Значения по умолчанию MShotRepeatIfProfit = 0, MShotRepeatWait = 5 означают:
"Выставление повторного Buy ордера возможно, если текущая цена стала больше цены покупки в течение 5 секунд после покупки"; -
MShotRepeatDelay: поле для указания времени задержки в секундах перед выставлением повторного Buy-ордера.
⚠️ Важно! Из-за частого переставления Buy-ордеров по стратегии MoonShot (зависит от конкретной настройки стратегии, но в большинстве случаев это так) идёт нагрузка на API-ключи и есть шанс получить временный бан от биржи. Старайтесь держать меньше 30-35 активных Buy-ордеров одновременно. Если Вам этого мало, то запустите часть Buy-ордеров на одних API-ключах и часть на других API. Кроме этого можете использовать субаккаунты и несколько выделенных серверов с разными IP.
При работе стратегии MoonShot на фьючерсном рынке соблюдайте дополнительные количественные правила выставления ордеров, которые ввела биржа Binance.
В файле MoonBot.ini терминала Moonbot в разделе настроек [Special] параметр ExpertMode=1 отвечает за включение экспертного режима, если значение равно 0, то экспертный режим выключен.
Если экспертный режим включен ExpertMode = 1, то:
-
минимальные значения в стратегии MoonShot для параметров, которые без экспертного режима были MShotPriceMin = 0.05 и для MShotPrice = 0.10 с экспертным режимом стали ещё меньше, то есть MShotPriceMin=0.01 и MShotPrice = 0.02 соответственно;
-
минимальное значение в стратегии MoonShot для параметра без экспертного режима было AutoCancelBuy = 90 секунд, а с экспертным режимом стало ещё меньше, то есть AutoCancelBuy = 15 секунд.
Все изменения в файле MoonBot.ini следует производить только при выключенном терминале Moonbot.
Рекомендации при работе стратегии MoonShot на VDS
При работе стратегии MoonShot с коротким интервалом цен (до 0.5% разницы между MshotPriceMin и MshotPrice) рекомендуется использовать параметр MShotAddDistance=50, а также MShotUsePrice=Trade. В этом случае цены для перестановки Buy-ордера будут браться по цене последней сделки, и терминал будет переставлять ордера быстрее. Это особенно актуально при торговле фьючерсами.
В стратегиях, ориентированных на быструю торговлю (MoonShots с коротким интервалом, MoonStrike, DropsDetection с маленькой просадкой) рекомендуется использовать ненулевое значение параметра HFT (целое число).