PHP:double isCloseLastPosByStopTrade(string sy,int op,int mn) { datetime t=0; double profit; int i,k=OrdersHistoryTotal(); if(sy=="0") sy=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol()==sy) // || sy=="") { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(op<0 || OrderType()==op) { if(mn<0 || OrderMagicNumber()==mn) { if(t<OrderCloseTime()) { t=OrderCloseTime(); profit=OrderProfit(); } } } } } } } return(profit); } [/SPOILER] [/QUOTE] Спасибо, подскажите я правильно вызываю эту функцию? нужно умножение лота на 2 при убытке. в данной конструкции лот с 0,01 сразу умножает до 0,08 переменная lots - идет в настройках переменная Lot - стоит в параметрах ордеров [CODE] if(isCloseLastPosByStopTrade(Symbol(),OP_BUY,Magic)>0) {Lot=lots; } if(isCloseLastPosByStopTrade(Symbol(),OP_BUY,Magic)<0) {Lot=Lot*2; } if(isCloseLastPosByStopTrade(Symbol(),OP_SELL,Magic)>0) {Lot=lots; } if(isCloseLastPosByStopTrade(Symbol(),OP_SELL,Magic)<0) {Lot=Lot*2; } [/CODE]
Последнее редактирование: