neues Problem: Nach Hinzufügen des Parabolic SAR Indikators kein Livetrading möglich - obwohl in der Simulation alles sauber läuft - Seite 2

 
amando:
Schreibt er irgendwas im reiter experten?

Hi amando,


leider nicht, ich habe gerade eben einen Livetest durchgeführt, und er gibt mir keine Fehlermeldung aus, nichts. 

Das ist der aktuelle Code mit einer Kerzenerkennungsfunktion:

Erste Version mit candlecounter Kerzenerkennung;

//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"


#include<Trade\Trade.mqh>  // Benötigte Library
// Create an instance of Ctrade called 
CTrade trade;

// Eingaben und Array- und Variablendefinitionen
   // Stop Loss in Points
   input int      SL=200;     
   // Take Profit in Points
   input int      TP=100;  
   //  ADX Setting for Crossing between D+ and D-
   input int setADX = 23; 
   //  ADXPeriode
   input int setPer = 27; 
    // Lotsize 
   input double myLotSize = 0.01;
   
   input int    MN = 1232314123;    // IMMER EINE MAGIC NUMBER VERWENDEN BEI EINEM EA; NIEMALS OHNE

   input string Text = "myOwnText";  // Diesen kannst Du verwenden um den Komment in der Position anzuzeigen
   

   // für ADX-Wert
   double ArrayADX[];
   // für D+-Wert
   double ArrayDpl[];
   // für D- -Wert
   double ArrayDmi[]; 
    //Für die Erkennung neuer Kerzen/Bars 
   MqlRates priceData[]; 
  
    // handle for our ADX indicator
   int adx;
   

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Get handle for ADX indicator
   adx=iADX(Symbol(),_Period,setPer);
   
   //--- What if handle returns Invalid Handle
   if(adx<0)
     {
      Alert("Error Creating Handles for indicators - error: ",GetLastError(),"!!");
      return(-1);
     }
     
   // sortiere die Preise abwärts von der aktuellen Kerze
   ArraySetAsSeries(ArrayADX,true);  
   ArraySetAsSeries(ArrayDpl,true);
   ArraySetAsSeries(ArrayDmi,true);
   //Für die Erkennung neuer Kerzen/Bars
   ArraySetAsSeries(priceData,true);
   
     trade.SetExpertMagicNumber(MN);          // Immer die Magic Number verwenden um Trades zu sortieren, den kommentar kann der Broker verändern
     
        return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
      //--- Release our indicator handles
   IndicatorRelease(adx);
  }
  
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
    // Before we can open our buytrade - we need to know the ask price
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); //Ask Price, is the price when we want to buy something, _Digits variable stores the number of digits after the decimal point
   
   // Neue Kerze aufgetaucht
    
   //Copy candle prices for 3 candles into array
   CopyRates(_Symbol,_Period,0,3,priceData);

   // create a counter for the candle
   static int candlecounter; 
   // create datetime variable for the last time stamp
   static datetime timestamplastcheck;
   // create datetime variable for current candle
   datetime timestampcurrentcandle;

   // read time stamp for current candle in array
   timestampcurrentcandle=priceData[0].time;

  
         
         


   // Definierter EA, erste Indikatorlinie (ADX) = (erste 0) die 1 liefert den Wert für die zweite Indikatorlinie D+ usw., aktuelle Kerze (zweite Index 0), 3 Kerzen (Kopieren der Daten für 3 Kerzen), speichere Resultat in meinPreisArray  // Mit der Funktion Copybuffer füllen wir unser Preisarray aufgrund der ADX Definition
   CopyBuffer(adx,0,0,3,ArrayADX);   // ADX-Wert
   CopyBuffer(adx,1,0,3,ArrayDpl);         // Dplus
   CopyBuffer(adx,2,0,3,ArrayDmi);   // D-Minus
  
// Kann für die Anzeige der Indikatorwerte in Verbindung mit der comment Funktion verwendet werden 
   
   // Berechne den EA für für die aktuelle Kerze (ADX)
   double ADXWert=NormalizeDouble(ArrayADX[0],_Digits);  // ADX
   double DplWert=NormalizeDouble(ArrayDpl[0],_Digits);  // D+
   double DminWert=NormalizeDouble(ArrayDmi[0],_Digits);  // D-

