Расширенный мануал по настройкам и работе A-Bot

afroandreyka
16 min readOct 2, 2021

Термины

Общая суточная дельта или просто Дельта — Среднее суточное значения роста/падения активов из разрешённого списка монет. Некий индикатор направленности рынка (рост, флэт или падение).
Дельта = сумма изменений цен за 24ч каждой монеты в разрешенном списке / количество монет в разрешенном списке.

Дельта в консоли или шапке Вашего Telegram-канала с уведомлениями
Суточное изменение цены монеты на Binance
Список разрешённых монет

Настройки

min_bnb — Минимальное значение остаточного свободного баланса в BNB, при котором бот докупит минимальным ордером BNB за любой возможный актив, указанный вquote_asset. Поскольку бот использует BNB для оплаты биржевой комиссии, её снижения (50% скидка при оплате комиссии в BNB) и во избежание пыльных остатков от активов, доступный баланс BNB на спотовом кошельке не должен быть равен нулю. В случае нехватки средств и невозможности купить BNB (например, из-за нехватки баланса активов из quote_asset), бот остановит торговлю и будет пытаться докупить BNB каждую минуту, возвращая ошибку в консоль в случае неудачной покупки.

Доступный баланс в BNB на спотовом кошельке

min_balance — Минимальное значение остаточного свободного баланса в отдельно взятом quote_asset, при снижении ниже которого бот перестанет покупать новые активы и усреднять имеющиеся позиции. Служит некой подушкой безопасности, при достижении которой бот сохраняет указанный % от общего депозита и ожидает продаж (освобождения свободного баланса), “доливов” к депозиту или ручных действий со стороны пользователя.

Свободный баланс в %

position_size — Параметр, определяющий максимально допустимое количество денежных средств в позиции от общего баланса. Бот не будет покупать/усреднять позицию, если её итоговый объём станет больше указанного % от общего депозита бота по отдельно взятому quote_asset. В таком случае бот автоматически будет снижать докупаемый объём, если это будет возможно, либо просто не будет усреднять позицию до тех пор, пока она не будет частично распродана по ордеру/реинвестированию/пользователем, что снизит её объём в % по отношению к общему депозиту и появится возможность для нового усреднения без превышения лимита настройки.

min_order — Значение (множитель, минимальное значение 1), которое обозначает желаемый ордер для входа в позицию. На Binance к разным котируемым активам предусмотрены разные минимальные суммы сделки. На USDT, BUSD, TUSD и других стейблкоинах доллара минимальная сумма ордера составляет 10$ на подавляющем большинстве монет (кроме XVS, где минимальный ордер равен 0.1$); на BNB минимальная стоимость заявки составляет 0.05 BNB. Таким образом, если в min_order вы укажите, например, 1.15, то бот будет открывать позиции, начиная с покупки 1.15 * 10 = 11.5$ на USD активах, 1.15 * 0.05 = 0.0575 на BNB и так далее. Лимиты на все пары можно посмотреть здесь: https://www.binance.com/ru/trade-rule

Пытаемся купить BTC на 5$
и получаем ошибку

row_sell — Во сколько раз бот может увеличивать множитель min_order при открытии позиции в случае, если предыдущая сделка по этой торговой паре была без усреднений и закрылась в течение 3600 секунд (или в течение указанного в ключе conf row_timer количества секунд)? В случае, если значение параметра row_sell больше х1, бот сможет автоматически увеличивать min_order при открытии позиции, если предыдущая продажа соответствовала условиям по количеству усреднений и таймеру.

Рассмотрим на примере с row_sell = x3.
Изначально бот открыл позицию с множителем rowSell = х1 (rowSell — колонка в базе данных бота у каждой позиции, отображающая её текущий множитель), то есть множитель размера ордера был равен min_order * 1 и позиция продалась без усреднений в течение 3600 секунд (или значения секунд из row_timer) — В этом случае бот увеличит множитель rowSell на 1 (до х2), т.к. это значение не будет больше самого значения row_sell. Если бот вновь откроет позицию в течение часа (или установленного пользователем времени в ключе row_timer) и также быстро продаст её в течение этого времени без усреднений — множитель rowSell вновь увеличится на 1 (и станет равен х3 — максимум, установленный настройкой row_sell, поэтому в дальнейшем rowSell не сможет стать больше х3, если только пользователь не изменит настройки, повысив row_sell). Итого, при третьей покупке монеты ботом, min_order будет увеличен в 3 раза и будет оставаться таким до тех пор, пока не произойдёт что-то из перечисленного:

