Milord
Местный знаток
Какой код трала более правильный???
Вопрос для профи MQL4,нашел два варианта функции трала, и сразу возникло 2 вопроса:
1) какой вариант кода более правильный и почему?
2) если ваш вариант более верный напишите его тут?
ЗАРАНЕЕ СПАСИБО!
Вопрос для профи MQL4,нашел два варианта функции трала, и сразу возникло 2 вопроса:
1) какой вариант кода более правильный и почему?
2) если ваш вариант более верный напишите его тут?
ЗАРАНЕЕ СПАСИБО!
PHP:
//-----------------------------------1 вариант трала----------------------
void Traling_Stop_f()
{
for(int i=0; i<OrdersTotal(); i++) {
if(!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
if(OrderSymbol() != Symbol()) continue;
if(OrderType()==OP_BUY) {
if(Bid-OrderOpenPrice()>TrailingStop*Point&& Bid>=OrderOpenPrice()+TrailingStopStart*Point) {
if(OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*Point)
OrderModify(OrderTicket(), OrderOpenPrice(),Bid-TrailingStop*Point, OrderTakeProfit(), 0, CLR_NONE);
}
}
if(OrderType()==OP_SELL) {
if(OrderOpenPrice()-Ask>TrailingStop*Point && Ask<=OrderOpenPrice()-TrailingStopStart*Point) {
if(OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*Point)
OrderModify(OrderTicket(), OrderOpenPrice(),Ask+TrailingStop*Point, OrderTakeProfit(), 0, CLR_NONE);
}
}
}
}
PHP:
//----------------------------------------2 вариант трала---------------
void Tral() {
for( int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{if(OrderSymbol()==Symbol())
{ if(OrderType() == OP_BUY&&OrderMagicNumber()==MagicNumber)
{ if ( (Bid-OrderOpenPrice( ) )>TrailingStart*Point)
{ if (OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*Point)
{ ModifyStopLoss(Bid-TrailingStop*Point);
}
}
}
if (OrderType()==OP_SELL&&OrderMagicNumber()==MagicNumber)
{ if ( OrderOpenPrice( ) -Ask>TrailingStart*Point)
{if (OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*Point || OrderStopLoss()==0)
{ ModifyStopLoss(Ask+TrailingStop*Point);
}
}
}
}
}
}
}