// Ende der ADX-Handelsstrategie Umsetzung 
   
   // Testkommentar
   //Comment ("The current ADX signal is: ",ADXWert);


    //if the current time stamp is different from last time
   if (timestampcurrentcandle!=timestamplastcheck)
   { // Anfang if candle counter
      //remember current timestamp for next time
      timestamplastcheck=timestampcurrentcandle;
      // add 1 to the candlecounter
      candlecounter=candlecounter+1;

      // Chart output
      Comment("Counted candles since start:",candlecounter);
      
        if ( ADXWert >= setADX  
         && ArrayDpl[0] > ArrayDmi[0]
         && ArrayDpl[1] < ArrayDmi[1]
         ) 
   {  // Anfang if Buy Condition 
      trade.Buy(myLotSize,_Symbol,Ask,(Ask-SL*_Point),(Ask+TP*_Point),Text); // Parameter: myLotsize = Positionsgröße, _Symbol= akt. Chartsymbol, Ask = Ask Preis, SL, TP, letzte Parameter = für Kommentare   
   } // Ende if Buy Condition   
      
      }  // Ende if candle counter
   
   
   
 
  } // Ende on Tick

// Ab hier Funktionen einfügen




Interessant ist, der dieser Code, liefert erwartungsgemäß dasselbe Ergebnis.Dieser Code ist fast derselbe, nur das ich hier eben die Kerzenerkennungsfunktion ISNewbar drinhabe.

Zweite Version mit IsnewBar Kerzenerkennung;

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

// Benötigte Librarys
#include <IsNewBar.mqh>
#include<Trade\Trade.mqh>

// Create an instance of Ctrade called
CTrade trade;
CIsNewBar NB1;

// Eingaben und Array- und Variablendefinitionen

input int      SL=200;            // Stop Loss in Points
input int      TP=100;            // Take Profit in Points
input int setADX = 23;           //  ADX Setting for Crossing between D+ and D-
 //  ADXPeriode
input int setPer =27; 

input double myLotSize = 0.01;   // Lotsize

input int    MN = 1232314123;    // IMMER EINE MAGIC NUMBER VERWENDEN BEI EINEM EA; NIEMALS OHNE

input string Text = "myOwnText";  // Diesen kannst Du verwenden um den Komment in der Position anzuzeigen



double ArrayADX[];// für ADX-Wert
double ArrayDpl[];// für D+-Wert
double ArrayDmi[];// für D- -Wert
int adx;// handle for our ADX indicator


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

   adx=iADX(Symbol(),_Period,setPer);
   if(adx<0)         //--- What if handle returns Invalid Handle
     {
      Alert("Error Creating Handles for indicators - error: ",GetLastError(),"!!");
      return(-1);
     }

// sortiere die Preise abwärts von der aktuellen Kerze
   ArraySetAsSeries(ArrayADX,true);
   ArraySetAsSeries(ArrayDpl,true);
   ArraySetAsSeries(ArrayDmi,true);


   trade.SetExpertMagicNumber(MN);          // Immer die Magic Number verwenden um Trades zu sortieren, den kommentar kann der Broker verändern
      
      
      
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Release our indicator handles
   IndicatorRelease(adx);
  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
// Before we can open our buytrade - we need to know the ask price
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); //Ask Price, is the price when we want to buy something, _Digits variable stores the number of digits after the decimal point

// Definierter EA, erste Indikatorlinie (ADX) = (erste 0) die 1 liefert den Wert für die zweite Indikatorlinie D+ usw., aktuelle Kerze (zweite Index 0), 3 Kerzen (Kopieren der Daten für 3 Kerzen), speichere Resultat in meinPreisArray  // Mit der Funktion Copybuffer füllen wir unser Preisarray aufgrund der ADX Definition
   CopyBuffer(adx,0,0,3,ArrayADX);   // ADX-Wert
   CopyBuffer(adx,1,0,3,ArrayDpl);         // Dplus
   CopyBuffer(adx,2,0,3,ArrayDmi);   // D-Minus

// Kann für die Anzeige der Indikatorwerte in Verbindung mit der comment Funktion verwendet werden

// Berechne den EA für für die aktuelle Kerze (ADX)
   double ADXWert=NormalizeDouble(ArrayADX[0],_Digits);  // ADX
   double DplWert=NormalizeDouble(ArrayDpl[0],_Digits);  // D+
   double DminWert=NormalizeDouble(ArrayDmi[0],_Digits);  // D-

// Ende der ADX-Handelsstrategie Umsetzung


   if(NB1.IsNewBar(Symbol(),PERIOD_CURRENT)) // Prüfung auf neuen Balken
     {
      // Anfang isnewbar
      if( ADXWert >= setADX  
         && ArrayDpl[0] > ArrayDmi[0]
         && ArrayDpl[1] < ArrayDmi[1]
         )    //Crossing for D+ and D-   ((ArrayDpl[0] > ArrayDmi[0]) && (ArrayDpl[1] < ArrayDmi[1])
        {
         trade.Buy(myLotSize,_Symbol,Ask,Ask-SL*_Point,Ask+TP*_Point,Text); // Parameter: myLotsize = Positionsgröße, _Symbol= akt. Chartsymbol, Ask = Ask Preis, SL, TP, letzte Parameter = für Kommentare
        }   // Ende if Buy Condition
     }   // Ende isnewbar


  }   // Ende on Tick

// Ab hier Funktionen einfügen


Ich habe beide Varianten in der Simulation miteinander verglichen und Sie funktionieren komischerweise nur im 1 min Chart. Alle anderen Charts gehen, warum auch immer leider nicht. ;)

Die Livetrades funktionieren bei den beiden obigen beiden Varianten leider nicht.


Jetzt kommts, mit diesem Code funktioniert jeder Chart in der Simulation und auch im Livetrading klappt alles problemlos. NUR: Dieser Code enthält keine zeitliche Kerzenerkennung, sondern arbeitet mit:  

bool Buy_opened=false; 

// variable to hold the result of Buy opened position  
   if(PositionSelect(_Symbol)==true) // we have an opened position
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
        {
         Buy_opened=true;  //It is a Buy
        }
 
     } // Ende if PositionSelect

und so weiter....

hier der gesamte Code:(Dritte Version - ohne Kerzenerkennung)

//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"


#include<Trade\Trade.mqh>  // Benötigte Library
// Create an instance of Ctrade called 
CTrade trade;

// Eingaben und Array- und Variablendefinitionen
   // Stop Loss in Points
   input int      STL=200;     
   // Take Profit in Points
   input int      TP=100;  
   //  ADX Setting for Crossing between D+ and D-
   input int setADX = 23; 
    //  ADXPeriode
   input int setPer = 27; 
   
    // Lotsize 
   input double myLotSize = 0.01;
    // Buy Trailing Stop - Abstand zum Kurs 
   input int      TRbuy=100;     
    // Buy Trailing Stop - nahziehen
   input int      TRbuynachziehen=20;     

   // für ADX-Wert
   double ArrayADX[];
   // für D+-Wert
   double ArrayDpl[];
   // für D- -Wert
   double ArrayDmi[]; 
  
    // handle for our ADX indicator
   int adx;
   

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Get handle for ADX indicator
   adx=iADX(Symbol(),_Period,setPer);
   
   //--- What if handle returns Invalid Handle
   if(adx<0)
     {
      Alert("Error Creating Handles for indicators - error: ",GetLastError(),"!!");
      return(-1);
     }
     
   // sortiere die Preise abwärts von der aktuellen Kerze
   ArraySetAsSeries(ArrayADX,true);  
   ArraySetAsSeries(ArrayDpl,true);
   ArraySetAsSeries(ArrayDmi,true);
     
        return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
      //--- Release our indicator handles
   IndicatorRelease(adx);
  }
  
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
    // Before we can open our buytrade - we need to know the ask price
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); //Ask Price, is the price when we want to buy something, _Digits variable stores the number of digits after the decimal point
   
   // Neue Kerze aufgetaucht -

   // Definierter EA, erste Indikatorlinie (ADX) = (erste 0) die 1 liefert den Wert für die zweite Indikatorlinie D+ usw., aktuelle Kerze (zweite Index 0), 3 Kerzen (Kopieren der Daten für 3 Kerzen), speichere Resultat in meinPreisArray  // Mit der Funktion Copybuffer füllen wir unser Preisarray aufgrund der ADX Definition
   CopyBuffer(adx,0,0,3,ArrayADX);   // ADX-Wert
   CopyBuffer(adx,1,0,3,ArrayDpl);         // Dplus
   CopyBuffer(adx,2,0,3,ArrayDmi);   // D-Minus
  
// Kann für die Anzeige der Indikatorwerte in Verbindung mit der comment Funktion verwendet werden 
   
   // Berechne den EA für für die aktuelle Kerze (ADX)
   double ADXWert=NormalizeDouble(ArrayADX[0],_Digits);  // ADX
   double DplWert=NormalizeDouble(ArrayDpl[0],_Digits);  // D+
   double DminWert=NormalizeDouble(ArrayDmi[0],_Digits);  // D-

// Ende der ADX-Handelsstrategie Umsetzung 
   
   // Testkommentar
   //Comment ("The current ADX signal is: ",ADXWert);
  
   //--- Do we have positions opened already?
   bool Buy_opened=false;  // variable to hold the result of Buy opened position
   
   
   if(PositionSelect(_Symbol)==true) // we have an opened position
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
        {
         Buy_opened=true;  //It is a Buy
        }
     
     } // Ende if PositionSelect

