for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { TrailingPositions(); } } //////// // // ..... // //////// //+------------------------------------------------------------------+ //| Сопровождение позиции простым тралом | //+------------------------------------------------------------------+ if (OrderType()==OP_BUY) { pBid = MarketInfo(OrderSymbol(), MODE_BID); if (!ProfitTrailing || ND((Bid-OrderOpenPrice()))>ND(TS*pp)) { if (ND(OrderStopLoss())<ND(Bid-(TS+TrailingStep-1)*pp) || ND(OrderStopLoss())==0) { ModifyStopLoss(ND(Bid-TS*pp)); return; } } } if (OrderType()==OP_SELL) { pAsk = MarketInfo(OrderSymbol(), MODE_ASK); if (!ProfitTrailing || ND(OrderOpenPrice()-Ask)>ND(TS*pp)) { if (ND(OrderStopLoss())>ND(Ask+(TS+TrailingStep-1)*pp) || ND(OrderStopLoss())==0) { ModifyStopLoss(ND(Ask+TS*pp)); return; } } } } //+------------------------------------------------------------------+ //| Перенос уровня StopLoss | //| Параметры: | //| ldStopLoss - уровень StopLoss | //+------------------------------------------------------------------+ void ModifyStopLoss(double ldStopLoss) { bool fm; fm=OrderModify(OrderTicket(),ND(OrderOpenPrice()),ND(ldStopLoss),ND(OrderTakeProfit()),0,CLR_NONE); if (!fm) Print("Error OrderModify : ",GetLastError()); } //+------------------------------------------------------------------+
Будет ли работать (в моем примере) Трэйлинг на несколько ордеров
с разными Магиками. Т.е. например, если в данный момент имеется
два ордера которые нужно тралить, будут ли они оба тралиться
в раз? Или надо что-то поменять. При тестировании ничего уже
понять не могу... вроде работает. :)
Удивительный код. Неудивительно, что и сам автор "ничего уже понять не может". Я и сам так писал, пока не прочитал статью уважаемого bstone "Как упростить код эксперта и избежать лишних хлопот".
Только не воспринимайте это как критику. Понимаете, когда видишь
столько вложенных ступенчатых if, пропадает всякая охота вникать
в код....-очень мучительно...
С уважением - С.Д.
Будет ли работать (в моем примере) Трэйлинг на несколько ордеров
с разными Магиками. Т.е. например, если в данный момент имеется
два ордера которые нужно тралить, будут ли они оба тралиться
в раз? Или надо что-то поменять. При тестировании ничего уже
понять не могу... вроде работает. :)
Понимаете, когда видишь столько вложенных ступенчатых if, пропадает всякая охота вникать в код....-очень мучительно...
Понимаете, когда видишь столько вложенных ступенчатых if, пропадает всякая охота вникать в код....-очень мучительно...
С уважением - С.Д.
if(x1==x2){ if(x3==x4){ if(x5==x6){ if(x7==x8){ if(x9==x10){ OhYes=true; } } } } }
if((x1==x2) && (x3==x4) && (x5==x6) && (x7==x8) && (x9==x10)) OhYes=true;А так подойдет
if(x1==x2){ if(x3==x4){ if(x5==x6){ if(x7==x8){ if(x9==x10){ OhYes=true; } } } } }
Определим функцию:
bool iif( bool condition, boll ifTrue, bool ifFalse ) { if( condition ) return( ifTrue ); return( ifFalse ); }А теперь получим:
OhYes = iif(x1 == x2 && x3 == x4 && x5 == x6 && x7 == x8 && x9 == x10, True, False);
Согласитеь - небо и земля.
С уважением - С.Д.
if((x1==x2) && (x3==x4) && (x5==x6) && (x7==x8) && (x9==x10)) OhYes=true;А так подойдет
С уважением - С.Д.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Будет ли работать (в моем примере) Трэйлинг на несколько ордеров с разными Магиками. Т.е. например, если в данный момент имеется два ордера которые нужно тралить, будут ли они оба тралиться в раз? Или надо что-то поменять. При тестировании ничего уже понять не могу... вроде работает. :)