1) У позиции появятся усреднения: в таком случае, бот понизит её rowSell на количество усреднений, но не менее х1 (с rowSell х3 при закрытии позиции с одним усреднением новое значение этой колонки станет равно х2 (3 - 1 = 2); с двумя усреднениями значение станет равно x1 (3 - 2 = 1); с тремя и более усреднениями также х1, т.к. rowSell не может быть меньше 1!
2) Длина сделки или время между последней продажей монеты и её новой покупкой превысит 3600 секунд или значение row_timer: тогда множитель rowSell сбросится полностью и станет равен х1.

В основном, эта настройка рассчитана для увеличения прибыли от быстрых сделок: если позиция закрывается несколько раз в течение короткого периода времени — значит курс пары растёт и row_sell увеличивает начальный размер входа в позицию, позволяя забрать больше прибыли с одних и тех же движений цены.

После продажи NKN/BTC с 2 усреднениями и множителем х3, rowSell становится равен х1; далее позиция вновь открывается и продаётся через 23 секунды, потом быстро открывается вновь, но уже с увеличенным до х2 множителем; через 1 секунду позиция продаётся и rowSell вновь повысится на 1 до х3

min_price — Минимальная стоимость актива в эквиваленте к USD для покупки ботом. Если цена монеты меньше указанного значения в USD, то бот будет игнорировать её и не осуществит первую покупку (не откроет позицию по активу). С курсами монет, которые торгуются к USD стейблкоинам всё понятно, они составляют 1к1, а вот рыночный курс к другим активам (например к BTC или ETH) в эквиваленте к USD рассчитывается по формуле. Рассмотрим пример с BNB /USDT и BNB/BTC, последний из которых нам нужно привести в эквивалент к USD, чтобы рассчитать его min_price:

курс BNB/BTC * курс BTC/USD = 0.008874 * 47710= 423.3 USD.

BNB/ETH рассчитывается по той же формуле, только BNB/BTC меняется на BNB/ETH.

Курсы BNB к разным котируемым активам

min_daily_percent и daily_percent — Обозначают процентный коридор, в который должны попадать монеты из разрешённого списка монет A-Bot по параметру изменения цены за последние 24 часа для их первой покупки (входа в сделку). min_daily_percent служит нижней границей этого коридора, а daily_percent — верхней. Если бы Ваш коридор был от -35% до 5%, то открыть сделку по BTC/USDT бот бы смог, а на PNT/USDT уже нет, т.к. процент роста на последнем больше 5%

Суточное изменение цены на BTC/USDT
Суточное изменение цены на PNT/USDT

Монеты же, напротив, которые падают, не должны опускаться по суточному изменению цены ниже заданных -35%, иначе бот также не откроет по ним позицию.

auto_daily_percent — При включенном параметре бот автоматически ежесекундно применяет за значение daily_percent % общей суточной дельты; служит некой динамической планкой верхнего коридора закупок в зависимости от роста/падения рынка.
Если рынок растёт -> daily_percent повышается и бот начинает торговать растущими монетами, суточное изменение цены которых ещё не достигло верхней планки процентного коридора.
Если рынок падает -> daily_percent понижается и, тем самым, сужает процентный коридор во избежание покупки монет, которые не успели отреагировать на падение.

order_timer — Какую паузу бот должен соблюдать между перезаходом в позицию на одной и той же паре. Например, при паузе в 60 секунд, после продажи позиции, условно XRP/USDT, бот не будет открывать по ней же позицию вновь в течение как минимум 60 секунд.

min_value — Минимальный суточный торговый объём в котируемом активе на паре в эквиваленте к USD, необходимый боту для входа в позицию. Если суточный объём на паре не превышает заданного значения, бот не будет рассматривать открытие сделки по такой паре. Обратите внимание, что объёмы на котируемых активах, не являющихся стейблкоинами, конвертируется и приводится к объёму в USD (на FIO/BTC объём в BTC составляет 10.99, что по курсу 47710 за 1 BTC составляет в эквиваленте ~520,000$), поэтому при min_value, равном 1,000,000$, бот бы купил FIO за USDT и не купил бы за BTC при наличии BTC и USDT в quote_asset.

Объём в USD на паре FIO/USDT, эквивалент к USD ~3,027,217$
Объём в BTC на паре FIO/BTC, эквивалент к USD ~520,000$

