помогите кто сможет доработать скрипт.

 

скрипт двигает стоп ордер вслед за ценой.

вот его код

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

for(int i=0;i<OrdersTotal();i++) // если есть открытые позиции

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC) // Если символ графика = символу сделки

{

if(OrderType()==OP_BUY) // Если мы купили

if(Bid-Point*10>OrderStopLoss()) OrderModify(OrderTicket(),0,Bid-Point*10,OrderTakeProfit(),0,Blue); // Если уровень настоящего стопа больше установленного, то двигаем стоп

if(OrderType()==OP_SELL) // Если мы продали

if(Ask+Point*10<OrderStopLoss()) OrderModify(OrderTicket(),0,Ask+Point*10,OrderTakeProfit(),0,Blue); // Если уровень настоящего стопа меньше установленногог, то двигаем стоп

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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

и второе что бы расстояние на котором он держит стоплосс можно было менять в настройках скрипта. (это можно изменить в коде вручную заменив 10 на число которое нужно, но постоянно менять код скрипта напрягает, ровно столько же сколько и включать скрипт вручную когда позиция в бузубытке).

ПОМОГИТЕ КТО МОЖЕТ. ЗА РАНЕЕ БОЛЬШОЕ СПАСИБО

Файлы:
 

в первую очередь оформите свой пост в соответствующий вид SRC, Ваш код трудно читаем.

Чтобы определить профит позиции воспользуйтесь OrderProfit()

 
изменил пост и добавил сам скрипт
 
for(int i=0;i<OrdersTotal();i++) // если есть открытые позиции

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC) // Если символ графика = символу сделки

{

if(OrderType()==OP_BUY&&  OrderProfit()>0) // Если мы купили

if(Bid-Point*10>OrderStopLoss()) OrderModify(OrderTicket(),0,Bid-Point*10,OrderTakeProfit(),0,Blue); // Если уровень настоящего стопа больше установленного, то двигаем стоп

if(OrderType()==OP_SELL &&  OrderProfit()>0) // Если мы продали

if(Ask+Point*10<OrderStopLoss()) OrderModify(OrderTicket(),0,Ask+Point*10,OrderTakeProfit(),0,Blue); // Если уровень настоящего стопа меньше установленногог, то двигаем стоп
 
спасибо огромное. попробую отпишусь
 
нет.. к сожалению не работает.. значок становиться неактивным и не запускается даже
 
какой значок? какие ошибки при компиляции я Вам вставил Ваш код скорее всего ВЫ просто неправильно его вставили в эксперта
 
Vladon:

У меня также... Всё нормально работает, но нужно автору ветки прочитать про структуру программы и понять - куда этот кусок кода приладить )))
 

просто нужно выкладывать код полностью в печатной форме

Файлы:
 
все работает! благодарен безмерно)))
 
еще вопрос если выставить OrderProfit()> 10 то он начнет работать после 10 пунктов плюса? или я опять что то не правильнол понимаю?))
Причина обращения: