Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 03.11.21
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Aha, das ist ein anderer, spezieller Fall.

Wenn da steht:

Code:
for (int i = OrdersTotal()-1; i >= 0; i--){
   if (OrderSelect(i, SELECT_BY_POS)){
      if (OrderSymbol() == _Symbol) {
dann werden all die Orders berücksichtigt, die bereits als MarketOrder offen im Markt liegen und die gesetzten Pendingorders des Handelsinstrumentes, welches hinter der Variablen _Symbol liegt. In Deinem Fall werden also alle o.g. Orders des Handelsinstrumentes DAX selektiert, egal auf welchem Chart und welchem TimeFrame sie sich befinden. Insofern werden nun auch Orders des H4 berücksichtigt, obwohl der EA auf dem TimeFrame D1 liegt. Das kann ggf. auch zu Beeinflussungen bzgl. SL, TP, Close etc. führen.

Der Ausweg besteht darin, jedem Chart eine sog. MagicNumber als Variable zu vergeben, die bei der Orderöffnung in der Funktion OrderSend dann unbedingt mit anzugeben ist.
Und dann würde der Code erweitert zu:

Code:
for (int i = OrdersTotal()-1; i >= 0; i--){
   if (OrderSelect(i, SELECT_BY_POS)){
      if (OrderSymbol() == _Symbol && OrderMagicNumber() == MagicNumber) {
Nun werden nur die Orders berücksichtigt, die dem Symbol _Symbol und der in der Order stehenden MagicNumber entsprechen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.