//   bool Buy_Condition_1 = (ArrayDpl[0] > ArrayDmi[0]); /*&& (ArrayDpl[1] < ArrayDmi[1]);  */     // +DI greater than -DI - für die aktuelle Kerze - Crossing
   
   if( (ADXWert>=setADX)  && ((ArrayDpl[0] > ArrayDmi[0]) && (ArrayDpl[1] < ArrayDmi[1])))   //Crossing for D+ and D-   ((ArrayDpl[0] > ArrayDmi[0]) && (ArrayDpl[1] < ArrayDmi[1])
   {
    // any opened Buy position?
    if(!Buy_opened)
      {
        trade.Buy(myLotSize,_Symbol,Ask,(Ask-STL*_Point),(Ask+TP*_Point),_Symbol); // Parameter: myLotsize = Positionsgröße, _Symbol= akt. Chartsymbol, Ask = Ask Preis, SL, TP, letzte Parameter = für Kommentare   
      }
       //  Comment ("The current ADX signal is: ",ADXWert); 
         
     } // Ende if Buy Condition   
  
  } // Ende on Tick


// Ab hier Funktionen einfügen



und mit der dritten Version gehts in jedem Timeframe und auch im Livekonto. 

Deswegen hatte ich einen Fehler/Problem in der Kerzen/Bars Erkennungsfunktion vermutet. Aber ich kann das aktuell nicht ganz nachvollziehen. 


Hast Du noch eine Idee warum die ersten beiden Versionen des EAs keine anderen Timeframes außer den 1 min Chart traden und bei der dritten Version alles funktioniert? 

Ich bin für jede weitere Hilfe/Ideen sehr dankbar.


Viele Grüße

Paul

 

Probiere das mal aus

Mit dem Comment siehst Du, ob er überhaupt in die Funktion reinspringt, da steht links oben im Chart dann die Aktuelle Bar Zeit

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

// Benötigte Librarys
#include <IsNewBar.mqh>
#include<Trade\Trade.mqh>

// Create an instance of Ctrade called
CTrade trade;
CIsNewBar NB1;

// Eingaben und Array- und Variablendefinitionen

input int      SL=200;            // Stop Loss in Points
input int      TP=100;            // Take Profit in Points
input int setADX = 23;           //  ADX Setting for Crossing between D+ and D-
 //  ADXPeriode
input int setPer =27; 

input double myLotSize = 0.01;   // Lotsize

input int    MN = 1232314123;    // IMMER EINE MAGIC NUMBER VERWENDEN BEI EINEM EA; NIEMALS OHNE

input string Text = "myOwnText";  // Diesen kannst Du verwenden um den Komment in der Position anzuzeigen



double ArrayADX[];// für ADX-Wert
double ArrayDpl[];// für D+-Wert
double ArrayDmi[];// für D- -Wert
int adx;// handle for our ADX indicator


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

   adx=iADX(Symbol(),_Period,setPer);
   if(adx<0)         //--- What if handle returns Invalid Handle
     {
      Alert("Error Creating Handles for indicators - error: ",GetLastError(),"!!");
      return(-1);
     }

// sortiere die Preise abwärts von der aktuellen Kerze
   ArraySetAsSeries(ArrayADX,true);
   ArraySetAsSeries(ArrayDpl,true);
   ArraySetAsSeries(ArrayDmi,true);


   trade.SetExpertMagicNumber(MN);          // Immer die Magic Number verwenden um Trades zu sortieren, den kommentar kann der Broker verändern
      
      
      
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Release our indicator handles
   IndicatorRelease(adx);
  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
// Before we can open our buytrade - we need to know the ask price
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); //Ask Price, is the price when we want to buy something, _Digits variable stores the number of digits after the decimal point

// Definierter EA, erste Indikatorlinie (ADX) = (erste 0) die 1 liefert den Wert für die zweite Indikatorlinie D+ usw., aktuelle Kerze (zweite Index 0), 3 Kerzen (Kopieren der Daten für 3 Kerzen), speichere Resultat in meinPreisArray  // Mit der Funktion Copybuffer füllen wir unser Preisarray aufgrund der ADX Definition
   CopyBuffer(adx,0,0,3,ArrayADX);   // ADX-Wert
   CopyBuffer(adx,1,0,3,ArrayDpl);         // Dplus
   CopyBuffer(adx,2,0,3,ArrayDmi);   // D-Minus