sell_up — Желаемый % профита со сделки от её общей суммы (0.15% автоматически добавляются к sell_up для покрытия биржевой комиссии).

Далее будут рассмотрены основополагающие настройки усреднения buy_down и step_aver, т.к. именно на этой стратегии работает бот.

buy_down — Настройка будущих усреднений. Регулирует статичную процентную сетку необходимого падения от последней цены покупки актива до текущей рыночной цены, чтобы усреднить позицию.
Рассмотрим настройку на примере HNT/USDT со значением buy_down -5%. Бот откроет позицию на монете, купив условную 1 монету по условной рыночной цене 20$ и выставит ордер на продажу выше от средней цены входа в позицию (а это у нас 20$, поскольку это первая сделка при открытии позиции) на sell_up %. Но в случае не роста, а падения курса купленной монеты и не достижения ордера на продажу, бот будет мониторить падение монеты по отношению к последней цене покупки (20$). Если рыночная цена монеты упадёт на 5% от 20$, достигнув 19$ или меньше, бот усреднит позицию. Цена последней покупки изменится на 19$ и в случае дальнейшего падения от этой цифры на 5% (до 18.05$) бот произведёт новое усреднение.

Усреднение позиции для уменьшения средней цены входа

Естественно, после усреднения средняя цена входа также снижается, что позволяет нам уже не ждать возврата к курсу актива в 20$.
Формула расчёта средней цены при усреднении:

Новая средняя цена входа = ((имеющаяся средняя цена * имеющийся объём в позиции) + (цена покупки нового объёма * объём новой сделки)) / (имеющийся объём в позиции + объём новой сделки)

или

averPrice = ((averP * averQ) + (newP * newQ)) / (averQ + newQ)

где возьмём наши значения выше: averP = 20$, averQ = 1 монета, newP = 19$, newQ = 2 монеты
Итого, средняя цена станет равна 19.33$

В данном примере для наглядности мы взяли newQ = 2 монеты. Дальше в описании будет рассмотрена настройка quantity_aver, влияющая на эту величину и, соответственно, на среднюю цену позиции после усреднения.
Также обратите внимание на объём новой сделки или newQ — это объём в базовом активе, а не котируемом! (в паре HNT/USDT базовым активом является HNT, то есть актив, КОТОРЫЙ торгуется к другому активу, а котируемым USDT, к КОТОРОМУ торгуется другая монета)

Средняя цена после усреднения

step_aver — Сетка усреднений и её процент. Выше мы рассмотрели пример усреднения по статичной сетке (-5%) при каждом усреднении. Новая настройка же вносит прогрессию в процесс усреднения, являясь по своей сути grid-сеткой. Её суть крайне проста: вместо того, чтобы использовать постоянный buy_down с -5%, бот будет использовать добавочную сетку усреднений, которая при открытии позиции сначала равна 0%, но увеличивается на step_aver % при каждом усреднении. Допустим, этот процент будет равен 3.5. В таком случае, с каждым усреднением значение сетки усреднений будет увеличиваться на 3.5% (учтите, что значение сетки на уже открытых и усреднённых позициях статично и не меняется при изменении step_aver, просто при новых усреднениях к сетке будет прибавляться новое значение этого параметра вместо старых 3.5%) и для нового усреднения монете потребуется упасть от цены последней покупки на buy_down минус увеличенная сетка усреднений.

1) -5 (buy_down) - 0 (сетка усреднений) = -5% для первого усреднения, сетка усреднений при это увеличится на 3.5 (step_aver) и станет равна 3.5%
2) -5 - 3.5 = -8.5% для второго усреднения, сетка станет равна 3.5 + 3.5 = 7%
Далее допустим, что пользователь захотел поменять step_aver с 3.5 на 5.25, тогда:
3) -5 - 7 = -12% для третьего усреднения, сетка 7 + 5.25 = 12.25%

Таким образом, чтобы усредниться вновь, монете потребуется упасть на бОльший процент от цены последнего усреднения.

Увеличивающийся по сетке процент падения, необходимый для нового усреднения

max_aver — Максимальное разрешённое количество усреднений на одной позиции. Если, например, указать значение 0, то бот вообще не будет усреднять позиции. При значении 4, бот, после покупки монеты, сможет докупить (усреднить) её ещё 4 раза, после чего упрётся в лимит и будет ждать либо продажи позиции, либо ручных действий со стороны пользователя (например, ручное усреднение с включенной настройкой user_order), о которой позже.

