Milord
Местный знаток
Короче нет, но у меня такой вариант.
Лучше тем что мартинит в обе стороны.
PHP://///////////////////////////////////////////////////////////////////////////////// void martini_f(string symb="") { double order_B_price=-1; double order_S_price=-1; int type=-1; string symb_B; string symb_S; for(int i=OrdersTotal()-1; i>=0; i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderMagicNumber()!=Magic || (symb!="" && OrderSymbol()!=symb)) continue; type=OrderType(); if(order_B_price==-1 && type==OP_BUY) {order_B_price=OrderOpenPrice();symb_B=OrderSymbol();} if(order_S_price==-1 && type==OP_SELL) {order_S_price=OrderOpenPrice();symb_S=OrderSymbol();} if(order_B_price!=-1 && order_S_price!=-1) break; } if(order_B_price!=-1) { double point=MarketInfo(symb_B,MODE_POINT)*point_multip; // if(MarketInfo(symb_B,MODE_ASK)<=order_B_price-step*point) { CountOpenedPositions_f(symb); double Lotss=Lot*MathPow(Lot_multip,buys_); int ticket_op_m=-1; for (int j_op_b = 0; j_op_b < MaxAttempts; j_op_b++) { while(IsTradeContextBusy()) Sleep(int(pause_if_busy*1000)); RefreshRates(); ticket_op_m=OrderSend(symb,OP_BUY,NormalizeDouble(Lotss,nor_lot),MarketInfo(symb_B,MODE_ASK),Slippage,0,0,comment,Magic,0,clrNONE); if(ticket_op_m>-1)break; } } } if(order_S_price!=-1) { double point=MarketInfo(symb_S,MODE_POINT)*point_multip; // if(MarketInfo(symb_S,MODE_BID)>=order_S_price+step*point) { CountOpenedPositions_f(symb); double Lotss=Lot*MathPow(Lot_multip,sells_); int ticket_op_m=-1; for (int j_op_s = 0; j_op_s < MaxAttempts; j_op_s++) { while(IsTradeContextBusy()) Sleep(int(pause_if_busy*1000)); RefreshRates(); ticket_op_m=OrderSend(symb,OP_SELL,NormalizeDouble(Lotss,nor_lot),MarketInfo(symb_S,MODE_BID),Slippage,0,0,comment,Magic,0,clrNONE); if(ticket_op_m>-1)break; } } } }
Спасибо Василий за код,еще больше раза в два чем у мобидика
думаю за неделю смогу его прочесть и исправить ошибки или нет, вопщем время покажет,смогу или нет!
компилятор не хочет компилировать*hi*
Вложения
Последнее редактирование: