BreakingTrend
- Эксперты
- Iurii Kuksov
- Версия: 1.0
- Активации: 5
Советник BreakingTrend открывает первую позицию только на покупку ордера. Далее он смотрит, если цена идет в убыток, то на определенном расстоянии убытка он выставляет отложенный Stop Order Sell на продажу с увеличенным лотом, что бы покрыть убыток и зафиксировать прибыль при закрытии ордеров на покупку и продажу. И далее вся торговля происходит фактически с этой логикой.
Это настройки советника:
-- LOT --- extern double lots = 0.2; - этот параметр отвечает за покупку лота при открытии первой позиции, ордера на покупку. extern double MultiplyingLotForFirstTime = 3.0; - этот параметр отвечает на какое число будет увеличен(умножен), первоначальный лот на покупку что бы открыть отложенный ордер на продажу, что бы погасить убытки по открытому одеру на покупку и при достижении определенной прибыли закрыть все ордера(на покупку и продажу), находящиеся в рынке и участвующие на торгах. Своего рода - это и является стратегией этого советника: Открывать ордера только на покупку, а выставляя отложенные ордера на продажу, там где обычно трейдер ставит свой стоп-лосс и если цена пойдет в убыток от первого открытого ордера, то у трейдера появляется возможность заработать на этом убытке. По идее, эта функция OrderCloseBy есть в языке mql4, но не все брокеры ее разрешают использовать в торговле. Тут лот умножается на 3.0 и будет равняться 0.6 лотам при покупке отложенного стоп ордера на продажу, а параметр TheFirstOrderToClose будет показывать на каком расстоянии от открытого первого ордера на покупку, будет открываться отложенный ордер на продажу, если текущая цена будет переступать этот установленный вами барьер, в котором вы допуская свои убытки установите это расстояние. Сам отложенный ордер на продажу будет открываться плюс 50 пунктов от указанного вами расстояния в этом параметре. extern double IncreasingLotForSecondTime = 4.0; - этот параметр отвечает на какое число будет увеличен уже текущий лот (0.6) и уже будет равен 2.4 лота при открытом отложенном ордере на продажу и если, вдруг, текущая цена опять изменит свое направление, тренда и начнет приносить убыток уже по открытому ордеру на продажу, но при всем этом, она будет компенсировать свой убыток открытым первым ордером на покупку, то мы будем пытаться открыть отложенный стоп ордер на покупку что бы при достижении определенной прибыли, которая указана в параметре closelotprofit все ордера находящиеся у нас в рынке были бы закрыты и мы свою тактику начали бы заново. Тут надо заметить, что параметр closelotprofit работает от указанного параметра и может быть больше, но не меньше указанного параметра. Отложенный стоп ордер на покупку будет открыт на указанное расстояние параметром TheSecondOrderToClose, при достижении которого текущей ценой будет открываться отложенный стоп ордер на покупку в 500 пунктов от текущей цены и он будет рассчитан на внезапное колебание рынка в росте цен на покупку, что бы открыть и тут же закрыть все ордера находящиеся у нас в рынке, что бы начать свою торговую стратегию заново. Расстояние TheSecondOrderToClose указано от открытого отложенного ордера на продажу плюс 500 пунктов. extern double IncreasingLotForThirdTime = 3.0; - ну а если и тут все пойдет не так, и все будет не по нашему, то этот параметр будет отвечать за увеличение текущего лота на продажу и который мы попытаемся открыть на расстоянии от самой первой нами открытой позиции на покупку и, лот будет равняться уже 7.2 лота на продажу. P.S: Тут надо заметить одну особенность, что отложенные ордера могут выставляться большим лотом, но это еще не факт что они будут открыты в рынке. extern double IncreasingLotForFourthTime = 5.0; - ну а этот параметр, уже можно сказать, спасательный круг для советника и который увеличит текущий лот на указанное число и будет равна 36.0 лотам на открытие ордера на покупку. И этот параметр взаимодействует с параметром TheFourthOrderToClose которое указывает на расстояние от первого открытого ордера на продажу и предназначен для открытия заключающего ордера на покупку и закрытия всех ордеров и при этом сменить тренд для дальнейшей торговли, что можно было начать все заново. --- ORDER OPENING DISTANCE --- extern int TheFirstOrderToClose = 100; - этот параметр отвечает за расстояние для открытия стоп ордера на продажу плюс 50 пунктов от открытого первого ордера на покупку. extern int TheSecondOrderToClose = 150; - этот параметр отвечает за открытие отложенного стоп ордера на покупку плюс 500 пунктов от уже открытого стоп ордера на продажу. extern int TheThirdOrderToClose = 200; - этот параметр служит для открытия ордера на продажу и рассчитывается расстоянием от первого открытого ордера на покупку и находящегося в рынке. extern int TheFourthOrderToClose = 5800; - этот параметр отвечает за открытие последнего ордера советника, при достижении которого будет открыт ордер на покупку, для того что бы закрыть все ордера находящиеся в рынке и сменить тренд, что бы начать торговые операции заново. --- CLOSE --- extern double closelotprofit = 0.01; - этот параметр отвечает за профит по которому будут закрываться все ордера находящиеся в рынке и открытые этим советником. P.S: тут надо заметить такую особенность, что при колебании цены ордера будут закрываться больше указанного параметра, но не меньше. То есть, если вы укажите 10.0, то, пока сумма ордеров открытых в рынке не будет равна 10.0 ордера не будут закрыты. Но, если при колебании рыночной цены сумма ордеров будет равна: 10.01, 11.0, 12.0, 13.0 20.0 и т.д. то ордера будут закрыты. То есть, параметр указывает что ордера будут закрыты не меньше этого параметра. То есть, если сумма ордеров будет 9.99, то ордера не будут закрыты. -- TREND LINE --- enum TREND - это перечисления параметров которые указывают на период по которому будет рассчитан тренд. { Period_M1 = PERIOD_M1, Period_M5 = PERIOD_M5, Period_M15 = PERIOD_M15, Period_M30 = PERIOD_M30, Period_H1 = PERIOD_H1, Period_H4 = PERIOD_H4, Period_D1 = PERIOD_D1, Period_W1 = PERIOD_W1, Period_MN1 = PERIOD_MN1 }; input TREND trendline; - в этом параметре вы как-раз будете указывать по какому периоду вы будете рассчитывать тренд для работы советника и открытия первого ордера. extern int Last = 1; - этот параметр указывает на минимальную цену бара. Здесь указан последний бар и его минимальная цена. Если поставить 0 - ноль, то расчет будет происходить по текущей цене. extern int First = 20; - этот параметр указывает на минимальную цену бара. Здесь указан двадцатый бар и его минимальная цена. Если поставить 0 - ноль, то расчет будет происходить по текущей цене. P.S: Тут надо заметить что советник начинает работать по нисходящему тренду. Но можно сделать что он будет и по восходящему тренду начинать торговать. Как? Поменять значения местами. Там где стоит единица поставить двадцать, а там где стоит двадцать поставить единицу. --- MAGIC NUMBER --- extern int magic1 = 111; - это магическое число первого ордера. extern int magic2 = 123; - это магическое число второго ордера. extern int magic3 = 124; - это магическое число третьего ордера. extern int magic4 = 125; - это магическое число четвертого ордера.