max_trade_pairs — Максимально допустимое количество открытых позиций (если в quote_asset несколько активов, то ограничение пар применяется к каждому из них отдельно). В whitelist’е бота может быть множество монет (например, все к USDT, а это около ~300 монет), но Вы можете ограничить количество позиций, например до 22, и тогда бот будет держать открытыми не более 22 позиций до тех пор, пока не продастся какой-то ордер и их общее количество не станет равно 21. В таком случае бот докупит ещё одну позицию и количество ордеров снова станет равно 22-м.
Не стоит забывать, что фактическое количество открытых ордеров может быть меньше, чем значение max_trade_pairs. Это может быть обусловлено всеми торговыми параметрами, по которым в whitelist’е бота не набирается столько монет для покупки в текущий момент времени, подходящих под условия настроек бота.

Количество открытых ордеров 14 из 22 возможных

Также количество открытых ордеров может быть и больше max_trade_pairs в тому случае, если вы изменили значение этой настройки на меньшее значение или её значение регулируют две другие настройки, о которых мы поговорим далее.

Количество открытых ордеров 14 из 0 возможных

auto_trade_pairs — Автоматическая регулировка количества разрешённых пар. Если настройка включена, то бот может изменять значение max_trade_pairs в меньшую сторону в зависимости от соотношения балансов. Чем меньше в процентном соотношении свободный баланс по отношению к общему, тем сильнее бот урезает количество пар и экономит средства.

progressive_max_pairs — Прогрессивная автоматическая регулировка пар (не работает, если не включена auto_trade_pairs). Данный параметр ориентируется не только на соотношение балансов, но и на количество открытых позиций, общее количество усреднений по всем позициям и средний вес этих усреднений. Таким образом, бот может ограничивать количество пар по ещё бОльшему спектру анализа открытых позиций: как только рынок начинает падать, бот видит возрастающее количество усреднений у позиций и их “тяжесть”, заметно ограничивая max_trade_pairs и отдаёт приоритет усреднениям.

delta_deep — Использовать определение глубины падающего рынка по общей дельте для нахождения локальных low цен и блокировки покупок/усреднений в течение всего падения. При включенной настройке бот будет вести наблюдение за минимальными ценовыми и процентными суточными показателями изменения цен на монеты из вайтлиста, а также для определения момента начала общего снижения рынка (по уменьшающейся Дельте, которая становится меньше
-sell_up%).
Если общая Дельта становится меньше -sell_up%, то бот начинает запоминать наименьшие значения Дельты, как определения локального дна, а также индивидуальные цены по монетам из вайтлиста, как частные показатели волатильности на каждой монете и силе отскока от их индивидуальных low значений; также, любые покупки/усреднения блокируются до тех пор, пока общая Дельта не отскочит хотя бы на 1/10 от последнего зафиксированного минимума (например, если Дельта была -8.5%, то для разблокировки торговли она должна вырасти на 0.85% и стать -7.65%).
После разблокировки общей Дельты, для покупки/усреднения монеты бот проверяет её индивидуальный отскок, который также должен сигнализировать об отскоке цены от минимального зафиксированного значения за сутки. После полной разблокировки Дельты и возможности осуществлять торговые операции, бот постепенно вытягивает зафиксированное low значение обратно к нулю (например, от взятых выше -8.5% постепенно поднимается к 0% с шагом в 0.001% примерно каждую секунду), чтобы, в случае повторного падения после коррекции и проторговки общая Дельта падала не к -8.5% для блокировки покупок/усреднений (к low уровню), а к его приподнятому или вообще обнулённому значению (то есть к уровню -sell_up%).
Соответственно, чем больше времени идёт проторговка или рост цены, тем приближённее к нулю становится зафиксированный low уровень блокировки. В случае же, если цена вновь пойдёт вниз и приблизиться на 1/10 и ближе к зафиксированному low уровню, то блокировка торговли активируется вновь и бот снова будет мониторить low уровни и отскоки от них.

Обозначение активной блокировки в личном Telegram-канале с уведомлениями
В консоли при активной блокировке значение Дельты всегда окрашено красным цветом

