[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 486

 
abolk:

显示你如何读取global_trailing_SP 变量


目前,对于主力仓位,尾随值是由ATR这样计算的。

void Trailing_Stop_by_ATR_SP(int Timeframe,int Period_ATR_SP,double Multiply_SP,int digits_symbol,int Magic)
{  
   double High_1     = NormalizeDouble(iHigh(Symbol(),Timeframe,1),Digits);
   double Low_1      = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits);
   double atr        = iATR(Symbol(),Timeframe,Period_ATR_SP,1);
   double new_trail  = Low_1 + NormalizeDouble(((Multiply_SP*atr)*digits_symbol)*Point,Digits);
    
   for(int count = OrdersTotal()-1; count >= 0; count--)
      {  OrderSelect(count,SELECT_BY_POS,MODE_TRADES);
      
         if (OrderType() == OP_SELL && OrderMagicNumber() == Magic)
            {  double Op_Price = NormalizeDouble(OrderOpenPrice(),Digits);
               double Stp_Loss = NormalizeDouble(OrderStopLoss(),Digits);
               
               if (new_trail < Stp_Loss && new_trail > High_1)
                  {  
                     OrderModify(OrderTicket(),Op_Price,new_trail,0,0,White);
                  }
            }
      }
}
但这没有问题,因为主要位置是拖着的,没有错误。问题是要给其他位置分配相同的值。
 
FOReignEXchange:

所以我不明白。在修改主要订单时,该待处理订单是否存在?

如果它存在,那么主订单的修改和挂单的修改就在同一个块中。如果主订单被修改,待处理的订单也应该这样做,如果这是你的想法。

另一件事是,我们的想法并不可行。这意味着条件中的一个错误。试着用与修改主要订单的条件相同的方式来做一切事情,正如我在上面显示的那样。在我看来,错误是在逻辑上。我并不感到惊讶。这里的一切都非常复杂。它应该更简单。


很有可能,你应该把它变得更简单。这是没经验的表现)。

目前,它是这样的,对于主要的位置在一个单独的函数中拖动。然后,如果有挂单 或其他主力的头寸,它们的价值会与主力头寸的止损进行核对。如果它们是不同的,则取主的价值。

 
FOReignEXchange:

我并不感到惊讶。这对你来说有点复杂。你应该保持简单。

我一直保持简单。到目前为止,这个问题似乎已经消失了。我对所有的头寸都进行了合并追踪。我将在一个单独的函数中对未决订单 进行修改。谢谢你))))。
 
tol64:
我已经把它变得更简单了。到目前为止,这个问题似乎已经消失了。谢谢你。)))


什么?"暂停 "是可以修改的还是什么?:)

笔迹必须改变。笔迹越清晰,犯的错误就越少。尽量不要把所有东西都塞进一个堆里,尽可能减少变量和其他不必要的东西。始终在一个新的行上 启动大括号,以使区块清晰可见。

 
FOReignEXchange:

什么,陷阱修改了还是什么?


是的,在上述函数中,按ATR追踪,我排除了魔术检查,并增加了一个暂停。

if (OrderType() == OP_SELL || OrderType() == OP_SELLSTOP) 
 
FOReignEXchange:


笔迹必须要改。笔迹越清晰,犯的错误就越少。尽量不要把所有东西都塞进一个堆里,尽可能少一些变数和不必要的东西。始终将大括号写在新的一行,以使区块清晰可见。

谢谢你的提示。我把他们中最优秀的人刻在我的神经元里)。
 
tol64:


是的,在上述函数中,ATR尾随,我排除了魔术检查,增加了停顿。


是的,没错,我正想说马吉克。你看。不需要不必要的变量。我待会儿见。
 
FOReignEXchange:

是的,没错,我想说的是Magik。你看。不需要不必要的变量。我待会儿见。


这是一个明智的想法。"不需要不必要的变量"。
不需要魔术师--为什么要检查魔术师的订单?
如果你从另一个EA修改一个订单,就可以了。
你应该把魔术师作为一个类别普遍排除在外--它的开发者已经浪费了他们的时间--我们已经被各种魔术师洗脑了。

p.s. 对舞者来说,碍事的东西最好修剪一下。

 
abolk:


明智的想法--"不需要额外的变量 " 和 "不需要魔术师"--为什么要检查魔术师的订单? 修改另一个顾问的订单--没什么大不了的。 根本不把魔术师作为一个类别。



))))不,我认为离开魔术师会更好。你应该只留下待定的订单

更确切地说,我们应该留下那些需要的魔术师。如果我们在不同的图表上使用几个专家顾问,我们也应该在检查中包括符号。但我还没有走到这一步。))

 

我根本不使用魔术师。虽然有时一次有几个项目。我使用门票。通过OrderSelect检查要容易得多。而函数OrderSend变得更加清晰。嗯,每个人都是自己笔迹的主人。就我个人而言,没有魔术师,我从未遇到过任何问题。

车票从来没有去过任何地方。有了它,就很方便。