Сеточная торговля: как торговать сеткой отложенных ордеров
Сеточная торговля — это техника, при которой трейдер открывает позицию не за один раз, а в виде последовательности ордеров. Обычно они устанавливаются как лимитный ордер или стоп-ордер около текущего ценового уровня. Сеточная торговля похожа на построение пирамиды, где открываются дополнительные позиции, если тренд движется в правильном направлении.
Хеджируемая сетка ордеров — это игра на волатильности рынка. Есть две причины, по которым он привлекает трейдеров Форекс.
Во-первых, сеточная торговля не требует от вас точного прогноза направления рынка.
Во-вторых, он хорошо работает на волатильных, колеблющихся рынках, где нет четкого тренда — условия, которые часто присутствуют на валютных рынках.
Мы рассмотрим именно хеджируемую сеточную стратегию, так как она более безопасна в сравнении с сеточной торговлей с использованием Мартингейла. В этой статье приводятся некоторые практические примеры настроек торговли сетками ордеров и объясняется, при каких условиях сетки работают, а также их недостатки.
Классическая хеджируемая сеточная стратегия.
Хеджируемая сетка ордеров состоит из длинных и коротких позиций. Как следует из названия, в этом подходе есть встроенная мера хеджирования или защиты от убытков. Основная идея заключается в том, что любые убыточные сделки могут быть компенсированы прибыльными. В идеале в какой-то момент вся сетка ордеров становится положительной. Затем мы закрываем все открытые позиции и получаем прибыль.
С этой сеточной стратегией идеальным сценарием будет, если цена движется вверх или вниз, активируя ордера только одной стороны сетки. При этом она открывает как можно больше ордеров и проходит как можно больше уровней тейк-профита в одном направлении.
Хеджируемая сетка — это нейтральная рыночная стратегия. Прибыль будет одинаковой независимо от того, растет рынок или падает.
Что привлекает в этом стиле торговли, так это то, что вам не нужно предсказывать направление тренда. Вы можете получить прибыль, как на медвежьем, так и на бычьем рынке.
Давайте посмотрим на базовую конфигурацию сетки.
Сетка и мартингейл: что это такое и как их использовать?
ВведениеВ данной статье я хочу с помощью математики и программирования показать, что же на самом деле представляют из себя данные стратегии и действительно ли они так прибыльны, как думают многие. Будет математическая часть и практическая. В математической части я напишу формулы, с помощью которых можно будет посчитать математическое ожидание данных стратегий и другие важные параметры, которые, как я думаю, многие не берут в расчет. В практической части мы напишем простейшую сетку и простейший мартингейл, и сравним что, наши формулы говорят и что есть в реальности. Особенно статья будет полезна новичкам, так как первым делом, в основном, люди сталкиваются именно с этими стратегиями и начинают в них верить, что приводит к разочарованиям и бессмысленным тратам времени, как произошло и со мной в свое время. Если бы я не дружил с математикой, возможно, я до сих пор бы верил в эти стратегии. Но в этих стратегиях все же есть рациональное зерно, если грамотно на них посмотреть. Все это я попытаюсь вам доказать.
Что общего в этих двух стратегиях ?Чтобы понять почему именно эти две стратегии так популярны, нужно понять, чего же хочет любой новичок, приходящий на форекс. В числе новичков всегда довольно большой процент математиков и мечтателей, думающих о быстром и легком обогащении за счет своего интеллекта, к которым относился в свое время и я. Обе эти стратегии реализуют видимость беспроигрышной торговли в виде графиков, все время идущих вверх в тестере стратегий. На многих участках истории котировок, даже при условии отсутствии всяких фильтров, можно так протестировать их, что будет казаться, что это Грааль. В любой сфере деятельности и в любом бизнесе есть моменты, на которых знающие люди могут вас развести и обогатиться за ваш счет. Так и здесь. Но на форексе таких обманок крайне много, а эти 2 стратегии самые наглядные и популярные тому доказательства. При первом использовании этих стратегий вы увидите, что они работают на всех валютных парах с просто невероятными профит-факторами и матожиданиями, и даже могут справиться с любыми спредами, так что кажется, что данный алгоритм вне рынка. Всё потому, что в их основе лежит чистая математика и никакой логики. Да, даже мне, опытному разработчику, сейчас до сих пор хотелось бы найти такие алгоритмы, которым неважно, куда идет цена, и выигрывать всегда. Математики — странные люди вообще, только дай повод сами, себе придумают все, что хочешь, и еще докажут это формулами, а потом — ой, а у меня вот тут ошибка )). В целом и общем эти две стратегии эксплуатируют иллюзию безубытка для того, чтобы убедить вас использовать их. Обе эти стратегии работают на любой валютной паре на любом периоде, точнее создают иллюзию работы, и убеждают вас в простоте и работоспособности. Поняв всё в этих стратегиях, вы рано или поздно понимаете, что не знаете ничего ). Но это необходимо, так как только так вы начнете мыслить рационально, и начнете понимать истинную природу рынка и какие стратегии на самом деле нужно использовать.
Сетка и ее базовые формулыСетка ордеров была придумана с целью получения прибыли на любом рынке, неважно — падающий он или растущий — если ситуация такова, что присутствует ярко выраженное движение, то по задумке создателей сетка должна была с помощью хитрой системы открытия ордеров открывать ордера так, что, как не крутись, суммарно эти ордера в какой-то момент наберут достаточно профита, чтобы закрыть их все сразу. Проиллюстрирую сказанное на рисунке:
Здесь приведено 2 варианта для растущего и падающего рынка, соответственно. Независимо от того, какой вариант мы получим, мы все равно должны выиграть по задумке авторов. Те, кто применяют сетку, всегда говорят, мол, используйте отложенные ордера, что они исполняются по лучшей цене. Это так, но я считаю, что рыночные ордера ничем не хуже хотя — бы тем фактом, что можно спреды и проскальзывания контролировать в момент входа, и в случае чего можно немного подождать со входом, но в рамках этой стратегии лучше лимитники. У нас есть стартовая точка, относительно которой выставляются ордера, все что выше, то на покупку с шагом «s», все что ниже — на продажу, соответственно. Если цена достигает их, то они превращаются в рыночные. На рисунке я нарисовал уже открытые ордера, исходя из конкретной ситуации ценообразования. Лимитные можно не рисовать, так как они будут на тех же уровнях, просто будут уходить вверх и вниз до бесконечности. Но нам важны только открытые реальные ордера, ведь из их профита или убытка складывается общая прибыль или убыток соответственно. Чтобы обеспечить прибыль необходимо, чтобы каких то ордеров было больше, чем других, в «K» раз. Т.е. мы должны обеспечить K=a/d, где K>=K0 . К0 — это некий коэффициент, при достижении которого суммарный профит всех ордеров сетки превысит нулевой порог. Можно также просто посчитать текущий профит позиции или ордеров в случае MetaTrader 4. Либо же мы получим ситуацию, когда цена сразу же пойдет в какую-то сторону и мы зафиксируем прибыль, когда цена прошла «n» пунктов вверх или вниз. Этот коэффициент можно и посчитать, строго говоря, но обычно он просто подбирается вручную без проблем. Посчитать можно так:
- Nl=d/s — 1
- NP=(a+d)/s -1
- Pr=Сумм(1,NP)(s*i)=(s+s*NP)*Np/2
- Ls=Сумм(1,Nl)(s*j+ s*NP)=(s+s*Nl)*Nl/2+s*NP^2
Суммируя убыток или прибыль всех ордеров, можно увидеть, что эти суммы представляют из себя арифметические прогрессии, есть формула описывающая сумму арифметической прогрессии (используя ее первое и последнее слагаемое), она здесь и применяется.
Из условия Pr-Ls=0, решив это уравнение, можно найти «a», а далее посчитать K0=a/d. Также, используя эти формулы, можно добраться и до профит-фактора и матожидания тех торговых циклов, в которых будут присутствовать открытые позиции и на покупку и на продажу.
- Prf=Pr/Ls
- M=(Pr-Ls)/(Np+Nl)
Эти формулы вычисляют профит-фактор и матожидание конкретного торгового цикла, а не всего графика. При условии что наш график закончился в точке конца цикла, то наш профит фактор будет положительным. Циклом я называю отдельную сетку. Сетка построилась, отработала, позиции закрылись, а после строится новая сетка и так далее, можно до бесконечности при бесконечном депозите. Примерно вот так это все будет выглядеть на кривой баланса:
Здесь приведено упрощенное представление графика баланса робота сеточника при прогоне по истории. Всегда происходит какое-то количество циклов, которое выдерживает наш депозит и график идет вверх, но потом всегда происходит такой цикл, когда депозита не хватает, и вся наша видимая прибыль уходит брокеру. С точки зрения математики это считается неоконченным циклом, а неоконченный цикл всегда убыточен и его убыток перекроет всю вашу прибыль, которую вы заработали циклами, которые отработали до конца. При этом цикл может не окончиться еще из-за того, что не хватает ордеров на продолжение сетки. Дело в том, что у любого брокера есть ограничение на количество одновременно открытых ордеров в терминале или по какой-то конкретной паре, что заставляет нас учитывать эти особенности. Бесконечно сетку строить нельзя. Да и даже, если предположить, что вы можете это делать по каким то волшебным причинам, то все равно вы получите сценарий, который я нарисовал выше. В конце статьи я очень просто и быстро объясню математически, почему так происходит, так что всем все станет понятно и не останется никаких вопросов.
Мартингейл и его базовые формулыМартингейл, как и сетка, задумывался так, чтобы выигрывать независимо от того, куда пойдет рынок, и независимо от того, какие позиции и куда мы торгуем. В основе него лежит та же самая иллюзия вечной прибыли. Если мы открыли ордер и он прибыльный, то мы просто закрываем его и торгуем дальше. Как только у нас появляется проигрышный ордер, то следующему ордеру мы повышаем лот в «n» раз относительно проигрышной позиции, в случае если наш ордер прибыльный, мы просто закрываем его и сбрасываем лот на стартовое значение. А в случае, если ордер снова убыточный, то мы повторяем процедуру, только теперь уже лот увеличиваем в «n» раз относительно суммы лотов всех убыточных позиций, которые были в этом цикле, и так до тех пор, пока не получим прибыльную сделку. Последняя сделка в цикле всегда прибыльная и ее прибыль всегда перекрывает убыток проигрышных сделок, так наш график снова начинает состоять из циклов, и при условии, что график кончился вместе с последним циклом, то мы получаем положительное матожидание и профит-фактор. Не так важно, как мы открываем эти ордера и где. Желательно, чтобы эти ордера имели фиксированные прибыль и убыток, ну или просто закрывались по фиксированным стопам. Вот так будет выглядеть график баланса робота мартина:
Как видно, он очень похож на график баланса сетки, так как мартингейл работает циклами, как и сетка. Только открывает он по одному ордеру всегда и, пока тот не закроется, другой открывать не имеет права. Как и в случае сетки, однажды наступает момент, когда депозита не хватает, чтобы довести цикл до конца, и тогда происходит аварийное закрытие ордеров и, соответственно, слив депозита. Чтобы обеспечить прибыльные циклы нужно, чтобы прибыль последней сделки перекрывала убыток предыдущих сделок:
- Nl
- Np=1
- Pr=L[Nl+Np]*TP[Nl+Np]*TickSize
- Ls=Сумм(1,Nl)(L*SL)*TickSize
Здесь прибыль вычисляется не в пунктах, а в единицах валюты вашего счета, потому как здесь используются манипуляции с лотом и считать в пунктах неудобно. Лоты конкретного ордера считаются с помощью рекурсии:
- L[1]=StartLot
- for(2,Nl) L=(K*Сумм(1,i-1)(L[j]*SL[j]))/TP
Где «K» — требуемый профит-фактор цикла. Здесь, конечно же, не учитываются спреды и комиссии, да и свопы тоже, конечно, но я не думаю, что это важно. Если возникнет потребность, то формулы можно модифицировать без проблем, но я не вижу в этом смысла. Формулы старался делать по аналогии с сеткой. SL и TP — это полученный убыток или желаемая прибыль ордера. Получить это определение можно, решив простейшее уравнение : K=(L* TP)/Сумм(1,i-1)(L[j]*SL[j]).
Создаем и тестируем простейший сеточникДля проверки предположений выше, вместе напишем простой сеточник и простой мартингейл на языке mql5, а потом протестируем их и посмотрим на результат. Начнем с сетки. Сначала добавим в наш шаблон пару удобных классов для работы с позициями:
#include #include CPositionInfo m_position=CPositionInfo();// trade position object CTrade m_trade=CTrade(); // trading object
Эти 2 библиотеки по умолчанию всегда есть в MetaTrader 5, поэтому проблем с компиляцией ни у кого не возникнет.
Далее опишем все входные параметры, которые нам понадобятся:
///переменные сетки input int MaxChannelSizePoints=500;//Max Of a+d input int MinMoveToClose=100;//Mininum Move input int GridStepPoints=20;//Grid Step In Points input int BarsI=999;//Bars To Start Calculate input double KClose=3.5;//Asymmetry /// ////////минимальная реализация торговли input int SlippageMaxOpen=15; //Slippage For Open In Points input double Lot=0.01;//Lot input int MagicC=679034;//Magic /////////
Первый блок реализует необходимые параметры сетки, а второй минимально реализует возможность торговли фиксированным лотом.
При старте эксперта нам понадобится проверка и восстановление параметров сетки с предыдущего сеанса, в случае, если работа завершилась некорректно. Это не обязательно, но лучше эти моменты продумывать заранее:
Этот код нужен для реализации предопределенных массивов, для того чтобы можно было провести стартовый анализ. А дальше нам эти массивы не понадобятся, мы будем их использовать только при стартовом расчете.
Восстановление будем производить вот так:
void RestoreGrid()//восстановим сетку в случае перезагрузки робота < DimensionAllMQL5Values(); CalcAllMQL5Values(); bool ord=PositionSelect(Symbol()); if ( ord && int(PositionGetInteger(POSITION_MAGIC)) == MagicC ) < GridStartTime=datetime(PositionGetInteger(POSITION_TIME)); GridStartPrice=double(PositionGetDouble(POSITION_PRICE_OPEN)); GridUpPrice=GridStartPrice; GridDownPrice=GridStartPrice; for(int i=0;iif ( High> GridUpPrice ) GridUpPrice=High; if ( Low < GridDownPrice ) GridDownPrice=Low; if ( Time < GridStartTime ) break; > bCanUpdate=true; bTryedAlready=false; > >Для того чтобы отслеживать текущее состояние сетки, нужны вспомогательные переменные, которые отображают верхнюю и нижнюю цену за время существование сетки, а также стартовая цена сетки и время ее выставления.
datetime GridStartTime;//время создания сетки double GridStartPrice;//стартовая цена сетки double GridUpPrice;//верхняя цена коридора double GridDownPrice;//нижняя цена коридора
И еще 2 булевые для того, чтобы сопровождать или обновлять переменные сетки в процессе движения цены, а также для дополнительных попыток закрытия сетки, если первая попытка закончилась неудачей.
bool bCanUpdate;//можно ли обновлять сетку bool bTryedAlready;//была ли попытка закрыть позицию
Создание и обновление параметров сетки в процессе развития будет выглядеть так:
Функции для закрытия позиций, очистки оставшихся лимитных ордеров и функция-предикат, засекающая условие закрытия сетки:
Последнее условие в функции-предикате я закомментировал, оно закрывает сетку в случае, если цена уехала за пределы сетки, его можете использовать по желанию, сути оно не меняет. Ну и осталось написать главную функцию для торговли:
Ну и определим, где что будем вызывать и что будем делать при инициализации советника:
На этом сборка сеточника завершена, теперь протестируем его и посмотрим, как он себя поведет и сделаем выводы из этого:
Как видно предположения о убыточном цикле подтвердились. Сначала он довольно неплохо отрабатывает а потом наступает момент когда сетки не хватает и происходит убыточный цикл, который сводит всю прибыль до наоборот. На участках, где наблюдается неплохое трендовое движение, вы не увидите таких ситуаций, а вот там где доминирует флетовая составляющая, вы увидите слив за сливом, можете сами потестировать и посмотреть, в целом вы получите слив, так как у нас так или иначе еще есть спред.
Создаем и тестируем простейший мартинТеперь, когда мы разобрались с сеткой, можно переходить к мартингейлу. Его код будет намного проще. Для работы с позициями также будем использовать библиотеки, которые мы использовали в сеточнике, второй раз этот код приводить смысла нет. Начнем сразу с входных параметров:
input int SLE=100;//Stop Loss Points input int TPE=300;//Take Profit Points input int SlippageMaxOpen=15; //Slippage For Open In Points input double Lot=0.01;//Start Lot input int MagicC=679034;//Magic input int HistoryDaysLoadI=10;//History Deals Window Days
Для простоты я выбрал схему, при которой позиции закрываются строго по стоп лоссу или тейк профиту, единственное скажу про последнюю переменную, она нужна для того, чтобы не грузить всю историю ордеров каждый раз, а только какое-то необходимое окно (чисто для оптимизации), ну а остальные переменные, думаю всем, понятны и без слов.
В нашем советнике будет всего 2 функции:
Первая нужна для того, чтобы посчитать итоговый лот, которым мы будем открывать позицию, посмотрев в историю сделок. Если последняя сделка была убыточна, то следующий лот будет равен сумме лотов прошедших убыточных сделок, вплоть до первой прибыльной. Если последняя сделка прибыльная, то мы сбросим лот на первоначальное значение. В основной функции мы просто случайно будем открывать ордера в разных направлениях с фиксированными стопами, объемы будут вычисляться первой функцией. Ну и, для того, чтобы все это корректно работало, нужно назначить эксперту в инициализаторе свой магик, а основную функцию вызывать в обработчике OnTick, точно так же, как это было в сеточнике.
На этом сборка простейшего мартингейла завершена, теперь протестируем его и посмотрим на результат:
Картина похожа на ситуацию с сеткой, можно выделить циклы и видеть, как какое-то время все это работает, а потом наступает убыточный цикл, когда маржи уже не хватает для открытия следующей позиции и неизбежно происходит слив. Точно так же, как и с сеткой, где-то это будет работать, где-то нет, но в итоге вы опять получите слив как ни крути. Теперь, когда были рассмотрены обе стратегии и проверены на практике, можно даже пойти дальше и сделать математические выводы, которые даже приведут нас к более важным ответам, чем просто к пониманию этих двух стратегий.
Общая математика сетки и мартингейлаПочему общая математика сетки и мартингейла так важна на мой взгляд? Да потому, что поняв ее и впитав всю ее суть, вы навсегда распрощаетесь с целым рядом идей, которые никогда не принесут вам прибыли, хотя вам так хочется в них верить, ну или, по крайней мере, поймете, какие условия могут способствовать работоспособности этих стратегий. А также вы раз и навсегда поймете, почему голый мартингейл и сетка — это сливные стратегии, и почему же я так уверенно это говорю.
Представим, что любая стратегия состоит из бесконечного числа максимально простых стратегий, и в итоге при открытии любого ордера активируется какая-то из них. Будем считать, что эти ордера закрываются при фиксированном убытке или прибыли. Поставим им в соответствие массивы С , Lot , где размер этих массивов равен и стремится к бесконечности. Считаем что лот, которым играет каждая из стратегий, всегда разный. Также введем вероятность срабатывания какой-то из этих стратегий. PC, конечно же эти события образуют полную группу так, что Сумм(0,n)( PC ) = 1. Все исходы этих событий образуют новые пространства событий S, T, которые представляют собой, соответственно, срабатывания по убытку и по профиту. У этих событий есть свои условные вероятности PS, PT, которые, конечно же, тоже образуют полную группу. Ниже приведу графическое представление сказанного:
Теперь рассмотрим любую отдельно взятую стратегию из этого списка и посчитаем ее матожидание.
- M=(PT*TP-PS*SL)*Lot*TickSize.
Когда нам неизвестно направление движения цены в точках, где открывается позиция, то мы вправе сказать, что M=0. Где M — массив матожиданий конкретных стратегий. Иначе говоря, если мы не знаем, куда пойдет цена, то неважно, как мы торгуем, мы все равно получим «0» при количестве сделок стремящемся к бесконечности.
Теперь напишем общую формулу мат.ожидания:
- M0=Сумм(0,n)(PC*M)
Мы знаем, что при стремлении n к бесконечности, все M стремятся к нулю, а значит все слагаемые нашей суммы при конечном количестве таких стратегий стремятся к «0», но при бесконечном количестве сделок. А это в свою очередь значит, что общее матожидание M0 по-прежнему равно «0». Если подумать дальше, то окажется, что бесконечный набор таких конечных наборов стратегий также будет равен нулю, так как суммируя бесконечное количество нулей и получим в итоге «0». В случае сетки величина лота везде одинакова, а в случае мартингейла она везде разная, но эти отличия никак не влияют на конечное матожидание. Обе стратегии можно описать вот этой общей формулой и даже не заморачиваться насчет комбинаторики и что, как и где открывается, и где закрывается. Все очень просто и понятно.
Но раз эти стратегии можно описать этой формулой, значит любую стратегию можно описать этой формулой, а, следовательно, напрашивается неумолимый вывод, который многие не захотят принимать, я уверен, но это в ваших интересах, уж поверьте. Вывод таков, что все стратегии, использующие вариацию и манипуляцию с объемами сделок, а также сколь угодно шаманскую систему открытия и закрытия ордеров, без знания примерного направления движения в момент открытия и закрытия сделок, или хотя-бы каких-то вспомогательных параметров рынка — несостоятельны по определению
. То есть без правильного прогноза все ваши пляски с бубнами — это лишняя трата времени, и денег получается то же.
Как правильно использовать сетку и мартингейлНачнем с сетки. Сетку лучше использовать тогда, когда известно, что рынок скоро начнет активное движение в какую-либо сторону, либо вероятность данного события сильно повышена, при этом есть риски поймать гэп, а гэпы с сетками очень плохо дружат, а если точнее — совсем не дружат. Все потому, что ордера выставлены с определенным шагом, и может случиться так, что следующий тик пролетит мимо всех ордеров и появится далеко за сеткой. Конечно, так будет происходить очень редко, но это будет снижать показатели системы неизбежно. Размер сетки нужно выставлять равным либо чуть меньше прогнозируемого движения, при этом направление движения нам знать не надо, а лишь его примерную величину. График вашего баланса в случае успешного алгоритма детекта тренда будет выглядеть вот так:
Тренд далеко не всегда можно точно определить заранее, поэтому довольно часто будут возникать убыточные циклы, на рисунке он красный, да и просадка будет тоже немаленькая. У кого есть методы определения больших движений, могут с успехом пользоваться сеткой, строя сетку по своему сигналу. Я же пока этим вопросом не занимался, если у кого есть хорошие алгоритмы для детекта этих вещей, то был бы рад увидеть.
Далее определим, когда можно использовать мартингейл. Если у нас есть какой-либо сигнал, у которого матожидание равно «0», но при этом известно, что череда проигрышей такова, что вероятность прибыльной сделки близка к единице при определенном количестве проигрышей подряд, то этот сигнал можно будет использовать для мартингейла. График нашего баланса будет выглядеть так:
Но лично мое мнение —мартингейл использовать опасно в любом случае. Я считаю, что добиться таких условий, как я описал, практически нереально, с сеткой же мне кажется все проще, и, что самое главное, понятнее.
ЗаключениеВ данной статье я старался наглядно и понятно рассказать, что же представляют из себя эти две стратегии, что в них общего, а самое главное — что в них плохого и что в них хорошего. Материал максимально прост и понятен для понимания даже новичка. Эта статья, скорее, для новичков, но сделаны выводы гораздо более важные, чем просто простая оценка стратегий и границ их применения. Сделаны общие математические выводы, которые позволят новичкам, да и думаю не только им, максимально продуктивно использовать свое время при разработке собственных торговых систем. Сама статья не приносит чего-то нового в понимание физики рынка, но, я думаю, остудит горячие головы тех, кто до сих пор пытается бездумно эксплуатировать эти принципы для их же собственного блага.
Конфигурация сетки.
Возьмем для примера основную валютную пару EUR/USD.
Предположим, мы хотим настроить сетку на EUR/USD, и в настоящее время цена составляет 1,2000. Для начала наша сетка ордеров будет выглядеть так:
УровеньОрдерЦенаУровеньОрдерЦена1Buy Stop1.2015— 4Sell Stop1.19402Buy Stop1.2030— 3Sell Stop1.19553Buy Stop1.2045— 2Sell Stop1.19704Buy Stop1.2060— 1Sell Stop1.1985
Чтобы создать сетку, используем размер шага в 15 пунктов и 4 уровня выше и ниже начального уровня. Здесь нет определенных правил. Вы можете установить уровни, используя уровни поддержки и сопротивления, уровни Пивот или любые другие уровни.
Вы также можете увеличивать или уменьшать количество сделок по мере необходимости, а также изменять интервал и фиксировать прибыль там, где вам нравится.
Предупреждение:
Увеличение размера шага и добавление большего количества уровней увеличит максимальную потерю.
Отложенные ордера на покупку срабатывают, если цена поднимается выше начального уровня, а отложенные ордера на продажу срабатывают, если цена опускается ниже начального уровня. Таким образом, с помощью этой системы мы всегда открываем ордера по тренду.
Другие сеточные стратегии работают наоборот и открывают ордера против тренда.
Как видно из таблицы, торговые пары в сетке хеджируют друг друга. Как только обе стороны торговой пары открыты, их прибыль/убыток становится «привязанной» к сумме хеджирования. Когда все сделки открыты, хеджируемая сетка достигает максимальных убытков, и прибыль/убыток фиксируется в этой точке.
История появления
Впервые сеточные торговые системы на Форекс появились относительно недавно, но сразу приобрели большую популярность. Связано это с тем, что подобные стратегии соответствуют образу мышления трейдера. Собственно, так они и были изобретены – с опорой на логические выводы, которые возникают при изучении характера движения цены. Чтобы было более понятно нужно разъяснить. Все знают, что котировки редко ходят по прямым линиям, так как обычно они двигаются с периодическими откатами, которые зачастую могут сильно влиять на результат сделки.
К примеру, трейдер купил валютную пару в ожидании ее дальнейшего роста. Цена прошла 50 пунктов в его направлении при тейк-профите 80, радуя глаз выросшей прибылью, и тут начинает откатывать. И вот уже прибыли есть только 30 пунктов, а через некоторое время лишь 10 пунктов, давление на психику возрастает, ведь еще чуть-чуть и сделка может зайти в отрицательную зону. Тут трейдер может принять решение закрыть позицию, довольствуясь хоть такой мелкой прибылью, или пересиживать откат, в надежде, что сделка не будет закрыта по стоп-лосс, а котировки все же начнут вновь расти. Несложно догадаться, что чувствует трейдер, если все же позиция закрывается по стоп-лосс, к примеру, в 40 пунктов, ведь убыток тут сложно оценить, как просто 40 пипсов, помня про незакрытые 50 пунктов прибыли, которые торговая операция давала в какой-то момент.
Такие ситуации во время торговли случаются сплошь и рядом, именно поэтому многие утверждают, что психология в трейдинге играет основополагающую роль. Но трейдеры с аналитическим складом ума решили, что можно немного модернизировать свою торговлю, чтобы попробовать учесть возвратно-поступательное движение цены и свести его влияние к минимуму, повысив таким образом вероятность достижения положительного результата. Поэтому они стали входить в рынок не сразу всем рабочим объемом, а только лишь его определенной частью, добавляя позицию на определенных уровнях. Кроме того, фиксация прибыли и убытка также стала происходить поэтапно, что позволило сделать депозит более живучим, снизив потенциал возможных потерь. В результате трейдеры, работающие интрадей, стали открывать множество позиций в лонг и в шорт, которые при отображении на графике цены сделали его похожим на решетку или сетку. Именно так и возникли сеточные стратегии Форекс, которые активно применяются сегодня большим количеством валютных спекулянтов при работе внутри дня.
Сеточная торговля: работа сетки ордеров.
Если бы цена пошла прямо, без откатов на 60 пунктов вверх, она активировала бы все ордера на покупку и ни одного ордера на продажу. Таким образом, мы получили прибыль в 90 пунктов (45 + 30 + 15).
Точно так же, если цена опустится на 60 пунктов вниз, все ордера на продажу сработают, и мы снова получим прибыль в размере 90 пунктов.
Но что более вероятно, что цена будет колебаться вверх и вниз, в результате чего могут активироваться некоторые из наших отложенных ордеров и на покупку, и на продажу.
Например:
Цена опускается ниже 1,2000, и первый из наших ордеров на продажу срабатывает.
Что же произойдет, если мы получим разворот и сильное движение цены вверх?
Допустим, цена вырастает настолько, что достигает уровня последнего ордера на покупку в сетке. Это 1,2060.
Итак, наши прибыли и убытки выглядят так:
УровеньОрдерЦенаПрибыль/убыток1Buy Stop1.2015452Buy Stop1.2030303Buy Stop1.2045154Buy Stop1.20600— 1Sell Stop1.1985— 75— 2Sell Stop1.19700— 3Sell Stop1.19550— 4Sell Stop1.19400
Прибыли и убытки по паре EUR/USD на уровнях 4 и -1 теперь заблокированы, поскольку оба открыты. Но мы также получаем прибыль от первых трех ордеров на покупку. В итоге, если сейчас закрыть всю сетку, то мы получим прибыль 25 пунктов.
Настройки «Форекс Сетки Трейдер 1.6»
- Show_Trade_Comment – активировать/деактивировать отображение режима работы эксперта;
- Lots – размер лота для первой позиции в сетке;
- Multi_Lots_Factor – коэффициент приращения лотов последующих ордеров;
- Step_Lots – шаг (в пунктах) сетки;
- Take_Profit – прибыль в пунктах, при которой производится закрытие всех позиций;
- Use_Trailing – активировать/деактивировать ТрейлингСтоп;
- Trail_Start – при какой прибыли активируется ТрейлингСтоп;
- Max_Open_Orders – верхний предел количества открытых ордеров;
- Safe_Equity_Stop_Out – активировать/деактивировать закрытие всех позиций, если депозит уменьшится до величины, заданной параметром Safe_Equity_Risk;
- Safe_Equity_Risk – при каком проценте текущих средств на балансе от начального депозита производить закрытие всех позиций;
- Slippage – величина проскальзывания, при превышении которой очередной ордер не открывается;
- MagicNumber – идентификационный код советника;
- Close_All_Orders – при значении true производится закрытие всех открытых позиций;
- Freeze_After_TP – активировать/деактивировать прекращение торговли при достижении котировкой ТейкПрофита.
Следует учитывать, что торговать по советника «Форекс Сетка Трейдер» следует только на двух графиках одного и того же актива, установленных на один и тот же таймфрейм. На первом графике эксперт устанавливается в режим открытия только длинных позиций, а на второй – только коротких. Этот режим задается во вкладке настроечной панели «Общие» переключателем, отмеченным на рис. 3
Сеточная торговля: когда закрывать сетку.
Для простоты можно закрывать всю сетку, как только сумма сделок достигнет выбранного уровня прибыли.
В приведенной выше сетке ордеров максимальный убыток составляет 300 пунктов. Таким образом, мы могли бы выбрать, скажем, 350 пунктов в качестве целевой прибыли и оставить сетку работать своим ходом.
В целом, при сеточной торговле лучше рассматривать всю сетку ордеров как «единую систему», место того, чтобы пытаться управлять каждой сделкой по отдельности. Такой подход упрощает управление торговлей.
При такой хеджированной конфигурации идеальным результатом является достижение ценой уровней либо в верхней, либо в нижней половине сетки, но не в обоих сразу. Поэтому, если цена движется в одном направлении, вы должны подумать, возможен ли разворот, который «заберет» вашу прибыль.
Другой вариант — динамически закрывать торговые позиции, когда они достигают определенной цели по прибыли. Преимущество этого варианта заключается в том, что вы потенциально можете достичь более высокой цели прибыли.
При реализации сетки хорошей практикой является то, что после того, как все отложенные ордера на одной стороне сетки открыты, ордер на противоположной стороне сетки закрывается.
Это позволяет избежать ненужных затрат (в виде комиссий за спрэд и своп), связанных с одновременным открытием двух противоположных сделок при фиксированной прибыли.
Противоположные ордера уравновешивают друг друга, поэтому держать обе стороны открытыми нет никакой пользы.
Например:
Допустим, открывается покупка на уровне 1, затем цена падает до 1,1940 и достигается ордер на продажу на уровне -4. Затем открытый ордер на покупку будет закрыт, а ордера на продажу остаются открытыми до исполнения.
Скрипт для сетки отложенных ордеров без какой-либо дополнительной смысловой нагрузки.
Итак, у вас есть хороший прогноз, на разворот тренда. В статье про лучшие стратегии по Болинджеру можно найти подходящий подход по определению разворота и довольно точно его прогнозировать, а также действовать в связи с этим. Курс должен сменить тенденцию к падению на постоянный рост, и вы бы хотели покрыть это «колено» сеткой ордеров, чтобы не гадать, где будет истинная точка разворота и получить гарантированную прибыль. Вам на помощь приходит скриптПЕРВЫЙ, для открытия группы приказов.
Статья в тему: Безубыток на Форекс советник + скрипт
- Сервис, Настройки, Советники, галочку на «Разрешить автоматическую торговлю» и «Разрешить импорт DLL». Далее ОК.
- Далее посмотреть нажата ли кнопка Авто-Торговля. Если не нажата – нажать.
- Запуск.
Настройки выполняем следующим образом:
Stoploss = 50 – определяет уровень стоплосса. В значении ноль эта часть приказа не определена.
Takeprofit = 50 – определяет уровень тейкпрофита. В значении ноль эта часть приказа не определена.
Delta = 10 – расстояние между приказами.
MaxOrders = 5 – определяет, какое количество приказов будет размещено в каждую сторону.
Magic = 123456 – магический номер ордеров, который помогает другим экспертам и так далее исключить из своего алгоритма работу с этими заявками.
SELL = true – значение переключателя – Истина позволяет программному модулю открывать только ордера селлстоп.
BUY = true – значение переключателя – Истина позволяет программному модулю открывать только ордера байстоп.
Lot = 0.1 – объем открываемой позиции для каждого лота.
Статья в тему: Скрипт трейлингстопа
Также в этом пакете идет модуль удаления отложенных ордеров скриптВТОРОЙ. У него нет никаких параметров, он просто удалит все отложенные ордера с текущего графика.
Те, кто заинтересовался скриптами, могут почитать, как работают модули для закрытия ордеров в МТ4 и обзорную статью о том, что такое скрипты Форекс для Метатрейдера.
СмотретьУправляйте своими рисками.
Наш максимальный убыток для этой сетки составляет — 300 пунктов. Это происходит, когда цена достигает всех уровней, открывается полный набор отложенных ордеров и цена возвращается на нулевой уровень. Однако потенциал роста прибыли сети неограничен.
С хеджированной сеткой риск падения всегда ограничен при условии, что все торговые ордера остаются на своих местах.
Имейте в виду, что если торговые ордера с одной стороны сетки закрываются независимо друг от друга, это может привести к тому, что система станет нехеджированной, и может привести к неконтролируемым убыткам. Вот почему рекомендуется размещать широкие стоп лоссы для всех ордеров — в качестве меры предосторожности.
На высоко волатильных рынках или в валютах с низкой ликвидностью ваши ордера могут не выполняться точно на уровнях вашей сетки. Это также надо иметь в виду.
В рамках настройки сетки также важно иметь четкое представление о вероятном диапазоне рынка, чтобы уровни выхода были установлены соответствующим образом.
Основное преимущество использования сетки — это усреднение цен входа и выхода. Этот метод никогда не должен увеличивать риск, а наоборот, уменьшать его. При сеточной торговле ни в коем случае нельзя поддаваться искушению многократно увеличивать объем ордеров и подвергаться риску, превышающем принятые вами пределы риска.
Распространенный вид сеточного построения
Помимо описанного выше типичного алгоритма, на которых строились первые сеточные стратегии Форекс, есть также другой способ применения отложенных ордеров для построения решетки. Применяют его с опорой на теханализ, так как трейдеру необходимо для начала определить коридор, в котором движется цена. После того как такой коридор выявлен, необходимо от его центра выстроить решетку ордеров следующим образом:
- над уровнем поставить Sell Limit;
- под ним выставить Buy Limit.
Далее, ориентируясь на шаг сетки, также выставляются Buy и Sell Limit, формируя сетку. Этот способ позволяет очень эффективно работать в боковике, легко накапливая прибыль, но при сильном тренде такой подход может привести к серьезным потерям. Поэтому применять его следует вдумчиво и осторожно, имея опыт торговли, соответственно, использовать сеточные стратегии Форекс, которые основывают свою работу на подобных алгоритмах, можно только профессионалам.
Максимальная прибыль/убыток сетки.
Хеджируемая сетка достигает своего максимального убытка, если все сделки в сетке открыты, и в этот момент P/L (прибыль/убыток) системы сетки не может измениться. Наилучший сценарий и максимальная прибыль происходят, когда цена поднимается или опускается через все уровни сетки только на одной стороне сетки. По этой причине, когда рыночные условия чрезмерно волатильны, часто лучше использовать сеточную систему, которая открывает ордера против тренда, а не по тренду. Этот тип сетки максимизирует прибыль, когда цена достигает всех уровней сетки.
Вкладка MG
Каждому новому ордеру утилита строит сетку ордеров согласно параметрам из вкладки Настройки
. В дальнейшем, у открытой сетки эти параметры можно изменить на вкладкеMG .
- Кнопки для перехода к настройке сетки ордеров.
- Кнопка для остановки сопровождения сетки ордеров.
Для изменения параметров сетки ордеров, нажмите кнопку с её номером (1)
. После нажатия, утилита переключиться на вкладку настроек выбранной сетки.
Настройки на вкладке MG разделены на три группы: Setting, Grid и Tp/Sl. Все изменения на данной вкладке будут применяться только к выбранной сетке.
Вкладка MG: Setting- Номер сетки.
- Тип сетки (LimitилиStop).
- Метод расчета шага (FixedилиATR).
- Таймфрейм для индикатора ATR (метод ATR).
- Период для индикатора ATR (метод ATR).
- Множитель для шага (метод ATR).
- Минимальный шаг (метод ATR).
- Количество шагов в сетке.
- Кнопка для остановки сопровождения сетки.
- Размер шага (метод Fixed).
- Сохранить изменения.
- Сбросить изменения.
Для сохранения изменений нажмите кнопку 11
. Для сброса изменений до последнего сохраненного состояния нажмите кнопку12 .
Для временной остановки сопровождения сетки ордеров нажмите кнопку 9
. При остановке сопровождения все торговые операции для данной сетки ордеров останавливаются, это значит что утилита не будет модифицировать позиции сетки и не будет открывать для неё новые ордера. Для возобновления сопровождения нажмите кнопку9 повторно.
Если изменение настроек сетки производятся в момент остановки торговли, то изменения вступят в силу только после возобновления торговли.
Подробнее о параметрах данной вкладки можно посмотреть на Вкладке настроек: Grid
Вкладка MG: Grid- Сработавшиеся уровни.
- Выбранный уровень для настройки.
- Кнопки для прокрутки списка.
- Уровень, выбранный для настройки.
На данной вкладке можно изменить положение уровня и его лот.
Как изменить цену уровня открытой сеткиДля изменения положения уровня сетки выделите его в списке ордеров. Переместите появившуюся мигающую линию на требуемое место и нажмите кнопку SAVE
Внимание! Изменить положение уровня можно только при Step type — Fixed . При положенииStep type — ATR шаг рассчитывается по индикатору Average True Range.
Как изменить лот уровня открытой сеткиДля изменения размера лота уровня кликните два раза по его ячейке и откройте вводное поле. Введите в появившееся поле требуемый лот и нажмите кнопку SAVE
Вкладка MG: Tp/Sl- Тип расчета тейк профита (AggressiveилиConservative, только для типа сеткиLimit).
- Общий тейк профит для сетки ордеров (в пунктах, 0 — выкл).
- Общий стоп лосс для сетки ордеров (в пунктах, 0 — выкл).
- Дистанция для безубытка, (в пунктах, 0 — выкл).
- Прибыль для функции безубытка (в пунктах).
- Дистанция для старта трейлинг стопа (в пунктах).
- Дистанция трейлинг стопа (в пунктах, 0 — выкл).
Подробнее о параметрах данной вкладки можно посмотреть на Вкладке настроек: Tp/Sl