Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 13.12.18
Max2018 Max2018 ist offline
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 238
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

Hi,

super Danke.... ABER es gibt da noch ein Problem aus der Ausgangsfrage

ich habe jetzt in die Formel eingefügt:
Code:
if (PO_Check()==true)break;
also

Code:
for (int vv = 0; vv <= 300; vv++) 
{
   price[vv] = NormalizeDouble(ObjectGetDouble(0,vv,OBJPROP_PRICE2),NACHKOMMA);   
   priceSL[vv] = NormalizeDouble(ObjectGetDouble(0,vv,OBJPROP_PRICE1),NACHKOMMA)-NormalizeDouble(spreadReal,NACHKOMMA);   // da spreadReal negativ hier minus !
   priceZIEL[vv] =NormalizeDouble(price[vv]-((priceSL[vv]-price[vv])*MARGE),NACHKOMMA);
 
if (PO_Check()==true)break;
   result[vv]=OrderSend(Symbol(),OP_SELLSTOP,Lots,price[vv],Slippage,0,0,"X"+MARGE+"_"+MagicNumber,MagicNumber,0,Blue); 
   TheStopLoss=priceSL[vv]+AufschlagSL;
   TheTakeProfit=priceZIEL[vv]-AufschlagSL; 
   if(StopLoss>0) TheStopLoss=priceSL[vv]+AufschlagSL;
   OrderSelect(result[vv],SELECT_BY_TICKET);
   OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); 
}
und unten die Boolische Abfrage

Code:
  bool PO_Check() {
   for(int i = OrdersTotal()-1; i >= 0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){
            if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP) {
               if (OrderOpenPrice() == price[vv]) return(false);
            }
         }
      }
   }
Aber da wirft er mir den Fehler aus -und sagt er kennt price[vv] nicht und da auch meine Frage - wie das mit price[vv] abgeglichen wird.... da müsste ich doch eine Schleife in der Schleife haben oder nicht und wie macht man das? Er muss doch jeden price[vv] Wert mit den bereits bestehenden PendingOrders OrderOpenPrice() abgleichen. Damit muss er ja 2 Schleifen durchlaufen ...oder nicht? ..und wie baut man das hier ein?