初学者的问题 MQL5 MT5 MetaTrader 5 - 页 354

 
Arsen_Syharev:
请告诉我应该写哪条命令来同时打开Sell1和Sell2的分形?
论坛上什么都没有。
 
嗨,朋友们,你们能不能建议一个简单的函数,如果任何条件成真,它就会...(SigPF==1或SigPF==2)和OrdersTotal>0,即如果发生SigPF条件之一,只有当前市场上的订单应该被处理。

这是一个外部变量,用于检查函数内部的条件。
外来的int PF_price_in_pips=70。
该功能应。
1.定义我们正在处理的订单类型......如果SigPF==1,那么它是一个买入订单,如果SigPF==2,那么它是一个卖出订单
2. 检查当前价格,如果
有一个买入订单并且SigPF==1出现在市场上,那么

如果买入订单的当前价格与市场上任何一个订单的开仓价格 之差高于PF_price_in_pips,该函数应返回valid_signal=true。


现在市场上有卖出订单,并且SigPF==2已被设置,那么

如果市场上已经存在的任何未平仓订单的价格与当前价格(卖出订单将在该价格上开仓)之间的差额高于PF_price_in_pips,则该函数应返回valid_signal=true标志。

如果新订单的开盘价与买入/卖出信号发生时的距离低于PF_price_in_pips,该函数应返回valid_signal=false。

基本上,简而言之,该函数应检查新订单在买入和卖出信号(SigPF==1,SigPF==2)时的开盘价与市场上已出现的任何订单开盘价之间的距离...如果该距离大于PF_price_in_pips,则应返回valid_signal=true。这是为了避免在价格非常接近的情况下开出订单!还有一件事......我的EA只在新条形图打开时进行交易......而不是在所有的点上......。但我认为这并不重要... 无论如何,我必须考虑买入或卖出价格......

对这个功能的帮助...!如果有什么不清楚的地方,我会尽量解释......或提供图片!请帮助我)谢谢你!
 

我不确定我的术语是否正确,但...

   int PF_price_in_pips=70;
   int OrdTotal=OrdersTotal();
   bool valid_signal=false;
   int SigFF;
   
   if(OrdersTotal()>0)
   {
   for(int i=OrdTotal-1; i>=0; i --)
     {
      if(!OrderSelect(i,SELECT_BY_POS))
         continue;

      if(OrderType()==OP_BUY && SigFF==1 && Ask+OrderOpenPrice()>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;
      if(OrderType()==OP_SELL && SigFF==2 && OrderOpenPrice()-Bid>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;

     }
     }
 
Arsen_Syharev:
您能告诉我应该写哪条命令,以便当分形的Sell1和Sell2同时开盘时,能有一个订单
Sell1和Sell2的哪个值适合你开单。//我不能再看着你的痛苦了....
 
Arsen_Syharev:
您能告诉我应该写哪条命令,以便当Sell1和Sell2分形同时开仓时,有一个订单被打开。
if (Sell1 !=0 && Sell2 != 0){

/* Если по текущей цене */ 

OrderSend(Symbol1, OP_SELL, Lots, Bid, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELL, Lots, Bid, 1, 0,0, 0, Magik, 0, Red); 

/*Если по пробитию фракталов отложенными ордерами */

 OrderSend(Symbol1, OP_SELLSTOP, Lots, Sell1, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELLSTOP, Lots, Sell2, 1, 0,0, 0, Magik, 0, Red);  

} 

但这一定是一个非常非常粗糙的例子

 
你知道是否有可能在一个账户上签署多个信号?
 

同事们好,最近加入了你们的行列:)。我厌倦了挂单,决定使用我从网上下载的一个脚本,但它并不令人满意:我只在一个方向上有错误,而另一个脚本只在每个方向上下了一个订单。它基本上包括在两个方向上打开一定数量的挂单。问题:如何为每个订单设置追踪止损? 这是一个脚本,不是一个专家顾问。订单被打开,追踪止损被附加到它们上面,就这样,脚本已经完成了它的工作。我如何使用脚本来触发一个常规的追踪止损,该止损由右键点击订单来执行?4日MetaTrader Build 765。

 
entitie:

同事们好,最近加入了你们的行列:)。我厌倦了挂单,决定使用我从网上下载的一个脚本,但它并不令人满意:我只在一个方向上有错误,而另一个脚本只在每个方向上下了一个订单。它基本上包括在两个方向上打开一定数量的挂单。问题:如何为每个订单设置追踪止损? 这是一个脚本,不是一个专家顾问。订单被打开,追踪止损被附加到它们上面,就这样,脚本已经完成了它的工作。我如何使用脚本来触发一个常规的追踪止损,该止损由右键点击订单来执行?4日MetaTrader Build 765。

自由职业者做一切事情)。
 

大家好!

任务如下 - 我需要在EURUSD.m上开出一定距离的订单来买入,并在EURUSD.m1上卖出。这个问题在下面的代码中得到了解决。

然而,如果价格对我们不利,我们仍然需要为EURUSD.m开立买入订单,前提是价格已经从最后的订单卖出EURUSD.m1,距离为步骤*2。这个条件将在这个开盘价低于EURUSD.m的最后一个买入订单的价格的条件下发挥作用。

我无法弄清楚如何做。我很高兴能提供帮助。

// бай евро доллар
if (rates[1].open < rates[1].close && !PositionSelect(Symbol1)) 
   {
      LastPriceBuy = OpenBuy(Symbol1,Lot); // если бычья свеча и нет открытой позиции по этому символу
   }
if (GlobalVariableCheck ("bb_1")) GlobalVariableGet("bb_1", bb_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol1) && LastPriceBuy > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceBuy+Step*_Point < SymbolInfoDouble(Symbol1,SYMBOL_ASK)) 
   {LastPriceBuy = OpenBuy(Symbol1,Lot);} // открытие позиции в бай по евро доллару всех последующих ордеров 
  }    

// сел евро доллар
if (rates[1].open > rates[1].close && !PositionSelect(Symbol3)) {LastPriceSell = OpenSell(Symbol3,Lot);} // если бычья свеча и нет открытой позиции по этому символу
if (GlobalVariableCheck ("ss_1")) GlobalVariableGet("ss1_", ss_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol3) && LastPriceSell > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceSell-Step*_Point > SymbolInfoDouble(Symbol3,SYMBOL_BID))
   {LastPriceSell = OpenSell(Symbol3,Lot);} // открытие позиции в селл по евро доллару всех последующих ордеров 
  } 
 
zfs:
自由职业者都是这样做的)。

一个非常有价值和信息量的回复-评论,我建议你也使用它......

事实上,没有一个简单的命令,在开出订单后,在上面挂上一个标准的追踪止损?