Скачать бесплатно

Специальные параметры стратегий

Быстрый поиск по статье

Стратегия "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 (целое число).





Далее