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

Wenn der Indikator eh nur auf der letzten geschlossenen Kerze Werte liefern soll, dann würde ich den Indikator pro Kerze auch nur einmal aufrufen, also etwa in dieser Art und Weise:

Code:
datetime OldTime;               //Deklaration außerhalb int start();
double ST_Long, ST_Short;

if (Time[0] != OldTime) {
   GetIndicator();
   OldTime = Time[0];
}
...
if(OrdersTotal() == 1) {
   SL_Check();
}
...
void GetIndicator() {
   ST_Long  = iCustom (Symbol(), 0 , "super-trend", 10, 1.5, 0, 1);
   ST_Short = iCustom (Symbol(), 0 , "super-trend", 10, 1.5, 1, 1);
}
void SL_Check() {
   bool res;
   for (int i = 0; i < OrdersTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) {
         if (OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber) {
            res = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(ST_Long, MODE_DIGITS), OrderTakeProfit(), 0, Yellow);
         }
         if (OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber) {
            res = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(ST_Short, MODE_DIGITS), OrderTakeProfit(), 0, Yellow);
         }
      }
   }
}
Viel Erfolg!

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