individual_depth — Аналог delta_deep, но применяющийся для каждой торговой пары отдельно. Если delta_deep полностью блокирует покупки/усреднения в моменте падения на определённом quote_asset, основываясь на общей суточной дельте активов из разрешённого списка монет, то эта настройка блокирует покупки/усреднения по отдельным монетам в случае снижения их суточной цены, но разрешает торговлю другими активами, которые не испытывают снижения рыночной стоимости. Эти настройки могут работать вместе (общая блокировка и блокировка отдельных падающих активов), если они обе включены, или раздельно, если выключена одна из них.

user_order— Разрешить боту работать с ручными ордерами пользователя (лимитные и рыночные ордера). Если настройка включена, бот будет реагировать на покупку пользователем любой монеты, находящейся в вайтлисте.
Если ордер пользователя рыночный, то: если по этой монете ещё не открыта позиция ботом, он сразу же разместит её на продажу по цене = цена_покупки + sell_up% и будет сопровождать этот ордер, как свой, до момента продажи; если на монете уже открыта позиция (уже есть размещённый на продажу лимитный ордер бота), то бот отменит свой ордер, рассчитает новую среднюю цену входа и выставит новый лимитный ордер на продажу по цене = средняя_цена_позиции + sell_up% и будет сопровождать этот ордер, как свой, до момента продажи.
Если ордер пользователя лимитный, то бот сделает всё то же самое, только с одной разницей: пользовательский ордер на покупку должен быть либо исполнен, либо отменён самим пользователем.

Схема работы с ручными ордерами пользователя на покупку

quantity_aver— Множитель размера усреднения от текущего веса позиции. Это значение влияет на докупаемое количество монет при усреднении.
То, что бот работает по стратегии мартингейла, подразумевает наличие не только периодических усреднений через определённый процент падения цены, но и объём монет, который докупает бот при этих усреднениях.
Первый ордер, открывающий позицию, формируется на основании множителя min_order (мы не учитываем дополнительные функции по типу --conf mop ключа), а quantity_aver— формирует размер усреднения таким образом, чтобы, по упрощённой схеме, докупаемое_количество_монет было равно = текущее_количество_монет * quantity_aver.
Например, возьмём множитель усреднения x1.75; бот открыл позицию — купил 0.15 BNB за USDT — , выставил ордер на продажу и ждёт его исполнения. Но монета, вместо роста, падает и достигает цены, по которой в соответствии с настройками бот должен начать усреднение. После срабатывания триггера, бот отменяет имеющийся ордер на продажу в размере 0.15 BNB, и теперь ему нужно рассчитать объём для усреднения, исходя из уже имеющихся монет BNB в позиции. Для этого бот находит объём для усреднения по формуле выше и получается, что докупаемое_количество_монет, необходимое для усреднения, = 0.15 * 1.75 = 0.2625 BNB.
Если у пользователя хватает свободных средств на усреднение — бот докупает 0.2625 BNB (то есть в 1.75 раза больше, чем у нас было). Итого, после усреднения, у нас есть 0.15 BNB, которые были в позиции изначально, и 0.2625 докупленных BNB. Складываем эти цифры, получаем 0.4125 BNB — такой объём будет у бота в новой, усреднённой позиции.
Стоит помнить, что между размером усреднения и получаемой после усреднения средней ценой есть прямая зависимость: чем больше множитель quantity_aver, тем ближе к рыночной цене сдвинется средняя цена входа; но вместе с этим, общий размер позиции также заметно увеличиться и для дальнейших усреднений может потребоваться гораздо больше средств.

Средняя цена после усреднения с множителем х1.75
Средняя цена с множителем х2.25

Размер второго усреднения, ровно как и последующих, будет определяться по той же логике: докупаемое_количество_монет = текущее_количество_монет * quantity_aver.
То есть 0.4125 BNB * 1.75 = 0.721875 BNB — докупаемое количество монет;
0.721875 (докупленное) + 0.4125 (уже имеющееся) = 1.134375 BNB будет размер нового ордера после 2-го усреднения.

average_percent — Максимальный желаемый % разницы между рыночной ценой и средней ценой входа в позицию после усреднения бота. Выше мы рассмотрели настройку, которая определяет множитель размера каждого нового усреднения, но что, если пользователь задал консервативно небольшое значениеquantity_aver или слишком большую сетку усреднений buy_down/step_aver и после каждого усреднения выставляемый ордер на продажу становится всё дальше и дальше от текущей рыночной цены, что делает реализацию позиции всё более трудной? Более того, как бы мы не пытались поспорить с математикой, ордер на продажу будет неизменно отдалятся от нас даже с крупными множителями и маленькой сеткой усреднений. Именно для предотвращения этой нарастающей разницы и существует параметр average_percent.
Для примера в расчётах возьмём значение 7%.
Итак, что же делает эта настройка? Для пользователя всё просто: в момент усреднения, когда бот высчитывает докупаемое количество монет, он также находит среднюю цену входа в позицию, которая будет в том случае, если алгоритм произведёт покупку именно того количества монет, которое получил в расчётах. И если эта средняя цена входа находится дальше 7% от текущей рыночной цены, то бот находит новое докупаемое количество монет из того расчёта, что после усреднения от цены, по которой произошла докупка, до получившейся средней цены позиции должно быть ровно 7%!
Допустим, у нас открыта позиция по BNB, в ней находится 0.15 BNB и её средняя цена равна 400$. Цена идёт вниз, доходит до условного триггера начала усреднения (пусть это будет цена в 330$). Бот отменяет ордер и начинает рассчитывать размер усреднения, исходя из настроек quantity_aver (пусть множитель усреднения будет равен х1).
Получается, что боту нужно докупить 0.15 BNB * 1 = 0.15 BNB. Столько же, сколько у нас уже имеется.

Докупаем 0.15 BNB по цене 330$, получаем среднюю цену входа 365$

И всё бы ничего, только в итоговых значениях есть одна особенность: если рассчитать разницу между получаемой средней ценой позиции в 365$ и текущей рыночной ценой 330$, по которой происходит докупка, мы получим разницу в цене более, чем 10.6% (то есть с 330$ монете нужно будет вырасти на 10.6%, чтобы достигнуть средней цены входа в позицию, то есть до 365$).
Также не стоит забывать, что средняя цена входа — это цена безубытка (при этом даже без учёта биржевой комиссии), а не ордер на продажу. Последний находится выше средней цены на sell_up%.
Так вот, получив такой большой процент разницы, бот смотрит на значение average_percent, которое равно 7%, и понимает, что эту разницу нужно снизить. С 10.6% к нашим желаемым 7%.
Для этого бот находит новый объём монет для усреднения, который будет больше тех 0.15 BNB, которые получились, исходя из множителя усреднений. Делает он по этой формуле:

aver_perc = 1 + average_percent / 100

новый_объём = (имеющееся_количество_монет * (старая_средняя_цена_входа - рыночная_цена_монеты * aver_perc) / (рыночная_цена_монеты * aver_perc - рыночная_цена_монеты))

Итого, новый_объём = (0.15 * (400 - 330 * 1.07) / (330 * 1.07 - 330)) = ~0.304 BNB.

При усреднении на 0.304 BNB, средняя цена станет равна 353$, что больше текущей рыночной цены 330$ именно на 7%

Как следствие, после такого усреднения ордер на продажу будет находится выше от текущей рыночной цены ровно на 7% + sell_up%.
Стоит помнить: если средняя цена входа после усреднения и без того будет в пределах значения average_percent, то никакой нужды в увеличении докупаемого количества монет у бота нет и усреднение будет производится из расчётов множителя quantity_aver.

trailing_stop, trailing_percent, trailing_part — Трейлинг-стоп, позволяющий при благоприятных условиях распродавать позицию по мере роста цены актива в случае, если рыночная стоимость монеты приблизилась к лимитному ордеру на продажу на trailing_percent %. В таком случае лимитный ордер отменяется и бот пытается поймать максимальные точки роста курса монеты.
В этот же момент активируется триггер трейлинг-стопа, который закрывает позицию полностью в случае, если рыночная цена начинает падать (дабы не упустить прибыль и закрыть позицию). Если же цена актива растёт, то вместе с этим подтягивается выше и триггер закрытия позиции по трейлинг-стопу, чтобы не ждать полного снижения курса монеты к изначальной цене активации трейлинг-стопа.
Между активацией трейлинга и полным закрытием позиции могут происходить частичные продажи позиции на объём, равный trailing_part % от оставшегося количества монет.

Триггер трейлинг-стопа полностью закрывает позицию в прибыль в случае начала снижения цены, независимо от количества оставшихся монет в позиции
Пример трейлинга (4 частичные продажи по возрастающей цене)

Данная настройка призвана увеличить желаемый процент прибыли sell_up в отличие от лимитного ордера, размещённого на продажу и ждущего своего исполнения, но она не гарантирует возрастания прибыли от каждой сделки: на это влияет ценовой фактор и продолжительность непрерывного роста актива.

soon…

--

--