СТРАТЕГИИ
Применение СТРАТЕГИЙ
Автоматическая торговля по сигналам из Telegram. MoonBot считывает сигналы о покупке из подключенного к нему Telegram-канала и совершает сделки самостоятельно по заданным в стратегии правилам.
Автоторговля стратегиями. MoonBot самостоятельно открывает и закрывает сделки используя созданные вами стратегии.
Помощник в определении монет для ручной торговли. Создавайте стратегии-детекты, которые сигнализируют о подходящей рыночной ситуации. При срабатывании детекта принимается решение об открытии сделки.
Расширение возможностей ручной торговли. Стратегия Manual дает более тонкие настройки стоп-лосса, трейлинга и других параметров при ручной торговле).
Готовый файл с тестовыми стратегиями для спотового рынка биржи Binance для ознакомления можно скачать здесь: data.zip Папку data из этого архива нужно скопировать в папку с MoonBot с заменой. Внимание! Эту операцию нужно производить при выключенном боте и она полностью заменит все стратегии, которые ранее были в нем! Если у вас уже есть свои настроенные стратегии, сделайте бэкап папки data перед копированием.
Важно! Стратегии предназначены для раздельной тонкой настройки параметров работы MoonBot с различными сигналами. Данный раздел относится к продвинутым настройкам. Все выведенные параметры могут быть изменены с любой точностью, в любом диапазоне. Терминал не проверяет «адекватность» задания параметров. Включайте стратегии только если вы уверены, что делаете. Вы всегда можете протестировать стратегии в режиме Эмулятор, но они не дадут такой точности, как использование реального счета.
Мы не осуществляем поддержку по настройке и работе стратегий. Если вы считаете, что ваша стратегия не работает так, как вы думаете, она должна быть проверена вами - сделайте небольшое исследование самостоятельно. Зайдите в Настройки — Специальные, включите расширенный режим отладки (галочка Extended Debug Mode), затем откройте любой график, вверху появятся несколько строчек со всеми данными по этой монете и посмотрите фактические значения стратегии — это единственный способ увидеть, что происходит на самом деле. Никто не может сказать вам больше, просто взглянув на скриншот — это вопрос математики и фактических значений.
Чтобы проверить, почему стратегия не срабатывает по фильтрам, включите кнопку "Воронка" (Фильтры на графиках) на главном окне MoonBot. Откройте график любой монеты, вы увидите список стратегий с указанием причины, почему данная стратегия не сработает на данной монете в данный момент времени
Открыть меню Стратегий можно нажав на соответствующую клавишу на главном экране.
Так выглядит главное меню окна стратегий.
Для того, чтобы создать стратегию необходимо нажать кнопку Добавить новую. В открывшемся окне нужно заполнить все параметры, после чего обязательно не забыть нажать Сохранить. Также можно скопировать присланную вам стратегию и Вставить ее в окне Стратегии, перед этим нажав кнопку Добавить новую. Ниже описание общих параметров стратегий, а также индивидуальные параметры и рассмотрение каждой из них. Важно: если какой-то параметр в стратегии не указан (значение 0, например для размера ордера), то терминал будет брать эти значения из общих настроек.
Важно: все параметры ниже будут описаны для пар BTC-альткоины, если вы владелец PRO-версии и торгуете на парах USDT, ETH, BNB, PAX, то в разделе Buy conditions указываете размер ордера в выбранной паре, а так же в параметрах объемов указывается объем соответственно в USDT, BNB, ETH и т.д.
Создание, редактирование, удаление стратегий рекомендуем производить в самом терминале в окне Стратегии. Перед редактированием стратегии необходимо остановить их работу если они были запущены. Выделение всех стратегий в редакторе нажатием CTRL-A. Настоятельно не рекомендуем изменять стратегии вручную в файле через текстовый редактор. Если вы отдаете отчет своим действиям, то рекомендуем перед редактированием сделать копию данного файла и уже после этого вносить в него изменения. Для этого рекомендуем использовать WordPad, сохранив файл с кодировкой UTF-8 без ВОМ.
Приоритеты применения настроек
По автодетекту. Если задано несколько стратегий для одного вида сигналов, то применяется первая по списку, где совпали условия на монету (белый список, черный список, ограничения суточных объемов), остальные по этому же сигналу не проверяются дальше. То есть если у вас настроено несколько стратегий и они сработали в один момент, MoonBot возьмет в работу только одну самую первую стратегию из списка.
По Telegram. Поступает сигнал, MoonBot находит все подходящие по названию канала стратегии. Если среди подходящих по названию канала стратегий есть стратегии с заданным ключом, под который подходит сигнал, то отдается приоритет первой в списке подходящей. Если среди подходящих по названию канала стратегий НЕТ стратегии с заданным ключом, то терминал ищет стратегию с заданным каналом и ПУСТЫМ ключом, если такая есть, берется первая подходящая в списке. Если нет, используются общие настройки
Рекомендации по настройке серверов для автоторговли
(обновление от 26.10.2020):
1) Menu – System Settings – галка режим VDS. Ставить крайне желательно, эта опция экономит ресурсы сервера. меньше памяти и ЦПУ расходуется на хранение и отрисовку графиков, больше ресурсов отводится работе алгоритмов.
2) Обязательно отключите обновление Windows и Defender! Иначе в процессе обновления система может закрыть терминал и ордера останутся на бирже.
3) Обязательно отключайте "Автоматический переход на летнее время и обратно" на VPS, а лучше ставьте часовой пояс "(UTC) Время в формате UTC".
4) При работе стратегии MoonShot с коротким интервалом цен ( до 0.5% разницы между MshotPriceMin и MshotPrice) рекомендуется использовать новый параметр MShotAddDistance = 50, а также MShotUsePrice = Trade. В этом случае цены для перестановки ордера будут браться по цене последней сделки, и MoonBot будет переставлять ордера быстрее. Это особенно актуально при торговле фьючерсами.
5) В стратегиях, ориентированных на быструю торговлю (MoonShot с коротким интервалом, Strike, Drops с маленькой просадкой) рекомендуется использовать ненулевое значение параметра HFT (целое число)
Как это работает:
Величина HFT определяет окно времени в миллисекундах, в течении которого ордер действителен. Если 0, то не применяется (ордер действителен до исполнения или отмены).
Зачем это нужно: если в процессе работы MoonBot на VPS вырос пинг, команда на выставление ордера будет идти до биржи слишком долго.
Если задать небольшое "окно", то такой ордер не будет принят биржей.
Это позволит избежать ситуации, когда ордер ставится «слишком поздно», и покупка происходит в изменившихся рыночных условиях.
Например, на серверах Vultr с пингом 10-20 можно ставить HFT = 100. Если не будет принимать ордера, то можно увеличить значения до 200-300.
Если ордер с параметром HFT не принят, MoonBot будет сообщать об этом в Telegram. Настроить частоту таких оповещений можно в Настройках — Специальные (по умолчанию не чаще, чем раз в минуту)
6) «Настройки — Автостарт». Обязательно включите опцию «Автостоп по ошибкам API» , число ошибок оставьте на 3 или 4. Рестарт не ранее, чем через 20 минут.
7) Так же можно использовать стоп по пингу , с порогом пинга от 100 и выше.
8) Настройте авто-логин в windows (Меню — System Settings, введите свой логин и пароль от аккаунта Windows и нажмите кнопку «AutoLogin»).
Если вы еще не добавили MoonBot в автозапуск, нажмите там же кнопку «Автозапуск». Для проверки перезапустите свой сервер — MoonBot должен запуститься и продолжить работу автоматически.
Особенности настройки short стратегий указаны на странице Модуль “Binance Futures” внимательно изучите все особенности и важные рекомендации.
Общие
StrategyName: Имя стратегии (у каждой должно быть уникальное)
Comment: Дополнительный комментарий к стратегии, параметр не обязателен.
LastEditDate: Дата последнего редактирования (указывается в ручную пользователем, не обязательный).
SignalType: Тип стратегии (виды стратегий будут описаны ниже)
ChannelName: Имя канала в Telegram, откуда берется сигнал. Только для стратегий типа Telegram.
ChannelKey: Ключевое слово, с которым пришел сигнал из Telegram (например buy, news и тп). Для премиум канала это moon_1..moon_20.Только для стратегий типа Telegram.
AcceptCommands: Принимать команды Доверительного Управления .Только для стратегий типа Telegram.
SilentNoCharts: Не открывать графики при поступлении сигнал. Если NO — графики будут открываться, если YES — графики монет не будут открываться при поступлении сигнала.
ReportToTelegram: Отправлять сообщение о сигнале в свой канал Telegram (см. раздел «удаленное управление).
ReportTradesToTelegram: Слать отчеты о сделках в Telegram (включено по умолчанию).
EmulatorMode: Использовать режим Эмуляции в данной стратегии, YES/NO.
Настройка оповещений при поступлении сигнала:
SoundAlert: Если YES, при срабатывании сигнала Вам придет звуковое оповещение и над открытым вами графиком появится кнопка с названием монеты из сигнала, при нажатии на которую откроется ее график.
SoundKind: Выбор из предустановленных звуков для сигнала.
KeepAlert: Сколько секунд держать кнопку с названием монеты над графиком.
DebugLog: (Для стратегий MoonStrike и Liquidations) Выводить в лог больше информации о причинах срабатывания или не срабатывания стратегий, приводит к засорению лога лишней информацией.
IndependentSignals: если NO, то логика сработки следующая: стратегии проверяются подряд по списку, после нахождения первой подходящей под условия детекта выдается сигнал, остальные стратегии не проверяются (такая логика работала все время до этой версии). Если YES, то выдают сигнал все стратегии подряд по списку вплоть до первой, где галка не стоит ( вслед. стратегиях опция не используется: MoonShot, PumpDetection, UDP, Combo, Manual, TopMarket, в след. стратегиях опция всегда включена: NewListing, EMA, Spread, MoonHook, Activity)
DontWriteLog: (YES/NO) Если YES, то не писать лог по ордерам этой стратегии (галку можно поставить только в режиме эмулятора в стратегии)
DontKeepOrdersOnChart: (YES/NO) Если YES, то удалять ордера этой стратегии с графика, если бай отменен (не исполнен) (галку можно поставить только в режиме эмулятора в стратегии)
UseCustomColors: (YES/NO) Если YES, то использовать 2 параметра ниже
OrderLineKind: тип линии (сплошная\пунктир)
SellOrderColor: цвет линии тейк-профит
Фильтры
IgnoreFilters: Игнорировать все фильтры, кроме белого и черного списков, а также OnlyNewListing. Игнорируются также опции "не покупать" из общих настроек (кроме черного списка).
CoinsWhiteList: Белый список монет (если пуст, не используется) Если список задан, то стратегия анализирует только указанный список монет. Задаются через запятую, без пробелов.
CoinsBlackList: Черный список монет (если пуст, не используется) Если список задан, то стратегия не анализирует указанные монеты, так же не мониторятся монеты из общего черного списка (Настройки-Основные-Не покупать эти монеты). Задаются через запятую, без пробелов.
LeveragedTokens: Только для спот рынка, разрешить торговлю монетами UP и DOWN (по умолчанию выключено).
ListedType: Фильтрация монет в зависимости от листинга на споте и\или фьючерсах (только для бинанса).
MinLeverage: мин. плечо, с которым брать в работу монеты. Если плечо меньше, не брать. Если стоит галка игнора фильтров, этот фильтр не работает.
По умолчанию 1 , т.е. брать монеты с любым плечом
MaxLeverage: Маркеты с плечом не более, чем заданное (если 0, не учитывается).
CustomEMA: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание. EMA фильтр исключен из проверки CheckAfterBuy во всех стратегиях, кроме муншотов.
OnlyNewListing: время в секундах, в течении которого стратегия будет работать на листингах. Если 0, не учитывается. Опция IgnoreFilters не влияет на эту настройку.
DontTradeListing: Не торговать листинги заданное время (сек).
MaxLatency: останавливать торги по данной стратегии, если задержки превысили заданное значение (по умолчанию 0 - не применяется).
Нижеописанная группа параметров Volume имеет важное значение. Вам будет очень сложно работать большим ордером на монете с низким суточным объемом - ваш ордер просто никто не выкупит. Если вы не хотите использовать фильтр объемов, то можете в минимальный значениях указать 0, а в максимальных любое большое число, например 10000000000).
MinVolume: Минимальный суточный объем торгов по монете (указывается в BTC, ETH, BNB, USDT, PAX, TUSD, USDC или USDS в зависимости от выбранной пары), обновляется раз в 5-10 минут. Посмотреть суточный и часовой объем по любой монете можно нажав на кнопку «Показать маркеты» или, открыв монету, справа от графика.
MaxVolume: Максимальный суточный объем торгов по монете(указывается в BTC, ETH, BNB, USDT, PAX, TUSD, USDC или USDS в зависимости от выбранной пары), обновляется раз в 5-10 минут.
MinHourlyVolume: Минимальный часовой объем торгов по монете (указывается в BTC, ETH, BNB, USDT, PAX, TUSD, USDC или USDS в зависимости от выбранной пары), обновляется раз в 5-10 минут.
MaxHourlyVolume: Максимальный часовой объем торгов по монете (указывается в BTC, ETH, BNB, USDT, PAX, TUSD, USDC или USDS в зависимости от выбранной пары), обновляется раз в 5-10 минут.
MinHourlyVolFast: Минимальный часовой объем с быстрым обновлением по трейдам, по умолчанию 0 - не проверять.
MaxHourlyVolFast: Максимальный часовой объем с быстрым обновлением по трейдам, по умолчанию 0 - не проверять.
MinuteVolDeltaMin: Минутная дельта объема, не меньше чем (если 0, не учитывается). Считается как отношение объема за посл. минуту к среднему минутному объему за последние 3 часа. Значение 1 означает, что текущий объем равен среднему.
MinuteVolDeltaMax: Минутная дельта объема, не более чем (если 0, не учитывается). Считается как отношение объема за посл. минуту к среднему минутному объему за последние 3 часа. Значение 1 означает, что текущий объем равен среднему.
PenaltyTime: Время в секундах, в течение которого стратегия не будет работать по монете, на которой были 3 минусовые сделки подряд или ордер был отменен или выставлен вручную.
TradePenaltyTime: Время в секундах, в течение которого стратегия не будет работать по монете, на которой была закрытая в минус сделка. Пояснение: если была минусовая сделка (по любой стратегии, в т.ч. ручной), то стратегии где TradePenaltyTime не 0, не будут работать по монете заданное время TradePenaltyTime секунд.
Ниже приведенные дельты монет не могут быть отрицательными, так как они показывают просто изменение цены монеты за промежуток времени(как сильно колебалась цена монеты). Дельта считается как (максимальная цена за период анализа / минимальная цена за период анализа -1 ) * 100. ВАЖНО: Так как расчет часовых дельт производится по 5-минутным свечам и округлении количества часов, фактически 3х-часовая дельта считается за период 3ч 55м (а 2х-часовая дельта за 2ч 55м).
Delta_3h_Min: Минимальное значение дельты за 3 часа, (в %), ниже которой бот не рассматривает монету.
Delta_3h_Max: Максимальное значение дельты за 3 часа, (в %), выше которой бот не рассматривает монету.
Delta2_Type: Выбор дополнительной дельты: 1 час, 2 часа, 30 мин, 15 мин, 5мин, 1мин, Pump5m, Pump1h, Dump1h.
Delta_24h_Min: Минимальное значение дельты за 24 часа, (в %), ниже которой бот не рассматривает монету.
Delta_24h_Max: Максимальное значение дельты за 24 часа, (в %), выше которой бот не рассматривает монету.
Delta2_Min: Значение доп. дельты (не менее чем, в %).
Delta2_Max: Значение доп. дельты (не более чем, в %).
Помимо дельты самой монеты так же можно учитывать изменение BTC за час (в %). Значение может быть отрицательное. Это параметр добавлен в терминал, т.к. часто при падении цены BTC, остальные монеты тоже начинают стремительно падать. Дельта считается как разница между средней ценой за 1 час или 24 часа и текущей. Пример: средняя цена была 10000, текущая 10100 дельта будет равна 1% ((1 - 10000/10100) * 100).
Delta_BTC_Min: Минимальное изменение курса BTC за час, (в %).
Delta_BTC_Max: Максимальное изменение курса BTC за час, (в %).
Delta_BTC_24_Min: Минимальное изменение курса BTC за 24 часа (в %), ниже которого бот не рассматривает монету.
Delta_BTC_24_Max: Максимальное изменение курса BTC за 24 часа (в %), выше которого бот не рассматривает монету.
Delta_BTC_5m_Min: Минимальное изменение курса BTC за последние 5 минут (в %), считается как разница (в процентах) между мин. и макс. курсом за последние 5 минут и является всегда положительной.
Delta_BTC_5m_Max: Максимальное изменение курса BTC за последние 5 минут (в %), считается как разница (в процентах) между мин. и макс. курсом за последние 5 минут и является всегда положительной.
Delta_BTC_1m_Min: Минимальное изменение курса BTC за последнюю 1 минуту (в %), считается как разница (в процентах) между мин. и макс. курсом за последнюю 1 минуту и является всегда положительной.
Delta_BTC_1m_Max: Максимальное изменение курса BTC за последнюю 1 минуту (в %), считается как разница (в процентах) между мин. и макс. курсом за последнюю 1 минуту и является всегда положительной.
Delta_Market_Min: Средняя по всем альткоинам часовая дельта, не менее чем (в %). Усредняется по всем парам. Может быть отрицательная.
Delta_Market_Max: Delta_Market_Max: Средняя часовая дельта по всем рынкам (не более чем (в %).
Delta_Market_24_Min: Минимальное изменение среднего курса всех альткоинов за 24 часа , (в %), ниже которого бот не рассматривает монету.
Delta_Market_24_Max: Максимальное изменение среднего курса всех альткоинов за 24 часа, (в %), выше которого бот не рассматривает монету.
Простыми словами о дельте BTC и Маркета. В идеальной картинке если мы зададим Min -10% Max -0.1%, то весь рынок предположительно пребывает в медвежьем тренде/падает. Если зададим Min -0.1% Max 0.1%, то весь рынок спокойный, во флете. Min 0.1% Max 10%, весь рынок в бычьем тренде/росте. Если вы не хотите использовать дельты BTC и Маркета, то просто укажите в -100% Min значениях и 100% в Max значениях.
UseBV_SV_Filter: Это фильтр соотношения объемов покупок к продажам. Данный параметр учитывается только при включенной автопокупки в стратегии. Если фильтр включен (Yes), то стратегия сработает при соблюдении двух условий, описанных ниже. N: параметр, который отвечает за время расчета соотношения объемов. Он описан ниже в параметре BV_SV_TradesN.
BV_SV_FilterRatio: Значение соотношения объемов покупок к продаже за заданное время N (или за заданное число последних сделок), ниже которого автопокупка не производится. Пример: при заданном N = 60 минут и FilterRatio = 2 монета пройдет по фильтру если за последний час купили по объему как минимум в 2 раза больше чем продали (если продали за час 1 Btc, то купить должны как минимум 2 Btc).
NextDetectPenalty: Время в секундах, в течение которого стратегия не сработает снова после детекта, по той же монете.
GlobalDetectPenalty: Общее по монете пенальти для стратегий всех типов в секундах, то есть при срабатывании одной стратегии на данной монете другие не сработают заданное время. Если 0, параметр игнорируется.
GlobalFilterPenalty: Время в секундах, в течение которого стратегия не сработает снова после того, как она не прошла по фильтру дельты BTC или рынка (если 0, параметр игнорируется).
MoonIntRiskLevel: Монеты, торги на которых пользователи считают нежелательными в данный момент, публикуются в канале @MoonInt с указанием уровня риска от 1 до 3 *CR* Уровень риска, ниже которого сигналы ЧС игнорируются данной стратегией. *CR* Если ставить 3, то будут учитываться только самые опасные сигналы, если 4, то никакие не будут учитываться. Для работы функции необходимо подключение бота к Телеграмму.
MoonIntStopLevel: Временная остановка стратегии по сигналу в канале @MoonInt. В отличии от MoonIntRiskLevel останавливает работу стратегии по всем монетам сразу. Если ставить 3, то будут учитываться только самые опасные сигналы, если 4 (значение по умолчанию), то никакие не будут учитываться. Для работы функции необходимо подключение бота к Телеграмму.
DeltaSwitch: Если стратегия берет монету при заданном интервале Delta_BTC и Delta_Market(от X до Y), то она остается на монете в интервале (от X-DeltaSwitch до Y+DeltaSwitch) (в текущем наборе стратегий имеет смысл только для MoonShot).
Допустим Delta_BTC_Min=-0,5% Delta_BTC_Max=1,0% при DeltaSwitch=0,2%, если бот выставил buy ордер когда Delta_BTC была в установленном коридоре от -0,5% до 1,0%, то бот перестанет работать с монетой только когда Delta_BTC станет меньше -0,7%(-0,5-0,2) или больше 1,2%(1,0+0,2) и вернется в работу только когда Delta_BTC вернется в свой основной коридор от -0,5% до 1,0%, исключив тем самым частые включения/отключения стратегии когда значение Delta_BTC находится на границе установленного коридора. То же самое и с Delta_Market.
PriceStepMin: Минимальный шаг цены (в %) от текущей цены. Можно посмотреть в колонке PumpQ в таблице монет (второе после «/» число).
PriceStepMax: Максимальный шаг цены (в %) от текущей цены. Пример: если монета стоит 20 сатоши, то шаг цены равен 5%. Если монета стоит 200 сатоши, то шаг цены равен 0.5% (значение PriceStepMax по умолчанию ограничивает покупку монет с ценой меньше 200 сатоши).
Важно: Если вы хотите, чтобы ваши стратегии работали с «квадратными» монетами, измените значение PriceStepMax!
UseBTCPriceStep: Выбор маркета для расчета шага цены. В положении Yes шаг цены для фильтра берется по BTC маркету, в положении NO по фактическому. Пример: USDT-HOT имеет фактический шаг цены 0.02%, а шаг цены по BTC-HOT - 14%. С помощью нового параметра можно исключить HOT фильтром шага от 0 до 1%.
SamePosition: (Только для Binance Futures) Ставить ордера только в направлении открытой позиции.
MarkPriceMin, MarkPriceMax: (Только для Binance Futures) Фильтр по MarkPrice предназначен для того, чтобы избежать открытия позиции слишком далеко от цены маркировки, что может повлечь мгновенную ликвидацию. Фильтр работает с дельтой MarkPrice, это разница в процентах между рыночной ценой и ценой маркировки. Отрицательная, если MarkPrice выше рыночной и положительная, если ниже. Задается фильтр значениями от и до (MarkPriceMin, MarkPriceMax).
Пример: MarkPriceMin=0 MarkPriceMax=1 – выберет все монеты где маркпрайс сдвинут в сторону , противоположную от ордера не больше, чем на 1% (таким образом, если маркпрайс выше цены на 1%, то не будут ставится шорты; если ниже цены на 1%, то не будут ставится лонги; в остальных случаях будут ставится и шорты и лонги).
MaxPosition: Задает порог позиции, при превышении которого будут отменены все бай ордера (при включенном CheckAfterBuy), а новые не будут ставится.
CheckAfterBuy: проверять или нет фильтры после выставления buy ордера (если этот параметр NO, то фильтры проверяются только в момент сигнала, если YES, то проверяются все время, пока buy ордер не исполнится)
BinancePriceBug: значение лага цены в процентах, при котором остановить торги (если 0 то не применяется).
TotalLoss: Стратегия перестает работать, когда общий минус превысит заданное значение (положительное число). Минус считается по общим настройкам с вкладки Автостарт за заданное время по всему отчету.
SessionProfitMin, SessionProfitMax: Два параметра: профит за сессию от и до в $ - задают диапазон работы стратегии по профиту. Если 0, то не учитывается. Примеры:
1) SessionProfitMin = -100 ($), SessionProfitMax = 0 ($). Тогда стратегия будет работать на монете до тех пор, пока потери за сессию на данной монете меньше 100$.
2) SessionProfitMin = 0 ($), SessionProfitMax = 1 ($). Тогда стратегия будет работать на монете только пока профит на данной монете меньше 1$.
Автосброс сессии по времени настраивается на вкладке Настройки-Автостарт.
DontCheckBeforeBuy: Не перепроверять фильтры непосредственно перед выставлением buy ордера. По умолч. выключено, фильтры проверяются дважды: перед расчетом детекта и перед выставлением ордера на покупку
Triggers
TriggerKey: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerKeyBuy: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerKeyProfit: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerKeyLoss: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
ActiveTrigger: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
ClearTriggersBelow: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
ClearTriggersAbove: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
ClearTriggerKeys: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerAllMarkets: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerByKey: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerByAllKeys: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerSeconds: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerKeysBL: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
TriggerSecondsBL: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SellByTriggerBL: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
CancelByTriggerBL: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
Session
IgnoreSession: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionStratMax: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionStratIncreaseMax: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionStratMin: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionStratReduceMin: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionResetOnMinus: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionPenaltyTime: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionPlusCount: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionMinusCount: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionIncreaseOrder: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionIncreaseOrderMax: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionReduceOrder: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionReduceOrderMin: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
SessionResetTime: Данный параметр входит в Пакет расширений для Автоторговли, там же можно прочитать и описание.
Buy ордер
AutoBuy: Автопокупка монет. Если YES, то выставится ордер на покупку по заданным ниже параметрам. Если NO, то стратегия даст сигнал, но покупка произведена не будет, это полезно когда вы используете стратегию как помощник в выборе монеты для ручной торговли. Стратегия будет просто сигнализировать вам об интересных ситуациях на рынке, а Вы сами будете принимать решение для открытия позиции.
BuyDelay: Задержка выставления ордера миллисекунды, (0 - нет задержки, макс. 3000 мс)
Short: Открывать short ордера вместо long. Для выставления short ордера необходимо наличие модуля “Binance Futures”, там же указаны особенности настройки шорт стратегий на фьючерсах.
HFT: (целое число) Означает окно времени в миллисекундах, в течении которого ордер действителен. Если 0, то не применяется.
MaxActiveOrders: Макс. число активных (отложенных или уже выставленных на продажу после срабатывания покупки) ордеров по данной стратегии одновременно. (не применяется к повторным ордерам Муншотов с опцией MShotRepeatAfterBuy. Повторные ордера будут выставляться без учета MaxActiveOrders)
MaxOrdersPerMarket: Максимальное число активных мультиордеров на одной монете.
MaxMarkets: макс. число маркетов, на которых одновременно работает стратегия (кроме страйков).
AutoCancelBuy: Авто отмена buy-ордера через заданное время, в секундах. Если 0, то не отменять. Счетчик до отмены сбрасывается, если ордер был переставлен вручную.
AutoCancelLowerBuy: Только для сигналов в Telegram. Авто отмена buy-ордера через заданное время в случае, если была использована более низкая цена покупки сигнала.
BuyType: Buy - выставление лимитного ордера,
BuyLimit - выставление отложенного ордера ниже текущей цены, после достижения условной цены лимитный ордер выставится чуть выше (или ниже соотв.) на величину спреда PendingOrderSpread,
BuyStop - выставление отложенного ордера выше текущей цены, после достижения условной цены лимитный ордер выставится чуть выше (или ниже соотв.) на величину спреда PendingOrderSpread.
PendingOrderSpread: величина спреда для выставления лимитного ордера, может быть отрицательным; если лимитка сразу не исполнилась, через 3 сек. она снимается.
OrderSize: Фиксированный размер buy-ордера в базовой валюте. Если 0, то используется значение из общих настроек .
MinFreeBalance: если в момент детекта сумма на балансе меньше заданного, не пытаться ставить ордера на остаток (задается в базовой валюте).
buyPrice: Цена покупки, (в %) от цены на момент срабатывания стратегии или же от минимальной цены за последние 30 секунд.
buyPriceLastTrade: Использовать для расчета цены покупки цену последнего трейда (если галка не стоит, то используется последняя цена ASK, как и работало по умолчанию до версии 7.07).
Use30SecOldASK: Если YES, будет использована минимальная цена ASK за последние 30 сек., если NO, то текущая.
UseOldPrice: использовать для buy-ордера цену N секунд назад (применяется только к тем стратегиям где это не противоречит идее стратегии).
TlgUseBuyDipWords: (Только для сигналов в Telegram) Если в сигнале указаны стоп-слова, при которых покупать по более низкой цене, и TlgUseBuyDipWords = YES, то будет использована более низкая цена (см. ниже).
TlgBuyDipPrice: (Только для сигналов в Телеграме) Цена, по которой покупать сигналы, содержащие рекомендацию покупать по цене ниже рыночной (в процентах к рыночной цене).
BuyPriceAbsolute: (Только для стратегии NewListing) Если поставить значение BuyPriceAbsolute — YES, то в параметре buyPrice нужно указывать стоимость в абсолютных значениях (например в 0,000524 ВТС или 0,0254 USDT), Если поставить значение BuyPriceAbsolute — NO, то в параметре buyPrice нужно указывать стоимость в процентном выражении (например 5% или -10% от цены листинга).
Delta Modifiers
BuyModifier: Коэффициент прибавки модификаторов к цене buy ордера. Пример: суммарная дельта, посчитанная по модификаторам Add*, равна 5%. BuyModifier = -0.1. В таком случае ордера на покупку будут ставится на 0.5% ниже. Для наглядности проверяйте работу параметров в ручной стратегии
SellModifier: Коэффициент прибавки модификаторов к цене Sell ордера. Пример: суммарная дельта, посчитанная по модификаторам Add*, равна 5%. SellModifier = 0.2. В таком случае ордера на продажу будут ставится на 1% выше.
DetectModifier: Коэффициент прибавки модификаторов к порогу детекта. Пример: суммарная дельта, посчитанная по модификаторам Add*, равна 5%. DetectModifier = 0.1. Стратегия (например pump-детект) настроена на 2%. В этом случае стратегия будет срабатывать только от 2% + 5%*0.1 = 2.5%
StopLossModifier: Модификатор стопа.
MaxModifier: Расчетная сумма всех модификаторов не больше, чем заданное значение. Расчет итогового модификатора производится по формуле Min(MaxModifier, Sum[Pn * Dn]) где Pn – заданный в стратегии модификатор, Dn – текущая. дельта. Если 0, то параметр не учитывается
Add3hDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
AddHourlyDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
Add15minDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
Add5minDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
Add1minDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
AddMarketDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
AddBTCDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
AddBTC5mDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
AddBTC1mDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
AddMarkDelta: Модификаторы параметров в зависимости от дельт. Расчет суммарной дельты с коэффициентами, по сумме всех модификаторов (Sum[Pn * Dn] где Pn - заданный в стратегии модификатор, Dn - текущая. дельта). Для наглядности проверяйте работу параметров в ручной стратегии
AddPump1h: Модификаторы параметров в зависимости от дельты Pump1h
AddDump1h: Модификаторы параметров в зависимости от дельты Dump1h
AddPriceBug: Модификаторы параметров в зависимости от PriceBug.
Multiple OrdersBuy
OrdersCount: число ордеров (по умолчанию 1).
CheckFreeBalance: проверка баланса для выставления одиночного ордера или сетки ордеров, при нехватки ордера не выставляются.
BuyPriceStep: шаг цены, в процентах от исходной цены (если меньше нуля, каждый след. ордер ставится ниже, если больше нуля, то выше).
BuyStepKind: способ расчета шага цены (Linear — линейное или Exponential — геом. прогрессия).
OrderSizeStep: шаг изменения размера ордера, в процентах (0 — не изменять размер ордера).
OrderSizeKind: способ расчета сетки ордеров (Linear — линейное или Exponential — геом. прогрессия). Если задано Exponential, то каждый след. ордер будет в OrderSizeStep процентов больше (например при OrderSizeStep = 200 след. ордер будет в 2 раза больше). Если Linear, то след. ордер будет на OrderSizeStep процентов больше
CancelBuyStep: шаг увеличения времени отмены buy ордеров при установке ордеров сеткой (в секундах).
JoinSellKey: ключ для автообъединения sell ордеров (по умолчанию 0 — не объединять). Если поставить там любое значение, то после покупки стратегия объединяет монеты с любым другим ордером с таким же ключом.
JoinPriceFixed: при объединении брать фиксированную цену продажи из стратегии (SellPrice)
IgnoreCancelBuy: игнорировать автоотмену сетки ордеров, если первый из сетки уже исполнился.
ВНИМАНИЕ. При объединении sell ордеров к появившемуся новому объединенному ордеру будут применены все основные настройки (stoploss, trailing и тд.) при ручной торговле либо настройки ручной стратегии если она активирована, то есть у вас может появиться stoploss, даже если вы его отключили или изменили в ручную на открытых ордерах. При объединении ордеров по стратегии все параметры будут взяты из первой по списку стратегии с таким же ключом. Учтите что могут объединиться ручные ордера с ордерами по стратегии и взять параметры из первой по списку стратегии.
ВАЖНО! Ордера эмулятора, будь то включенный в меню эмулятор, или галкой в стратегии - НЕ ОБЪЕДИНЯЮТСЯ!
Sell
AutoSell: ставить продажу после покупки. По умолчанию YES. Доступен только на споте и только если в ini-файле выставлено ExpertMode = 1.
SellPrice: Цена продажи, (в %) к цене покупки.
PriceDownTimer: Таймер включения функции «Снижать цену» (если 0, не включается никогда), сек. Если не 0, то через заданное время ордер на продажу начинает снижаться по заданным параметрам.
PriceDownDelay: Задержка шагов снижения цены (в секундах). После покупки мы сперва пытаемся продать по заданной цене, когда истекает время PriceDownTimer мы снижаем цену в первый раз, потом по истечении PriceDownDelay мы снижаем цены второй раз, опять по истечению PriceDownDelay мы снижаем цену третий раз и тд.
PriceDownRelative: Если NO, то считается процент от абс. цены; если YES, то от разницы между текущим sell и buy. Пример 1: Выставили sell прайс 1%, price down relative NO. pricedown percent 0.2%. Тогда через заданное время sell-прайс понизится с 1% до 0.8(1-0.2)%. Пример 2: Выставили sell-прайс 1%, price down relative YES. pricedown percent 0.2% Тогда через заданное время цена продажи опустится c 1% на 0.998%(1-1/100*0.2).
PriceDownPercent: На сколько процентов снижать цену sell ордера на каждом шаге.
PriceDownAllowedDrop: Величина в процентах от buy, на которую можно опускать sell. Если задана 0,5%, то бот опускает sell прайс постепенно до 0,5%, а потом останавливается и больше не передвигает ордер.
Функция снижения цены работает НЕЗАВИСИМО от стопов и трейлинга.
UseScalpingMode: Если да, и если цена продажи задана меньше 1%, то будет использовать режим скальпинга, при котором бот может увеличить цену до 2% в зависимости от стакана ASK. Некое подобие функции Ставить ордер под стенку из основных настроек.
SellByFilters: время в секундах после покупки, через которое продавать при выходе из фильтров (0 - никогда).
SellByCustomEMA: Условие на продажу, если цены удовлетворяют EMA-фильтру. Важно! В отличие от остальных фильтров, продажа включается, если условия ЕМА выполняются (а не при выходе из них). Пример: SellByCustomEMA = "EMA(3,1) > 1%" означает продать на росте, когда рост за 3 сек. больше 1%
SellEMADelay: Задержка (сек) перед продажей по EMA-фильтру
SellEMACheckEnter: Проверять EMA-фильтр перед покупкой; если условие выполнено, то не покупать (чтобы сразу же не продалось)
SellLevelDelay: Задержка в секундах перед перестановкой sell-ордера на зафиксированный уровень. Если 0, то не переставлять никогда.
SellLevelTime: Время (сек.) за которое считать максимальную цену (уровень) для перестановки sell-ордера на этот уровень плюс SellLevelAdjust процентов (может быть отрицательным, тогда ордер будет поставлен ниже максимума). Если 0, ордер не переставляется.
SellLevelCount: Сколько раз переставлять ордер согласно настройкам SellLevel; ордер будет переставлен через каждые SellLevelDelay секунд.
SellLevelAdjust: процент корректировки. Пример: монета куплена по цене 100, SellLevelDelay = 60 сек, SellLevelTime = 3600 сек. (1 час), SellLevelAdjust = -1. В этом случае через 60 секунд после покупки бот посчитает максимальную цену за последний час, например она окажется равной 120, тогда sell ордер будет переставлен на 120-1% = 118,8.
SellLevelRelative: переставлять sell на X% от цены покупки до хая (может быть больше 100%).
SellLevelAllowedDrop: Величина в процентах от buy, на которую функция "перестановка на уровень" может опустить sell.
Стоп-лосс
UseSignalStops: (Только для сигналов в Telegram): брать стопы из сигнала. Приоритеты: если в сигнале заданы стопы, и стоит галочка в настройках автопокупки по Telegram «брать стопы из сигнала», будут использованы стопы из сигнала. Если в сигнале не указаны стопы, будут использованы настройки стопов из стратегии.
UseStopLoss: Использовать стоп-лосс или нет, YES/NO.
FastStopLoss: Более быстрая сработка стопа по трейдам ("крестикам"). Стоп при этом будет реагировать на "прострелы".
StopLossEMA: Использовать усреднение цены при работе стоп-лосс. Если 0, то не используется. 3,5,10 — усреднять последние 3, 5,10 тиков. Параметр нужен, чтобы при случайном "простреле" вниз и пробитии уровня стоп-лосс не активировался panic-sell.
StopLossDelay: Задержка активации всех стоп-лоссов и трейлинга от момента покупки, секунды (Задержка иногда полезна для стратегии MoonShot и не только, бывают ситуации, когда произошел не прострел, а резкое выставление стенки на продажу глубоко в стакан BID, стенка стоит какое-то время, пропадает, а потом цена начинает рост. В данном случае мы могли бы избежать продажи по стоп лосс за счет задержки и в итоге получили бы профит).
StopLoss: Стоп-лосс, (в %) к цене покупки (не забудьте ставить минус). Этот параметр и его производные описаны в основных настройках.
StopLossSpread: Спред для стоп-лосса, (в %).
AllowedDrop: Уровень, на который активированный стоп-лосс может опускать цену, (в %) к цене покупки.
UseSecondStop: Использовать ли второй стоп-лосс, YES/NO. Условие применения второго стопа: «если через TimeToSwitch2Stop секунд или более цена выше чем цена PriceToSwitch2Stop, то применять второй стоп-лосс». Иначе говоря, данная опция выставляет стоп выше чем основной стоп-лосс через заданное время и тем самым уменьшает вероятные убытки. Внимание! Если основной стоп уже был активирован, то 2-й стоп применен не будет!
TimeToSwitch2Stop: Время в секундах до активации второго стопа.
PriceToSwitch2Stop: Цена в процентах от цены покупки, при достижении которой выставляется второй стоп.
SecondStopLoss: Величина второго стопа (в %) от цены покупки.
UseStopLoss3: Использовать 3й стоп лосс с активацией по таймеру, YES/NO. Работает аналогично второму стопу, дает вам еще один уровень, куда можно поставить стоп в безубыток. Внимание! Если основной стоп уже был активирован, то 3-й стоп применен не будет!
TimeToSwitchStop3: Таймер до включения 3-го стопа, секунды.
PriceToSwitchStop3: Цена в процентах от цены покупки, при достижении которой выставляется третий стоп.
StopLoss3: Уровень 3-го стопа. Следует ставить выше, чем основной стоп, т.к. цена может упасть быстрее, чем сработает таймер.
AllowedDrop3: Уровень, на который включенный стоп-лосс3 может опускать цену, (в %) к цене покупки. При дальнейшем снижении цены, если ордер все еще не продан, и достигнут основной стоп, будет задействован AllowedDrop от основного стопа.
Можно охарактеризовать стоп 2 и стоп 3 как некие вариации тейк профита с расширенными параметрами .
UseTrailing: Использовать трейлинг или нет, YES/NO. Параметры трейлинга и его производные описаны в основных настройках.
TrailingPercent: Процент трейлинга (отрицательный).
Trailing EMA (default is 0 – turned off): число тиков, за которые усреднять пиковую цену. Этот параметр нужен для того, чтобы при резком простреле цены вверх (скажем мгновенно на 10%), трейлинг не поднялся вверх на те же 10%, т.к. после таких прострелов стакан ASK сразу же заполняется, то наш трейлинг окажется в зоне стакана ASK и активируется panic sell.
TrailingSpread: Спред для PanicSell Трейлинга, (в %).
UseTakeProfit: Использовать тейк-профит, YES/NO. Если да, то трейлинг включится только после достижения ценой значения тейк профита + трейлинга. Без использования трейлинга этот параметр не имеет смысла. Подробнее о настройке Stop-Loss и Trailing
TakeProfit: Тейк-профит, (в %) к цене покупки.
UseBV_SV_Stop: Использовать стоп при падении отношения BV к SV (объема покупки к объему продажи) за N посл. сделок или N секунд. Число N задается ниже.
Важно: при включении этой функции стратегия так же проверяет условие на отношения BV к SV при входе в монету. Если условие выполнено, автопокупка не производится! (в противном случае сразу же включилась бы продажа).
BV_SV_Kind: Метод расчета отношения BV к SV: за N сделок или N секунд.
BV_SV_TradesN: Число N; сделок или секунд для расчета отношения BV к SV.
BV_SV_Ratio: Уровень отношения BV к SV, меньше которого включается стоп-лосс.
BV_SV_Reverse: если YES, то выход по bv\sv считается по обратному соотношению продаж к покупкам (т.е. выход , когда цена идет в вашу сторону)
BV_SV_TakeProfit: Включать BV SV только после достижения заданной цены, (в %).
Важно! Помимо заданных вами фильтров MoonBot так же учитывает фильтры группы Ограничение рисков из раздела Настройки — Основные, если они активированы.
Задача данного метода — выдать сигнал на нисходящем тренде по заданным условиям.
DropsMaxTime: Период анализа монеты,секунды. На основании этого параметра оцениваются все параметры ниже. Пример: задано 100 сек, MoonBot оценивает изменение цены за последние 100 сек, т.е. по истечении каждой секунды времени MoonBot отслеживает уже новый интервал.
DropsPriceMA: Интервал по времени за который MoonBot усредняет цены, секунды. Т.е. терминал будет брать среднее значение цены за заданный интервал. Пример: мы зададим 20 сек, а параметр DropsMaxTime =100. Тогда на всем периоде анализа в 100 секунд MoonBot берет зоны для расчета (1-21 сек. 2-22 сек. 3-23 сек….81-100 сек), в которых будет знать среднюю цену каждой зоны. Если вы не хотите усреднять цены, то можете задать этому параметру значение меньше 2 (терминал получает цены с биржи с интервалом раз в 2 секунды), тогда при заданном DropsMaxTime =100 мы будем иметь зоны по 2 секунды (1-2.2-3.3-4.4-5…99-100), в котором будет знать цену каждой зоны.
DropsLastPriceMA: Усреднять последние цены (кол-во 2-х секундных интервалов). Если задать 0 то усреднение не производится, тогда в случае резкого прострела цены вниз и ее мгновенного возврата к исходному состоянию мы получим срабатывание стратегии.
DropsPriceDelta: Падение за период анализа, в процентах. Считается как (Наибольшая цена / Наименьшая цена - 1) * 100.
DropsPriceIsLow: если стоит YES, то помимо вышеописанных условий текущая рыночная цена должна являться часовым минимумом.
DropsUseLastPrice: если YES, то для расчета цены покупки будет использована цена LastPrice (из расчета детектора).
Пример: пусть задано DropsMaxTime = 100 сек, DropsPriceMA = 20 сек, DropsLastPriceMA = 1 сек, DropsPriceDelta = 2%. Значит MoonBot отслеживает изменение цены за последние 100 секунд. При этом на каждом интервале в 20 сек. он определяет среднюю цену в интервале. Из них он берет самую большую и сравнивает ее с текущей рыночной ценой. Если текущая рыночная цена на 2% ниже самой большой цены, то стратегия срабатывает (например, самая большая цена была 102$, текущая цена 100$. Падение будет равно (102 / 100 - 1) * 100 = 2%. Важно! Пример приведен конкретно по параметрам стратегии, она могла бы не сработать, если бы не прошла общие для стратегии фильтры, описанные выше.
Задача данного метода — выявляет монеты, на которых стоит большой объем закупочных ордеров длительное время (поддержка). Пример на рис. ниже
Настройкой параметров можно задать период, на котором проверять наличие стены. Характерный признак долго стоящей стены — нет теней от свечей на графике (т.к. цена не падает ниже уровня поддержки).
Рекомендуется ставить небольшой стоп чуть ниже уровня стены и проверять новости (в твиттере и других источниках) по выявленной монете. В большинстве случаев наличие стены + положительный новостной фон являются признаком скорого хорошего роста.
Параметры
WallsMaxTime: Время, за которое проверять свечи, секунды. Дельта изменения цены начинает проверяться на данном временном промежутке.
WallsPriceDelta: Отклонение теней свечей на указанном промежутке, (в %). Измеряется отклонение цены, монета должна находиться в пределах этого изменения за заданное время WallsMaxTime. Задачей является определить как долго стенка на покупку стоит с минимальными ее передвижениями.
WallBuyVolDeep: Расстояние между ценой и стеной на покупку в стакане, (в %). Этим параметром мы указываем на каком расстоянии от текущей рыночной цены мы будем проверять объем стенки.
WallBuyVolume: Объем проверяемой стены в базовой валюте (не менее чем).
WallBuyVolToDailyVol: Объем данной стены не меньше, чем процент от суточного объема торгов по монете, (в %). Если объем стены 10BTC, а суточный объем торгов 100BTC, то стратегия сработает если параметр будет равен 10/100=10% или меньше его.
WallSellVolToBuy: Проверяется объем стены на продажи. Его объем должен составлять не более X% от объема стены на покупку. Понятно, что стены на продажу может и не быть.
WallSellVolDeep: Расстояние между ценой и стеной на продажу в стакане, (в %).
Пример. WallsMaxTime 600 сек, WallsPriceDelta 1%, WallBuyVolDeep 3%, WallBuyVolume 50 BTC, суточный объем торгов по монете 200BTC, WallBuyVolToDailyVol 10%, WallSellVolToBuy 30% , WallSellVolDeep 5%.
После запуска стратегии MoonBot начинает искать монеты, в которых на 3% ниже от текущей цены находится объем на покупку в 50BTC или больше. Дальше необходимо, чтобы для конкретный монеты эти 50BTC были больше 10% от суточного объема торгов. В нашем случае суточный обьем торгов 200BTC и наши 50 явно больше 10%. Значит монета идет на проверку дальше. Бот начинает смотреть обьемы в стакане BID. Если на расстоянии 5% вверх от текущей цены находится меньше чем 50BTC*30%=15BTC на продажу, то монета проходит проверку и проверяется дальше. Если в течении 600 секунд все предыдущие условия остаются выполненными и за это время монета не переместилась на 1% вверх или вниз, то стратегия срабатывает. Важно! Пример приведен конкретно по параметрам стратегии, она могла бы не сработать, если бы не прошла общие для всех стратегий фильтры, описанные выше.
Задача данного метода быстрое обнаружения закупочных ордеров, характерных при начале пампа. Важно! В отличие от остальных стратегий, стратегию pumps detection можно запускать только одну. Если вы запустите сразу несколько стратегий данного типа, будет работать только та, что находится выше в списке стратегий.
Параметры
PumpPriceInterval: За какой интервал анализировать рост цены, выбор из вариантов: 60сек, 30с, 15с, 4с.
PumpPriceRaise: Рост цены за последние PumpPriceInterval секунд, (в %).
PumpBuysPerSec: Число покупок в секунду (зеленые крестики на графике).
PumpVolPerSec: Объем покупок в секунду, в базовой валюте (чем меньше значение, тем больше вероятность ложного срабатывания).
PumpBuyersPerSecMin: Число покупателей за заданный интервал (не менее чем). В зависимости от группы, которая делает пампы, покупателей может быть много с низкообъемными сделками в самом начале, либо есть всего 1-2 покупателя, которые покупают огромным объемом.
PumpBuyersPerSecMax: Число покупателей за заданный интервал, не более чем (если 0, то не учитывается).
PumpVolEMA: Интервал для вычисления EMA объема покупок (по умолчанию 2 сек, может быть дробным) т.е. интервал усреднения объема покупок.
PumpBuyersInterval: Интервал для подсчета числа покупателей (по умолчанию 1 сек, значение может быть дробным).
PumpMoveTimer: Таймер перестановки селл ордера (если 0, ордер не переставляется). Этот параметр нужен для работы параметра, который описан ниже и работает только в случае, если вы используете автоматическую торговлю по этой стратегии.
PumpMovePercent: Процент от пиковой цены, на который переставить селл ордер (однократно). Учитывается процент между пиковой ценой и ценой покупки. Пример: Если PumpMovePersent = 50%, покупка произошла по 1000 сат., за время PumpMoveTimer от момента детекта цена выросла максимум до 1200 сат., то селл ордер будет выставлен на 1100 сатоши автоматически.
PumpUsePrevBuyPrice: Использовать цену 2-х секундной давности (если не указано использование цены 30-сек давности). По умолчанию включено. Эта настройка защищает от покупки на самой верхушке прострела. До вынесения этого параметра в настройки он был включен всегда программно, поэтому при отключении поведение стратегии поменяется! При отключении бот будет брать текущую цену, что может привести к покупке в самом верху прострела.
В настоящее время может быть активна только одна стратегия PumpsDetection, хотя вы можете настроить их любое количество.
Пример: PumpPriceInterval 4сек, PumpPriceRaise 2%, PumpBuysPerSec 5, PumpVolPerSec 1 BTC, PumpBuyersPerSecMin 2, PumpBuyersPerSecMax 100, PumpVolEMA 2 сек , PumpBuyersInterval 1.
Итак, MoonBot анализирует все монеты, которые подходят по общим фильтрам. Как только он замечает, что за последние 4 секунды цена выросла на 2 или более процентов, при этом из стакана ASK было выкуплено минимум 1 BTC с учетом PumpVolEMA=2, (согласно которого 50% объема предыдущих 2 сек + 100% объема текущих 2 сек должны быть больше установленного значения PumpVolPerSec=1 ВТС), и было выкуплено больше 5 ордеров в стакане, с учетом того, что к такому движению цены привели действия не одного покупателя, купившего по маркету и создавшего ценовой "прострел" вверх, а было как минимум 2 и не более 100 покупателей, в этом случае сработает детект и произойдет покупка (при включенном autobuy).
ВНИМАНИЕ! Высокая вероятность ложного срабатывания. Метод выявляет закупы с заданными параметрами, тем не менее, они могут иметь случайный характер и не обязательно являться следствием подготовки пампа.
Задача данного метода купить на простреле вниз. В отличие от остальных стратегий, муншот всегда держит открытые ордера по монетам, тем самым "замораживая депозит". Суть стратегии в том, что выставляются ордера на покупку монет, проходящих по фильтрам, на заданном расстоянии от текущей цены. Ордера перемещаются в зависимости от нижеописанных параметров.
Параметры
MShotPrice: Цена (в %) от текущей рыночной, на которой ставить ордер на покупку (всегда положительная, ордер всегда ставится ниже рыночной на указанное значение).
MShotPriceMin: Мин. цена (в %) от текущей рыночной, на которую может подойти рыночная цена к цене ордера. Если рыночная цена подойдет еще ближе, чем указанное значение, ордер будет переставлен вниз на MShotPrice. Т.е. при заданном MShotPrice 10% и MShotPriceMin 7% цена может двигаться над ордером в интервале +7…+10% от него. Как только цена станет +6.9% ордер автоматически переставится ниже и встанет на 10% ниже от текущей цены.
MShotMinusSatoshi: если YES, то ордер на покупку будет ставится не ближе, чем 2 сатоши от цены ASK. Полезно для монет с ценой менее 100 сат, у которых шаг цены равен 1% или более.
MShotAdd3hDelta: За каждый процент 3-часовой дельты цены добавлять X% к величине MShotPriceMin и MShotPrice. Пример, если MShotAdd3HourlyDelta= 0,05 (5%), MShotPrice=10% и 3-часовая дельта монеты 20%, то ордер выставится не на -10% от текущей цены, а на -10%+(-20*0.05)=-11%. Т.к. 3-часовая дельта меняется, то и ордер тоже будет переставляться.
MShotAddHourlyDelta: За каждый процент часовой дельты цены добавлять X% к величине MShotPriceMin и MShotPrice. Аналогично вышеописанному примеру.
MShotAdd15minDelta: За каждый процент 15-минутной дельты цены добавлять X% к величине MShotPriceMin и MShotPrice. Аналогично вышеописанному примеру.
MShotAddMarketDelta: За каждый процент часовой дельты маркета добавлять X% к величине MShotPriceMin и MShotPrice. Аналогично вышеописанному примеру.
MShotAddBTCDelta: За каждый процент часовой дельты BTC добавлять X% к величине MShotPriceMin и MShotPrice. Аналогично вышеописанному примеру.
MShotAddBTC5mDelta: Для учета дельты курса BTC-USDT за последние 5 минут. Данная дельта считается как разница (в процентах) между минимальной и максимальной ценой за последние 5 минут.
MShotAddDistance: Коэффициент расширения (в процентах) дальней границы цен (MShotPrice) в зависимости от дельт. Если к ближней границе добавилось X%, то к дальней добавится X * (1 + MShotAddDistance / 100)%. Пример: MShotAddDistance = 100, тогда дальняя граница будет отодвигаться в 2 раза дальше, чем верхняя (+100%). По умолчанию 0 — не добавлять ничего.
MShotAddPriceBug: Модификатор параметров в зависимости от PriceBug. Рекомендованное значение этого параметра 0.2, используйте, чтобы во время лагов биржи покупать дальше от текущей цены.
MShotSellAtLastPrice: После покупки ставить продажу по цене, равной максимуму из цены стратегии (sell price) и предпоследней (4-секундной давности, т.е. до прострела) цены ASK с учетом поправки (см. ниже), YES/NO.
MShotSellPriceAdjust: Поправка к цене ASK, (в %). Для расчета цены продажи из цены ASK вычитается поправка. Пример: цена ASK в момент прострела была 1000 сат. Поправка задана в 1%: 1000 — 1%= 990 сат. Если MShotSellAtLastPrice = YES, то MoonBot выставит продажу по наибольшей из двух цен: первая — цена продажи по общим настройкам стратегии, вторая — 990 сат.
MShotReplaceDelay: Задержка в секундах перед перестановкой buy ордера после падения цены до MShotPriceMin. (Т.е. при падении цены ниже MShotPriceMin, ордер переместится не сразу, а после заданного интервала времени в секундах).
MShotRaiseWait: Задержка в секундах перед перестановкой buy ордера после роста цены в секундах.
MShotSortBy: Сортировка монет, которые MoonBot отбирает для работы: LastNhDelta - по 1-, 2-, 3-часовой дельте цены; DVolToHVolAsc по соотношению суточного и часового объемов по возрастанию; DVolToHVolDesc - соотношению суточного и часового объемов по убыванию; OrderBook (Только у владельцев стратегии MoonStrike) - по стакану (берутся в первую очередь монеты с самым "тонким" стаканом), DailyVol - по суточному объему, MinuteVol - по минутному объему. Соответственно в приоритете монеты с максимальными параметрами.
MShotUsePrice: Ордер выставляется на расстояние MShotPrice, отсчитывая цену от стакана BID, ASK либо Trade — отсчет цен для перестановки ордеров от цены последней сделки.
MShotRepeatAfterBuy: Данный параметр входит в Пакет расширений для Автоторговли , там же можно прочитать и описание.
MShotRepeatIfProfit: Данный параметр входит в Пакет расширений для Автоторговли , там же можно прочитать и описание.
MShotRepeatWait: Данный параметр входит в Пакет расширений для Автоторговли , там же можно прочитать и описание.
MShotRepeatDelay: Данный параметр входит в Пакет расширений для Автоторговли , там же можно прочитать и описание.
Важно! Из-за частого переставления ордеров (зависит от конкретной настройки стратегии, но в большинстве случаев это так) идет нагрузка на API-ключи и есть шанс получить временный бан от биржи. Старайтесь держать меньше 30-35 активных ордеров одновременно. Если вам этого мало, запустите часть ордеров на одних API-ключах и часть на других API.
Задается 4 интервала и проверяется, что средние цены и объемы росли от предыдущего к последующему интервалу. Рост задается в процентах. Если задать 0 процентов, то условие превращается в «цена (объем) не упали». Для исключения проверки роста цены/объема на конкретном интервале необходимо в нужном параметре указать большое отрицательное число которое позволит пройти проверку этого условия, то есть проверка условия на этом интервале будет проходить всегда (кроме исключительных случаев реального падения цены/объемов меньше указанного значения).
Обозначения: P — цены, V — объемы
Параметры
VLiteT0: Интервалы в секундах (см. рис. выше).
VLiteT1: Интервалы в секундах (см. рис. выше).
VLiteT2: Интервалы в секундах (см. рис. выше).
VLiteT3: Интервалы в секундах (см. рис. выше).
VLiteP1: Рост цен от предыдущего к последующему интервалу, не менее чем (в %).
VLiteP2: Рост цен от предыдущего к последующему интервалу, не менее чем (в %).
VLiteP3: Рост цен от предыдущего к последующему интервалу, не менее чем (в %).
VLiteMaxP: Каждый рост не более, чем (в %).
VLitePDelta1: Сравнение роста цен между собой, (в %).
VLitePDelta2: Сравнение роста цен между собой, (в %).
VLiteDelta0: Изменение цены на нулевом интервале. (разница между макс. и мин. ценой в пределах нулевого интервала в процентах).
VLiteMaxSpike: Максимальная разница между макс. ценой на интервале и средней, не более чем (в %). Нужно для исключения прострелов.
VLiteV1: Рост объемов от предыдущего к последующему интервалу.
VLiteV2: Рост объемов от предыдущего к последующему интервалу.
VLiteV3: Рост объемов от предыдущего к последующему интервалу.
VLiteWeightedAvg: Способ вычисления средних цен: если YES, то считается взвешенное среднее по объему на интервале, если NO, то среднее по кол-ву сделок на интервале.
VLiteReducedVolumes: Если YES, то считать объем в минуту. Если NO то полный объем на интервале.
Суть метода в детекте объемов. Задается два интервала: «короткий» и «длинный» и вычисляются объемы на обоих интервалах. При этом объем на длинном интервале считается приведенным к минуте, т.е. объем в минуту. Например, если длинный интервал задан в 300 сек (5 мин), объем за 5 минут составил 10 BTC, то объем в минуту будет 2 BTC. На коротком интервале объем берется как есть.
Все отношения объемов задаются в виде чисел «во сколько раз одно больше другого», не проценты!
При срабатывании условий на объемы вторым шагом проверяются стаканы:
Параметры:
VolShortInterval: Короткий интервал в секундах.
VolShortPriseRaise: Рост цены на коротком интервале (можно ставить 0).
VolLongInterval: Длинный интервал в секундах.
VolBvShortToLong: Отношение объема покупки (BV) на коротком интервале к общему объему в минуту на длинном (во сколько раз один больше другого).
VolBvLongToHourlyMin: Отношение приведенного объема на длинном интервале к приведенному часовому объему, не менее.
VolBvLongToHourlyMax: Отношение приведенного объема на длинном интервале к приведенному часовому объему, не боле.
VolBvLongToDailyMin: Отношение приведенного объема на длинном интервале к приведенному суточному объему, не менее.
VolBvLongToDailyMax: Отношение приведенного объема на длинном интервале к приведенному суточному объему, не более.
VolBvToSvShort: Отношение BV к SV на коротком интервале.
VolBvShort: Объем BV на коротком интервале, не менее чем(в базовой валюте).
VolBuyersShort: Число покупателей на коротком интервале.
VolSvLong: Объем на продажу на длинном интервале, за вычетом короткого интервала, не более чем, (в базовой валюте).
VolTakeLongMaxP: Брать ли цену MaxPrice на длинном интервале (полезно в случае ложного роста после провала).
VolAtMinP: Объем в зеленом стакане на уровне мин. цены на коротком интервале, (в базовой валюте).
VolAtMaxP: Объем в зеленом стакане на уровне макс. цены на коротком интервале, (в базовой валюте).
VolDeltaAtMaxP: Динамика в зеленом стакане на уровне макс. цены на коротком интервале с момента детектирования до момента выставления ордера (MoonBot ждет для проверки не более 20 сек, если условия не сработали, ордер не ставится).
VolDeltaAtMinP: Динамика в зеленом стакане на уровне мин. цены на коротком интервале.
volBidsDeep: Глубина, на которую анализировать зеленый стакан, проценты от текущей ASК.
volBids: Объем в зеленом стакане на заданной глубине, (в базовой валюте).
volAsksDeep: Высота, на которую анализировать красный стакан, проценты от текущей ASК.
volBidsToAsks: Отношение объема BIDs к объему ASKs на заданных глубине и высоте, не менее чем.
Принцип такой же, как у Volumes Lite: Задается 4 интервала и проверяется изменение цен и объемов от предыдущего к последующему интервалу. В отличие от Volumes Lite, если задать положительное значение для параметра изменения цены, проверяется рост. Если задать отрицательное значение, проверяется падение. Если ноль, параметр игнорируется.
Обозначения: P — цены, V — объемы
WavesT0: Интервалы в секундах (см. рис. выше).
WavesT1: Интервалы в секундах (см. рис. выше).
WavesT2: Интервалы в секундах (см. рис. выше).
WavesT3: Интервалы в секундах (см. рис. выше).
WavesP1: Изменение цены от предыдущего к последующему интервалу, проценты. Если задать положительное значение, проверяется рост. Если задать отрицательное значение, проверяется падение. Если ноль, параметр игнорируется.
WavesP2: Изменение цены от предыдущего к последующему интервалу, проценты. Если задать положительное значение, проверяется рост. Если задать отрицательное значение, проверяется падение. Если ноль, параметр игнорируется.
WavesP3: Изменение цены от предыдущего к последующему интервалу, проценты. Если задать положительное значение, проверяется рост. Если задать отрицательное значение, проверяется падение. Если ноль, параметр игнорируется.
WavesDelta0: Изменение цены на нулевом интервале. (разница между макс. и мин. ценой в пределах нулевого интервала в процентах). Если задать положительное значение, проверяется рост (измеренная дельта больше заданной). Если задать отрицательное значение, проверяется отсутствие роста (измеренная дельта не больше заданной. К примеру «-1» означает, что колебание было не больше 1%). Если ноль, параметр игнорируется.
WavesMaxSpike: Максимальная разница между макс. ценой на интервале и средней (не более чем, в %). Нужно для исключения прострелов.
WavesV1: Рост объемов от предыдущего к последующему интервалу. Если задать положительное значение, проверяется рост. Если задать отрицательное значение, проверяется падение. Если ноль, параметр игнорируется.
WavesV2: Рост объемов от предыдущего к последующему интервалу. Если задать положительное значение, проверяется рост. Если задать отрицательное значение, проверяется падение. Если ноль, параметр игнорируется.
WavesV3: Рост объемов от предыдущего к последующему интервалу. Если задать положительное значение, проверяется рост. Если задать отрицательное значение, проверяется падение. Если ноль, параметр игнорируется.
WavesWeightedAvg: Способ вычисления средних цен: если YES, то считается взвешенное среднее по объему на интервале, если NO, то среднее по кол-ву сделок на интервале.
WavesReducedVolumes: Если YES, то считать объем в минуту. Если NO то полный объем на интервале.
Принцип работы: Берем длинный интервал последние 100 секунд (условно, все параметры настраиваемые) и короткое "окно" 10 секунд. На каждом тике прогоняем это 10-секундное "окно" через 100-секундный интервал и вычисляем усредненные за "окно" минимум и максимум цены. Получаем DeltaPrice за последние 100 секунд — степень активности монеты.
Считаем полный объем за последние 100 секунд и предыдущие 100 секунд и сравниваем, на сколько % подрос объем.
Смотрим последние 10 секунд и на них считаем число сделок и изменение средней цены на последних 10 секундах по сравнению со средней ценой за последние 100 секунд.
Параметры
DeltaInterval: Интервал анализа изменения цены и объема (длинный).
DeltaShortInterval: Интервал усреднения цены и анализа динамики сделок (короткий).
DeltaPrice: Изменение цены (дельта) на длинном интервале (не менее чем). Считается как отклонение в процентах между мин. ценой и макс. ценой с учетом усреднения цен по коротким интервалам.
DeltaVol: Общий объем (BV+SV) на длинном интервале (не менее чем, в базовой валюте).
DeltaVolRaise: Общий объем на длинном интервале больше, чем объем на предыдущем таком же интервале на заданный процент.
DeltaVolSec: Объем в секунду, усредненный с запаздыванием. Последние секунды перед детектом имеют больший вес,. единичные "прострелы" цены исключаются путем усреднения. Точный алгоритм расчета может меняться, параметр экспериментальный. Если ставить 0, он игнорируется.
DeltaBuyers: Число сделок (покупателей + продавцов) на последнем коротком интервале (не менее чем).
DeltaLastPrice: Средняя цена на последнем коротком интервале выросла или упала на заданный процент от средней цены на длинном интервале. Если значение положительно, то проверяется рост цены. Если значение отрицательно, то падение цены. Если 0, параметр игнорируется.
Данная стратегия используется для режима доверительного управления по протоколу UDPю
TMBuyPriceLimit: значение в процентах.
Защита стратегии для ДУ от покупок по слишком высокой цене: параметр TMBuyPriceLimit задает максимальное значение цены покупки (в процентах от текущей рыночной).
Например, если TMBuyPriceLimit = 5%, и приходит команда на покупку по цене +10%, то такая команда будет проигнорирована.
Подробнее про доверительное управление, можно прочесть тут:
Доверительное Управление: высокочастотный трейдинг по протоколу UDP
Задача стратегии — поймать "прострел" цены вниз и выставить ордер как можно быстрее, чтобы успеть совершить покупку.
К импульсному движению цены ("прострелу") может привести, например, срабатывание стоп-ордеров множества трейдеров при пробое какого-либо значимого уровня. Но стратегия может сработать не всегда, поскольку нужно успеть откупить падение раньше других биржевых ботов. Огромную роль в этом играет минимальный пинг с биржей и отсутствие лагов.
Именно поэтому рекомендуется запускать MoonBot на VPS в Японии. Также имеет смысл повысить приоритет приложения MoonBot (в новых версиях при запуске терминала "от администратора" приоритет “выше среднего” ставится автоматически).
Параметры
MStrikeDepth: Глубина прострела в процентах (10% по умолчанию, можно ставить 0.1% и выше).
Как измеряется:
1. Считается LastBidEMA(4 тика) по след. Формуле: Если на предпоследнем тике бид меньше чем LastBidEMA, то LastBidEMA принимается равным биду на предпоследнем тике (т.е. при падении цены LastBidEMA будет равно. биду в стакане 2 сек назад)
Если на предпоследнем тике бид больше чем LastBidEMA, то считается обычное EMA(4)
Таким образом, при падении цены LastBid будет всегда минимальным, при росте будет плавно расти
2. Считается глубина от LastBidEMA до минимума прострела цены на момент детекта.
Замечание 1: ловит также ситуацию “рост и сразу падение” (для исключения можно порекомендовать: считать EMA от BID, но это приведет к ловле медленных падений, аналогично стратегии Drops).
Замечание 2: трейды с биржи прилетают по очереди, т.е. прострел цены начинает рисоваться сверху вниз не мгновенно. Вследствие этого в какой-то момент, когда "прострел" стала ниже MStrikeDepth, произойдет детект, а тем временем цена может пойти еще ниже. Для исключения - см. MStrikeBuyDelay.
MStrikeVolume: Объем прострела на момент детекта не менее, чем.
MStrikeLastBidEMA: Пока этого нет, только в планах.
MStrikeAddHourlyDelta: Аналогично как для шотов, добавить % к MStrikeDepth за каждый процент часовой дельты.
MStrikeAdd15minDelta: Аналогично.
MStrikeAddMarketDelta: Аналогично.
MStrikeAddBTCDelta: Аналогично.
MStrikeBuyDelay: Задержка выставления buy-ордера в миллисекундах. Казалось бы, это противоречит идее стратегии, однако в ситуации когда трейды после детекта продолжают рисовать движение цены еще ниже, это может помочь. Между детектом и выставлением ордера вставляется задержка , во время которой продолжается измерение ценового "прострела".
Важно!
Общие параметры SellPrice и BuyPrice ОТСУТСТВУЮТ в этой стратегии! Вместо них введены параметры MStrikeBuyLevel и MStrikeSellLevel.
MStrikeBuyLevel — процент от зафиксированной глубины прострела Если 0, то пытаемся купить в самом низу, если 50% то пытаемся купить на середине прострела.
MStrikeBuyRelative — Если YES, то считается как описано в MStrikeBuyLevel. Если NO, то ордер на покупку выставится на конкретный процент от цены до детекта.
Пример: MStrikeBuyRelative =YES, MStrikeBuyLevel=5 — выставиться buy-ордер на 5% выше чем глубина прострела. MStrikeBuyRelative =NO, MStrikeBuyLevel=-5 — выставиться buy-ордер на -5% от цены до прострела.
MStrikeSellLevel — процент от глубины прострела (а не от цены покупки). Например прострел на 10%, SellPrice = 80% — в этом случае продаем на 80% от 10% = 8% выше нижней зафиксированной цены прострела.
MStrikeSellAdjust — объединение всех sell ордеров.Размер ордера OrderSize должен быть задан, указание 0 не будет брать ордер с ползунка на главном экране
MStrikeDirection - имеет 3 значения выставления ордеров: Both (в обе стороны симметрично), OnlyLong (только лонг), OnlyShort (только шорт). Both и OnlyShort работают только на фьючерсах.
MStrikeWaitDip: Ждать , пока не появится трейд с ценой выше (или для шорта - ниже), чем предыдущий. (любого направления, т.е. для лонга: прострел из селл ордеров, появляется бай или селл с ценой выше = детект). Ждем не более 10 сек, если вдруг трейд так и не появился то ордер не ставится
В лог пишутся:
Значение LastBidEMA согласно формуле выше;
Мин. Зафиксированная цена "прострела" на момент выставления ордера
Глубина "прострела" в процентах
Объем "прострела"
Цена buy-ордера
Заранее вычисленная цена продажи
Например:
04:13:00.097 BCD: MoonStrike LastBID: 0.00029700 min.Price: 0.00029500 Depth: 0.7% StrikeVol: 0.295 BTC BuyPrice: 0.00029500 sell +0.7% SellPrice: 0.00029699
Стратегия доступна только тем, пользователям которые поставили галочку «Согласен отправлять результаты моих сделок на сервер» (Настройки — Логин) на всех своих терминалах, и не снимал ее как минимум неделю перед использованием стратегии.
Стратегия для быстрой автоматической покупки и продажи новых монет на листинге.
Принцип работы:
Если вы хотите купить монету на листинге, то создаете одну стратегию NewListing или несколько, если у вас подключен модуль «Мультиордера», с указанием фиксированной цены в абсолютном значении (параметр BuyPriceAbsolute=YES), либо в процентах от цены листинга (параметр BuyPriceAbsolute=NO). Как только начинаются торги, MoonBot сразу же выставит ордер на покупку новой монеты согласно заданным параметрам.
Если нужно быстро продать монеты, которые вы получили перед листингом и они есть на вашем балансе, то указываете, что нужно продать монеты с баланса (SellFromAssets=YES), указываете, по какой цене продавать (SellPriceAbsolute=YES по абсолютной цене или SellPriceAbsolute=NO в проценте от цены ASK), указываете количество монет, которое нужно продать с баланса (SellQuantity=1000 - продать 1000 монет, если SellQuantity=0, то продать все монеты). Как только начинаются торги, MoonBot сразу же продаст нужное количество монет по указанным параметрам.
Стратегия не имеет отдельной вкладки Strategy setting, но при её создании появляются специальные параметры в общих вкладках.
На вкладке Buy conditions:
buyPriceAbsolute: NO/YES (по умолчанию NO),
если NO, то цена buyPice считается в процентах от рыночной цены (например, 1%), если YES, то buyPrice считается в абсолютном значении (например, 1$).
На вкладке Sell order:
SellPriceAbsolute: NO/YES (по умолчанию NO),
если NO, то SellPrice считается в процентах от цены ASK (например, 1%), если YES, то SellPrice считается в абсолютном значении (например, 1$).
SellFromAssets: NO/YES (по умолчанию NO),
если NO, то стратегия не будет продавать монеты с баланса, если YES, то стратегия будет продавать монеты с баланса.
SellQuantity: количество монет, которое нужно продать с баланса (например, 1000 монет), если в параметре задано "0", то нужно продать все монеты.
Комбо — это объединение двух других стратегий («Start» и «End»), которые работают вместе по следующему принципу: после срабатывания сигнала по первой стратегии «Start» MoonBot ждет указанное время, на протяжении которого проверяет срабатывание второй стратегии «End». Если срабатывание произошло, дается сигнал на покупку. Если нет, то цикл сбрасывается до нового срабатывания первой стратегии.
Все условия покупки, продажи, стопов берутся из стратегии Combo, а «Start» и «End» используются только для проверки сигналов. В самих стратегиях «Start» и «End» автопокупку нужно отключить!
Стратегия MoonShot не работает в комбо.
Все 3 стратегии должны быть активны. При уровне лога меньше 4 (Настройки — Специальные) в лог пишет только комбо-стратегия, 4 или 5 — в лог пишут «Start» и «End».
Параметры
ComboStart: Первая стратегия.
ComboEnd: Вторая стратегия.
ComboDelayMin: Время между первой и второй (не меньше чем, в сек).
ComboDelayMax: Время между первой и второй (не больше чем, в сек).
Стратегия TopMarket создается сама при первом запуске и по умолчанию сразу активна, если вы хотите отключить её работу, то нажмите кнопку "Снять выбор".
Стратегия TopMarket выдает в детект монету с наибольшей 15м дельтой.
DeltaMin: значение в процентах (0 или положительное значение).
Это порог минимальной дельты ниже, которого монеты не проходят по детекту.
TMSameDirection: YES / NO (по умолчанию YES)
Открывать позицию в направлении или против тренда, направление тренда вычисляется сравнением средней и текущей цены за час на конкретной монете.
а) TMSameDirection = YES (позиция откроется по тренду, если это был лонг, то откроется в лонг)
б) TMSameDirection = NO (позиция откроется против тренда, если это был лонг, то откроется в шорт)
Стратегия TopMarket является базовой и может применяться как для автоторговли, так и для детекта монет при ручной торговле.
Обратите внимание, что как с галочкой TMSameDirection = YES, так и TMSameDirection = NO стратегия TopMarket может набрать как лонги, так и шорты. Если вы хотите набирать позиции, только в одну, нужную для вас сторону, то делайте это через триггеры: стратегию TopMarket определяете как MASTER стратегию без покупки, которая запускает SLAVE стратегию (например, EMA), которая и покупает в нужную сторону (только в шорт или только в лонг), уже вне зависимости от направления тренда.
Для более тонкой настройки параметров ордера при ручной торговле предусмотрен специальный тип стратегий «Manual». Используя его вы можете задавать трейлинг, стоп-лосс и многие другие параметры с любой точностью. После создания стратегии отмечать галочками и включать ее в списке стратегий не нужно, достаточно просто заполнить параметры и сохранить стратегию.
Дополнительные параметры только для ручных стратегий.
Биржевой стоп - это возможность выставления sell-ордера биржевым стопом вместо тейкпрофита на бирже.
Чтобы торговать с применением ручной стратегии, нужно нажать кнопку МЕНЮ-РУЧНАЯ ТОРГОВЛЯ-ИСПОЛЬЗОВАТЬ СТРАТЕГИЮ. Далее, если у вас заполнено несколько вариантов ручных стратегий, выбрать нужную нажатием на надпись с именем стратегии в верхней строке (см. рис. ниже)
Обратите внимание! Фильтры стратегии применяются при ручной торговле. Если они вам не нужны, ставьте заведомо широкие диапазоны, например дельта монеты от 0 до 1000, дельта BTC и маркета от -100 до +100.
Стратегия основана на детекте ликвидаций и выставлении ордеров long или short в зависимости от типа ликвидированных ордеров.
Данная стратегия входит в комплект модуля “Binance Futures” и доступна всем активировавшим данный модуль (в том числе во время пробного периода).
Принцип работы. За заданный интервал времени проверяются ликвидации, их число, суммарный объем (в USDT) и направление (ликвидация шорт позиций или лонг). Если LiqWaitTime > 0, то также проверяется отсутствие новых ликвидаций заданное время (в мс). В зависимости от LiqDirection стратегия может срабатывать не только на одинарный детект за интервал LiqTime, но и проверять комбинации из подряд идущих срабатываний детектов (минимальное время между детектами задается в фильтрах NextDetectPenalty, максимальное время не ограничено): ликвидации (шорт, лонг), (лонг, шорт), (шорт, шорт), (лонг, лонг). Например: при LiqDirection Twice стратегия сработает только если произойдет два срабатывания детекта одного типа (либо шорты либо лонги) подряд, с интервалом между ними не менее чем NextDetectPenalty; интервал для самих детектов устанавливается в LiqTime.
Параметры
LiqTime: Интервал подсчета ликвидаций, секунды;
LiqCount: Число ликвидаций в интервале (если 0, не учитывается);
LiqVolumeMin: Минимальный объем ликвидаций за указанный интервал, в USDT (если 0, не учитывается);
LiqVolumeMax: Максимальный объем ликвидаций за указанный интервал, в USDT (если 0, не учитывается);
LiqWaitTime: Время ожидания после детекта отсутствия новых ликвидаций, милисек.;
LiqWithinTime: время от последней ликвидации не более чем, в миллисекундах (если 0, не учитывается);
LiqDirection: Направление: (Both — любое, OnlyShort — будут считаться только шорт, OnlyLong — будут считаться только лонг, Combo — 2 противоположных подряд, Twice — 2 одинаковых подряд);
LiqSameDirection: Ставить ордер того же направления или противоположного, YES — выставляемый ордер будет того же направления, NO — противоположного;
Liq_BV_SV_Time: время для расчета объемов, в миллисекундах;
Liq_BV_SV_Filter: пороговое значение bv\sv, (если 0, то игнорируется).
Данная стратегия входит в Пакет расширений для Автоторговли , там же можно прочитать и описание всех параметров.
Данная стратегия входит в Пакет расширений для Автоторговли , там же можно прочитать и описание всех параметров.
Данная стратегия доступна только пользователям Bonus, зарегистрированным по Акции и при наличии PRO-версии.
Стратегия детектит быстрое падение цены, и выставляет buy-ордер, который в дальнейшем движется в своем коридоре цены, как в mooshot, в ожидании повторного прострела.
И коридор, и начальное положение ордера линейно зависят от фактического детекта. Скорость падения определяется параметром HookTimeFrame (интервал времени для анализа). Стратегия разрабатывалась для ловли прострелов (HookTimeFrame = 2 сек), однако можно поиграть и с большими интервалами (до 40 сек).
Замечания:
Как это работает: на момент детекта фиксируются дельты. Далее, если дельты начинают расти, разница текущих дельт и зафиксированных на момент детекта, умноженных на свой коэффициент, влияет на нижнюю и верхнюю границу коридора.
Например:
BuyModifier=-3 (должен быть отрицательным!)
коэффициент Add3hDelta=0.053hDelta на момент детекта = 10
после, 3hDelta начинает стремительный рост = 50
Разница=40
если на момент детекта, коридор движения цены был -2%,-3%, то на момент когда дельта была = 50 (разница=40), коридор будет равен
Верхняя Граница=-2+(40*0.05*(-3)/2)=-5%
Нижняя Граница=-3+(40*0.05*(-3))=-9%
Важно! Верхняя граница увеличивается, но ровно в 2 раза увеличивается меньше, чем нижняя! Этим достигается расширение коридора.
Параметры
BuyOrderReduce: задает интервал (в мс) на котором считать средний объем торгов. Стратегия выставит ордер размером не больше, чем средний объем. По умолчанию 100 (мс). Как считается объем: суммируется объем всех сделок (покупки и продажи) на интервале HookTimeFrame и делится на BuyOrderReduce. Например, если HookTimeFrame = 5 сек (5000 мс), BuyOrderReduce = 100 мс, объем за 5 сек был 10 000$, то средний объем за 100 мс будет равен 10000/5000мс*100мс=200$. В этом случае стратегия поставит ордер не более 200$ Иначе говоря, смотрим какой же был средний объем за 100 (мс)/ 10мс/ 5мс, это и есть наш максимальный ордер какой выставит стратегия. BuyOrderReduce=0 - параметр отключен.
Работу функции уменьшения ордера можно увидеть в логе по такой записи:IOTA: [1] (40) Buy order reduced: 1000.00$ => 23.32$ (Vol: 23.32$)В этом логе OrderSize в стратегии стоял 1000$, но средний объем торгов за 100 мс составил всего 23$, поэтому стратегия выставила ордер на покупку размером 23$.
MinReducedSize: Если в результате применения BuyOrderReduce размер ордера получился меньше заданного значения (в USDT), то ордер не ставится (и детекта не будет соответственно). По умолчанию 0 (не применяется).
HookTimeFrame: Интервал времени для анализа.
HookDetectDepth: Глубина детекта
HookDetectDepthMax: Глубина прострела не больше, чем это значение. Если 0, то не учитывается.
HookAntiPump: Если YES, для расчета глубины детекта берется средняя цена перед детектом, что позволяет исключить прострелы сразу после быстрого роста.
HookPriceRollBack: Процент отката цены , в процентах от общей глубины. Например, 33% означает откат на треть от всего хода цены
HookPriceRollBackMax: Ограничение роллбека не больше, чем. Если 0 (по умолчанию), не применяется.
HookRollBackWait: Время, в течении которого цена держится выше HookPriceRollBack (миллисек). Рекомендуемое значение 100 мс позволит отсечь ситуации с 1 крестиком. Можно ставить и больше, но все событие прострела, отката и ожидания отката должно уложиться в HookTimeFrame сек.
HookDropMin, HookDropMax: падение цены перед детектом за посл. 2 минуты, от и до. Считается в процентах от зафиксированной глубины прострела.
Например, произошел прострел на 10%. При этом монета уже падала 2 минуты и перед прострелом уже упала на 20%. Тогда HookDrop = 20 / 10 * 100 = 200% (т.е. предыдущее падение на 200% больше, чем сам прострел).
Если 0, не учитывать.
HookDirection: Искать детекты только в лонг, только в шорт или в обе стороны
HookOppositeOrder: ставить ордер в обратную сторону (при детекте "стрелы" вниз ставить шорт вместо лонга)
HookInterpolate:
- Если 0, стратегия будет ставить ордер от верхней цены до прострела
- Если 1, стратегия будет ставить ордер от отката после прострела (от цены RollBack)
- Если 2, то отдается приоритет параметру HookInitialPrice
- Если 3, то ордер и коридор считаются от текущей цены относительно глубины прострела
- Если 4, то считается относительно глубины отката.
Если он противоречит коридору цены, то верхняя граница коридора двигается выше, на половину расстояния между вашим ордером и текущей ценой.
Если это невозможно физически, то детект не срабатывает.
В этой логике уменьшена нижняя граница.
Аналогичная логика и на шорте и на лонге.
Если HookInterpolate установлен 0, то модификатор BuyModifier не применяется.
HookInitialPrice: Куда ставить бай, в процентах от общей глубины. Например, цена упала на 10% со 110 до 100. Если HookInitialPrice = 25%, то бай будет поставлен на 25% от 10%, т.е. на 2.5% выше нижней точки: 100 + 2.5% = 102.5. Возможно отриц. значение - ставить бай еще ниже, чем нижняя точка падения.
HookPriceDistance: Ширина коридора цены. В процентах от общей глубины детекта. Например, был детект на 5% падения. HookPriceDistance = 10% будет означать, что ордер может ходить в пределах - верхняя граница 5-5/100*10=4,5%, нижняя граница 5+5/100*10=5,5% от текущей цены. Будет так же переставляться как МунШот при подходе к одной из границ.. Если 0, то ордер не управляется, не ходит как в муншоте, а просто стоит на месте до исполнения или отмены.
HookPartFilledDelay: Задержка отмены бай ордера после частичного заполнения (миллисек.) Если 0, задержки нет, частично заполненный ордер сразу отменяется (как в муншотах)
HookSellLevel: заменяет SellPrice. Задается в процентах от глубины детекта.
Например , SellPrice = 75% означает, что нужно продавать в верхней четверти прострела. SellPrice = 100% означает продажу в верхней точке, из которой начался прострел
HookSellFixed: считать селл всегда как (HookSellLevel * глубина) процентов, вне зависимости от цены покупки
HookReplaceDelay: Задержка в секундах перед перестановкой buy ордера после падения цены.
HookRaiseWait: Задержка в секундах перед перестановкой buy ордера после роста цены в секундах.
HookRepeatAfterSell: ставить повторный ордер после исполнения селла.
HookRepeatIfProfit: %, повторять, если продажа закрылась с таким или большим профитом.
BuyOrderReduce: (параметр перенесен из стратегии Spread и имеет такое же назначение). Задает интервал (в мс) на котором считать средний объем торгов. Стратегия выставит ордер размером не больше, чем средний объем. По умолчанию 100 (мс). Как считается объем: суммируется объем всех сделок (покупки и продажи) на интервале HookTimeFrame и делится на BuyOrderReduce. Например, если HookTimeFrame= 5 сек (5000 мс), BuyOrderReduce = 100мс, объем за 5 сек был 10 000$, то средний объем за 100мс будет равен 10000/5000мс*100мс=200$. В этом случае стратегия поставит ордер не более 200$
Иначе говоря, смотрим какой был средний объем за 100 (мс)/ 10мс/ 5мс, это и есть наш максимальный ордер какой выставит стратегия.
BuyOrderReduce=0 - параметр отключен
Работу функции уменьшения ордера можно увидеть в логе по такой записи:
IOTA: [1] (40) Buy order reduced: 1000.00$ => 23.32$ (Vol: 23.32$)
В этом логе OrderSize в стратегии стоял 1000$, но средний объем торгов за 100мс составил всего 23$, поэтому стратегия выставила ордер на покупку размером 23$.