[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 66

 
vovan-gogan:

这有什么意义?SL水平是正确的。当我将SL变量设置为MA20,移位为3时,我通过Alert输出SL电平,它总是处于正确的水平。我不知道为什么在达到SL水平之前,SL会被删除。

不,如果你对解决一个问题不感兴趣,而是对沟通感兴趣,我就不去。
 
PapaYozh:

不,好吧,如果不是为了解决问题,而是为了沟通,那我就不去了。

不,恰恰相反,我会接受你的建议。让我们看看会发生什么。
 
我感到困惑的是,两种类型的 BUYSTOP/SELLSTOP订单 都被同一个条件删除,至少它们是不同的东西。我想有另一个类似的代码片段,它将删除所有系列的挂单。
 
splxgf:
我感到困惑的是,两种类型的BUYSTOP/SELLSTOP订单都被同一个条件删除,至少它们是不同的东西。我想还有一个类似的代码片段,所有的挂单将被陆续删除。

不,不是一个。我只是提出了描述删除SellStop订单情况的部分代码片段,以使其更加清晰。
 
vovan-gogan:

没有。不是由一个。
   if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)

其中一个订单类型 是低于价格的,另一个是高于价格的...和关闭它们的条件是一样的 Bid>SL...你要问的是逻辑在哪里。

我建议从条件中删除一个订单类型,或者你可以进一步减弱。

 
vovan-gogan:

人们,帮我弄清楚这到底是什么?我的专家顾问被设计成放出一个OPP,如果价格没有达到它,而是反转到它的止损水平,OPP应该被删除。但在测试器上,有时OPP被放出,甚至在它达到止损之前就被立即删除。问题是什么?这里有一张截图和删除代码。

以下是代码。

这里的错误是什么?

在第一行(让我们对其他部分闭嘴)......如果买入价低于你的订单的止损价...
该订单被设置为低于买入价,其止损也低于买入价。第一行代码立即将其删除。
 
你好,我想这是一个相当幼稚的问题。在截图中,我经常看到在标准(原生MT4工具) 费波水平和费波扩展,在费波数字之后有一个价格,该水平是...... 我的问题是:我如何启用它?
 
Vinin:

改编自



你好,请帮助我...这里有一个指标。我可以在绘制新段时附加一个声音信号吗? ZigzagFr_v1.mq4(4.4 Kb)查看
 
下午好!我有件事不明白。我决定在我的专家顾问上附加一个追踪止损。 但是,它一直显示错误130。我不能理解任何事情,昨天我也不能理解。
  } }
   
   
  //+------------------------------------------------------
  double JUN;int tiktik;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_BUY ) continue;
     if (price-OrderOpenPrice( )>30*Point) {JUN= price-OrderOpenPrice( );tiktik=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktik," имеет JUN, ",JUN);Alert("JUN",JUN,"JUNpomnim",JUNpomnim);
    if (JUN>0){if (JUN>JUNpomnim){Alert("JUN",JUN,"JUNpomnim+++++++++++++++++++++++++",JUNpomnim);
      OrderModify(tiktik,OrderOpenPrice(),price-15*Point,OrderTakeProfit(),0,0);     JUNpomnim=JUN;
      Alert("OrderModify-BAY", GetLastError()); }}
      
      
      
  double BAN;int tiktAk;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_SELL ) continue;
     if (OrderOpenPrice( )-price>30*Point) {BAN= OrderOpenPrice( )-price;tiktAk=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktAk," имеет BAN, ",BAN);Alert("BAN",BAN,"BANpomnim",BANpomnim);
    if (BAN>0){ if (BAN>BANpomnim){Alert("BAN",BAN,"BANpomnim++++++++++++++++++++++++++++",BANpomnim);
      OrderModify(tiktAk,OrderOpenPrice(),price+15*Point,OrderTakeProfit(),0,0);  BANpomnim=BAN;
       Alert("OrderModify-SELL", GetLastError()); }}
    

  
   return(0);
  }
//+------------------------------------------------------

请看有修改的那一行,其中有一个错误。因此,白方的止损设置为高15点,反之则为卖方。

一般来说,当买入止损和卖出止损打开后,跟踪止损开始下降,然后价格走高30点(或卖出时走低),注意,止损不低于开盘价;换句话说,我认为没有逻辑错误。

我在每一个刻度 上计算价格,它是这样的

int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4); 

最主要的是检查输入值是否正确。

虽然我写了一个没有计划的代码片段,也没有考虑清楚,但我还是起草了它。

 
Dimka-novitsek:
下午好,我有一点不明白。我决定给我的EA附加一个追踪止损,但它一直显示错误130。我不能理解任何事情,我昨天也不能。

请看有修改的那一行,其中有一个错误。因此,白方的止损设置为高15点,反之则为卖方。

一般来说,当买入止损和卖出止损打开后,跟踪止损开始下降,然后价格走高30点(或卖出时走低),注意,止损不低于开盘价;换句话说,我认为没有逻辑错误。

我在每一个刻度上计算价格,它是这样的

我试图检查,但它是错误的。

我在没有计划的情况下写了一部分代码,没有考虑过这个问题,但它仍然是正确的。

在如此混乱的情况下,很难提出任何建议。

那么,对于初学者来说。

1)不要每行写2-3个运算符,所有的东西都会混在一起,而且可读性很差。

2) JUNpomnim变量。哪里 "给 "了一个初始值?所有未结订单的情况都一样吗?

举个简单的例子,你有两个订单,你只需移动第一个订单的SL,改变这个变量,就可以了。第二个不会被移动,因为JUN = JUNpomnim。

3) 当使用OrderModify()时,将所有价格规范化