新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 463

 
HUNTERGOOD:

我在第457页创建了正确的请求,在第4567号帖子中,以及所有必要的。"指标,需要什么,具体怎么做"--在那里,描述一切并不困难,列出所有的短小精悍,清晰明了,在我的第一篇帖子里有什么问题,我这样一个小小的要求,对于一个在代码中理解的人来说,忽略了六页,结果在 "灯 "上 "戏谑 "我--我在这里写得很呆板。重复的请求。

((^^^^ 大家下午好。尊敬的程序员,请帮我插入一个字符串,能够为每个Alert3.Lv1;2;3指定声音文件,以触发你指定的不同声音。我自己并不擅长编码和编程。^^))。

你在图表上试过了吗,有效果吗?

 

你能告诉我怎么做吗:我想在任何订单下达后立即放置一个止损和一个取货。如果一个EA开了一个订单,我想设置一个止损点和一个承接点。如一个操作员开了一个订单,我想 设置一个止损和一个承接我应该如何更准确地描述它呢?所以,专家顾问和操作者都明白这些订单在哪里!这也是我们的目标。

这段代码似乎是有效的,但它是否正确?

还是有必要用FOR为每个订单类型(专家顾问或操作者)安排一个行动?

附加的文件:
STOP_TAKE.txt  4 kb
 

如何把它做好。1

2

 
Rewerpool:

如何把它做好。

编码 通常在这里插入。这里的大多数人都懒得去解析图片。

 
Konstantin Nikitin:

在这里粘贴代码 是可以的。这里的大多数人都懒得把照片拆开。

我以为我先附上了整个代码!只有文件!留言.然后更简单地用图片描述了一下情况!

 

订单类型(专家顾问或操作员)的搜索?



//+------------------------------------------------------------------+

//|设置止损和接管的开放订单的功能
//+------------------------------------------------------------------+
空白的STOP_TAKE()
{
int tip,Ticket;
双重OOP,OSL,OTP。
int SPREAD = (int)MarketInfo(Symbol(),MODE_SPREAD);
如果(stoploss<STOPLEVEL) stoploss=0。
如果(takeprofit<STOPLEVEL)takeprofit=0。
for(int i=0; i<OrdersTotal(); i++)
{
如果(OrderSelect(i,SELECT_BY_POS)==true)
{
tip=OrderType()。
//----------IfOrderTotal()
if(tip<2 && OrderSymbol()==Symbol() && OrderMagicNumber() ==Magic)
{
OSL = OrderStopLoss()。
OTP = OrderTakeProfit()。
如果((OSL==0&stoploss!=0)|(OTP==0&takeprofit!=0))
{
OOP = OrderOpenPrice()。
Ticket = OrderTicket()。
如果(提示==OP_BUY ||提示==OP_BUYSTOP ||提示==OP_BUYLIMIT)。
{
如果(takeprofit!=0) TP = NormalizeDouble(OOP + takeprofit*Point,Digits); 否则TP=OTP;
如果(stoploss!=0) SL = NormalizeDouble(OOP - (stoploss+SPREAD)* Point,Digits); else SL=OSL;
如果(OrderModify(Ticket,OOP,SL,TP,0,White))Print("SetStop",Ticket," SL",OSL," -> " SL," TP",OTP," -> " TP)。
else Print(Symbol()," Error STOP_TAKE",GetLastError()," Ticket " ,Ticket);
}
如果(提示==OP_SELL ||提示==OP_SELLSTOP ||提示==OP_SELLLIMIT)
{
如果(takeprofit!=0) TP = NormalizeDouble(OOP - takeprofit*Point,Digits); 否则TP=OTP;
如果(stoploss!=0) SL = NormalizeDouble(OOP + (stoploss+SPREAD)* Point,Digits); else SL=OSL;
如果(OrderModify(Ticket,OOP,SL,TP,0,White))Print("STOP_TAKE",Ticket," SL",OSL," -> " SL," TP",OTP," -> " TP)。
else Print(Symbol()," Error STOP_TAKE",GetLastError()," Ticket " ,Ticket);
}
}
}
//----------If(tip<2 &&Order)
否则如果(提示<2 && OrderSymbol()==Symbol()&& OrderMagicNumber()!=Magic)
{
OSL = OrderStopLoss()。
OTP = OrderTakeProfit()。
如果((OSL==0&stoploss!=0)|(OTP==0&takeprofit!=0))
{
OOP = OrderOpenPrice()。
Ticket = OrderTicket()。
如果(提示==OP_BUY ||提示==OP_BUYSTOP ||提示==OP_BUYLIMIT)。
{
如果(takeprofit!=0) TP = NormalizeDouble(OOP + takeprofit*Point,Digits); 否则TP=OTP;
如果(stoploss!=0) SL = NormalizeDouble(OOP - (stoploss+SPREAD)* Point,Digits); else SL=OSL;
如果(OrderModify(Ticket,OOP,SL,TP,0,White))Print("STOP_TAKE",Ticket," SL",OSL," -> " SL," TP",OTP," -> " TP)。
else Print(Symbol()," Error STOP_TAKE",GetLastError()," Ticket " ,Ticket);
}
如果(提示==OP_SELL ||提示==OP_SELLSTOP ||提示==OP_SELLLIMIT)
{
如果(takeprofit!=0) TP = NormalizeDouble(OOP - takeprofit*Point,Digits); 否则TP=OTP;
如果(stoploss!=0) SL = NormalizeDouble(OOP + (stoploss+SPREAD)* Point,Digits); else SL=OSL;
如果(OrderModify(Ticket,OOP,SL,TP,0,White))Print("STOP_TAKE",Ticket," SL",OSL," -> " SL," TP",OTP," -> " TP)。
else Print(Symbol()," Error STOP_TAKE",GetLastError()," Ticket " ,Ticket);
}
}
}
}
}
}
 
Rewerpool:

我以为我先附上了整个代码!只有文件!留言.然后更简单地用图片描述了一下情况!

好吧,为什么在这里放一张照片。我正在告诉你这件事。

 
Rewerpool:手动下的订单有一个神奇的数字0,EA下的订单有自己的神奇数字。这就是你应该作为指南的内容。
 

@Konstantin Nikitin OK!通过专家顾问或操作员打开获利订单的代码结构是否正确?这就是为什么我附上了一张图片,以使问题更加清晰!

 
Rewerpool:

@Konstantin Nikitin OK!通过专家顾问或操作员打开获利订单的代码结构是否正确?这就是为什么我附上了一张图片,以使问题更加清晰!

我将按以下方式进行

for(int i=0; i<OrdersTotal(); i++)
{
     if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
     if(OrderSymbol()!=Symbol()) continue;
     
     int tip = OrderType();
     if(tip!=OP_BUY && tip!=OP_BUYSTOP && tip!=OP_BUYLIMIT) continue;
     
     // переменные которые будут использоваться в любых ордерах
     int Ticket = OrderTicket();
     double OOP = OrderOpenPrice();
     
     //---
     switch( OrderMagicNumber() )
     {
          case Magic:    // Ордера советника
               {
                    // что-то делаем
               }
               break;

          default:       // Все остальные
               {
                    // что-то делаем
               }
     }
}