// Kann für die Anzeige der Indikatorwerte in Verbindung mit der comment Funktion verwendet werden

// Berechne den EA für für die aktuelle Kerze (ADX)
   double ADXWert=NormalizeDouble(ArrayADX[0],_Digits);  // ADX
   double DplWert=NormalizeDouble(ArrayDpl[0],_Digits);  // D+
   double DminWert=NormalizeDouble(ArrayDmi[0],_Digits);  // D-

// Ende der ADX-Handelsstrategie Umsetzung


   if(NB1.IsNewBar(Symbol(),PERIOD_CURRENT)) // Prüfung auf neuen Balken
     {
        Comment(TimeCurrent());

      // Anfang isnewbar
      if( ADXWert >= setADX  
         && ArrayDpl[0] > ArrayDmi[0]
         && ArrayDpl[1] < ArrayDmi[1]
         )    //Crossing for D+ and D-   ((ArrayDpl[0] > ArrayDmi[0]) && (ArrayDpl[1] < ArrayDmi[1])
        {
         trade.Buy(myLotSize,_Symbol,Ask,Ask-SL*_Point,Ask+TP*_Point,Text); // Parameter: myLotsize = Positionsgröße, _Symbol= akt. Chartsymbol, Ask = Ask Preis, SL, TP, letzte Parameter = für Kommentare
        }   // Ende if Buy Condition
     }   // Ende isnewbar


  }   // Ende on Tick

// Ab hier Funktionen einfügen
 
amando:

Probiere das mal aus

Mit dem Comment siehst Du, ob er überhaupt in die Funktion reinspringt, da steht links oben im Chart dann die Aktuelle Bar Zeit


Guten Morgen amando,


ja er springt rein und zeigt in jedem Timeframe das aktuelle Datum und die Zeit an. Das funktioniert. Was mir aber aufgefallen ist, das er bei manchen Timeframes wie den 4 min Chart oder den 10 min Chart ein paar Trades eröffnet und auch wieder schließt. Nur nicht bei jedem Crossing zwischen D+ und D-....zu Testzwecken hatte ich den ADX mal auf 10 gestellt damit die Tradebedingung quasi bei fast jedem Crossing zwischen D+ und D- erfüllt ist, aber der EA scheint das, warum auch immer zu ignorieren???

 
Ich würde Dir raten mit dem Debugger (aus dem Editor) und historischen Kursen (Einstellen über Extras => Optionen => Debug) durchzuführen. Vorher aber noch an den entscheidenden Stellen Breakpoints setzen!
 
Carl Schreiber:
Ich würde Dir raten mit dem Debugger (aus dem Editor) und historischen Kursen (Einstellen über Extras => Optionen => Debug) durchzuführen. Vorher aber noch an den entscheidenden Stellen Breakpoints setzen!
Ja werde ich probieren, aber vielleicht hat jemand noch eine Idee?
 
PS-WW-Trader:


Guten Morgen amando,


ja er springt rein und zeigt in jedem Timeframe das aktuelle Datum und die Zeit an. Das funktioniert. Was mir aber aufgefallen ist, das er bei manchen Timeframes wie den 4 min Chart oder den 10 min Chart ein paar Trades eröffnet und auch wieder schließt. Nur nicht bei jedem Crossing zwischen D+ und D-....zu Testzwecken hatte ich den ADX mal auf 10 gestellt damit die Tradebedingung quasi bei fast jedem Crossing zwischen D+ und D- erfüllt ist, aber der EA scheint das, warum auch immer zu ignorieren???

verändert sich das auch mit jeder kerze?

 
amando:

verändert sich das auch mit jeder kerze?


Hi,


ja ändert sich korrekt mit jeder Kerze. Ein Mysterium für mich^^. 
 
Dann werden die Bedingungen für den kauf nicht wahr
 
amando:
Dann werden die Bedingungen für den kauf nicht wahr

Hi amando,


die Bedingungen habe ich zu Testzwecken so eingestellt, das sie auf jeden Fall wahr werden, das ist ja das Kuriose. Ohne die Candleerkennung gehts ja auch. 

Das ist wie verhext, irgendwas übersehe ich.... ;)

 
PS-WW-Trader:

Hi amando,


die Bedingungen habe ich zu Testzwecken so eingestellt, das sie auf jeden Fall wahr werden, das ist ja das Kuriose. Ohne die Candleerkennung gehts ja auch. 

Das ist wie verhext, irgendwas übersehe ich.... ;)

die candle erkennung kennt er aber, sonst würde sich die zeit im comment nicht verändern, also liegts an den bedinungen.

Grund der Beschwerde: