передвижение стопа.

 
Добрый день, помогите внести изменения в советник. Он установлен на одну валютную пару, но на 4 временных графика, открывает один ордер и этот ордер висит на других трех, соответственно, пока он не закроется по стопу, новые не открываются. Нужно убрать все лимиты, пусть каждый сигнал открывает. И второе, самое главное, стоп стоит 300 пунктов, когда цена пройдет прибыль сто пунктов, нужно, чтобы стоп автоматически перешел в безубыток 1 пункт. потом когда цена пройдет еще сто пунктов, стоп станет сто и так далее, пока не вынесет по лосю. 
Файлы:
 

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

 

с передвижением стопа :


spread = (int)MarketInfo(NULL,MODE_SPREAD);
..........................
buy:
.................

if(Bid - OrderOpenPrice() >= 100*Point)
         { 
       SLb = 0;
       SLb = OrderOpenPrice() + (spread+1)*Point;
       
       ticket = OrderModify(OrderTicket(),OrderOpenPrice(),SLb,OrderTakeProfit(),0,Yellow);
         if(ticket > 0)
           {
           Sleep(pause);
           }
        else          
           {       
           Print("Order Modify failed with error #",GetLastError());
           error=GetLastError(); if(error==4107) {RefreshRates();}   
           }       
         }
 
Artemij:

с передвижением стопа :



Спасибо Вам большое, но, к сожалению, данную волшебную запись, я не смог добавить в свой советник, руки корявенькие по ходу. Советник поставил на один график, на второй треллингатор, а он почему-то как тащит стоп вверх за графиком, а потом также тащит его вниз до безубытка в один пункт. Пока ничего не получается... Ищу другие методы, которые смогу осилить. Еще раз спасибо! Буду пробовать поставить его.

 
Dimonchik888888:

Спасибо Вам большое, но, к сожалению, данную волшебную запись, я не смог добавить в свой советник, руки корявенькие по ходу. Советник поставил на один график, на второй треллингатор, а он почему-то как тащит стоп вверх за графиком, а потом также тащит его вниз до безубытка в один пункт. Пока ничего не получается... Ищу другие методы, которые смогу осилить. Еще раз спасибо! Буду пробовать поставить его.


Для того, чтобы стоп двигался туда, куда Вам хочется, надо текущий стоплосс постоянно сравнивать с текущей ценой, с ценой открытия ордера..... Или есть ли он вообще (>0) ?
Короче, вставить

if(OrderStopLoss() > или < чего-то........или >0

 Посмотрите Ваш код с этой точки зрения, может найдёте ошибку.

Причина обращения: