Problem mit double und SL, TP

 

Hallo Programmierer des MT5,

Gibt es Routinen oder Hilfen zum Setzen von SL und TP, wenn der gewünschte Wert vom double nicht genau dargestellt werden kann?
Natürlich versagt dann auch Normalizedouble, das ist mir klar und ausprobiert ...

Leider kein echtes Beispiel, aber:   SL 9.02755, durchs Programm errechnet als richtiger Wert (Diff zum Price) könnte evtl. nicht genau von Double dargestellt werden, es erscheint statt dessen: 9.027549999999999 oder 9.02755000000001;

Solche Werte werden vom Handelssystem nicht akzeptiert, der Tradeupdate geht schief, neuer versuch bringt natürlich auch nichts.

Jetzt geht Raten und Rechnen los, nehme statt 9.02755 9.02756 und siehe da, es könnte klappen ...

Ich habe mir geholfen durch eine eigene, komplizierte Routine, welche funktioniert- aber ich denke mir - da gibt es bestimmt etwas fertiges und viel einfacheres.

Dank im Voraus!

 
werner111053:

Hallo Programmierer des MT5,

Gibt es Routinen oder Hilfen zum Setzen von SL und TP, wenn der gewünschte Wert vom double nicht genau dargestellt werden kann?
Natürlich versagt dann auch Normalizedouble, das ist mir klar und ausprobiert ...

Leider kein echtes Beispiel, aber:   SL 9.02755, durchs Programm errechnet als richtiger Wert (Diff zum Price) könnte evtl. nicht genau von Double dargestellt werden, es erscheint statt dessen: 9.027549999999999 oder 9.02755000000001;

Solche Werte werden vom Handelssystem nicht akzeptiert, der Tradeupdate geht schief, neuer versuch bringt natürlich auch nichts.

Jetzt geht Raten und Rechnen los, nehme statt 9.02755 9.02756 und siehe da, es könnte klappen ...

Ich habe mir geholfen durch eine eigene, komplizierte Routine, welche funktioniert- aber ich denke mir - da gibt es bestimmt etwas fertiges und viel einfacheres.

Dank im Voraus!

Ich denke, der Fehler muss da wo anders liegen! Alle double-Werte sind ja so, egal, was Du vorher machst und auf was Du die Werte auf-, ab- oder gar nicht rundest!

daher wäre ein echtes Beispiel schon interessant und vor allem die Fehlerauswertung!! Wenn es zB. heißt ungültiger Stopp, ist der entweder zu nah oder auf der falschen Seite oder vom falschen Kurs (Ask statt Bid oder ...) berechnet!!

Beachte mal dies:

function returncodes
errors

What are Function return values ? How do I use them ?
What are Function return values ? How do I use them ?
  • www.mql5.com
I see many, many people posting code and asking questions which can usually be answered by simply checking the return values from a few Functions a...
 

NormalizeDouble funktioniert. 

 

Am einfachsten die CTrade Class benutzen.

 

SymbolInfoTick(_Symbol,LastTick);
Ticket=false;
StopLoss = 500;
SL=0;
SL= LastTick.ask-(StopLoss*Pip);


  
   Ticket=cTrade.PositionOpen(_Symbol,OP_BUY,Lots,LastTick.ask,NormalizeDouble(SL,SymbolInfoInteger(symbol,SYMBOL_DIGITS)),NormalizeDouble(TP,SymbolInfoInteger(symbol,SYMBOL_DIGITS)),SignalComment);
   if(!Ticket)
     {
      Print("Buy Error: ",GetLastError()," ",symbol);
      Print("Failed to open order! Error:",cTrade.CheckResultRetcodeDescription());
      
     }
 
Carl Schreiber:

Ich denke, der Fehler muss da wo anders liegen! Alle double-Werte sind ja so, egal, was Du vorher machst und auf was Du die Werte auf-, ab- oder gar nicht rundest!

daher wäre ein echtes Beispiel schon interessant und vor allem die Fehlerauswertung!! Wenn es zB. heißt ungültiger Stopp, ist der entweder zu nah oder auf der falschen Seite oder vom falschen Kurs (Ask statt Bid oder ...) berechnet!!

Beachte mal dies:

function returncodes
errors

Hallo Carl,

Danke für den Versuch- hier ein kleiner Test:

//*********************************************************

void NormalizeDoubleTest()

//*********************************************************

{

    double doubletest=9.73375;

    doubletest=doubletest/0.00005*0.00005;

    Print("Double vor  Normalize=", doubletest);

    doubletest=NormalizeDouble(doubletest,5);

    Print("Double nach Normalize=", doubletest);

}


Ergebnis:

RP 0 19:44:28.984 BP1Body (EURUSD,M1) Double vor  Normalize=9.733750000000001

RF 0 19:44:36.847 BP1Body (EURUSD,M1) Double nach Normalize=9.733750000000001

 

Wenn Du das an SL oder TP übergibst und updaten willst (mit CTRADE), bekommst du eine Fehlermeldung, weil TP oder SL nicht sauber in TickSize übergeben sind.

Dass NormalizeDouble diese Aufgabe nicht schafft, ist klar:  Die obige Zahl 9.73375 lässt sich eben nicht sauber mit dem DoubleFormat binär darstellen. Sie springt von 9,73374999999999 auf 9.733750000000001.

Das geht in dem Zahlenbereich des USDSEK aber laufend so.

Ich hatte angenommen, diese Aufgabe sei irgendwo schon gelöst.
Ich habs selber verprobt, ausmultipliziert (integer daraus gewonnen), das double auch ausmultipliziert und verglichen, wenn Abweichung, Ticksize addiert, wieder verprobt, meist klappts im ersten Versuch.
Aber das ist natürlich SEHR heftig und nur EUDV.  Etwas Ungenaue Daten Verarbeitung.

Ich bin froh, dass ich das so reproduzieren könnte. 

frohe Weihnachten!

 

 

 


 
werner111053:

Hallo Carl,

Danke für den Versuch- hier ein kleiner Test:

//*********************************************************

void NormalizeDoubleTest()

//*********************************************************

{

    double doubletest=9.73375;

    doubletest=doubletest/0.00005*0.00005;

    Print("Double vor  Normalize=", doubletest);

    doubletest=NormalizeDouble(doubletest,5);

    Print("Double nach Normalize=", doubletest);

}


Ergebnis:

RP 0 19:44:28.984 BP1Body (EURUSD,M1) Double vor  Normalize=9.733750000000001

RF 0 19:44:36.847 BP1Body (EURUSD,M1) Double nach Normalize=9.733750000000001

 

Wenn Du das an SL oder TP übergibst und updaten willst (mit CTRADE), bekommst du eine Fehlermeldung, weil TP oder SL nicht sauber in TickSize übergeben sind.

Dass NormalizeDouble diese Aufgabe nicht schafft, ist klar:  Die obige Zahl 9.73375 lässt sich eben nicht sauber mit dem DoubleFormat binär darstellen. Sie springt von 9,73374999999999 auf 9.733750000000001.

Das geht in dem Zahlenbereich des USDSEK aber laufend so.

Ich hatte angenommen, diese Aufgabe sei irgendwo schon gelöst.
Ich habs selber verprobt, ausmultipliziert (integer daraus gewonnen), das double auch ausmultipliziert und verglichen, wenn Abweichung, Ticksize addiert, wieder verprobt, meist klappts im ersten Versuch.
Aber das ist natürlich SEHR heftig und nur EUDV.  Etwas Ungenaue Daten Verarbeitung.

Ich bin froh, dass ich das so reproduzieren könnte. 

frohe Weihnachten!

 

 

 


Fertiger Code mit Ergebnis zum nachvollziehen.

#include <Trade\Trade.mqh>
///*********************************************************



//*********************************************************

CTrade cT;
MqlTick lasttick;
void OnInit()
{
double doubletest=9.73375;

doubletest=doubletest/0.00005*0.00005;

Print("Double vor  Normalize=", doubletest);

doubletest=NormalizeDouble(doubletest,SymbolInfoInteger(_Symbol,SYMBOL_DIGITS));

    Print("Double nach Normalize=", doubletest);
    SymbolInfoTick(_Symbol,lasttick);
    cT.PositionOpen(_Symbol,ORDER_TYPE_SELL,1.0,lasttick.bid,doubletest,0,0);  
}

 Und hier das Log dazu

E       0       21:38:47.184    Server  MetaTester 5 stopped
MS      0       21:39:13.813    Startup MetaTester 5 x64 build 1495 (09 Dec 2016)
CG      0       21:39:13.822    Server  MetaTester 5 started on 127.0.0.1:3000
KL      0       21:39:13.822    Startup initialization finished
FK      0       21:39:14.178    127.0.0.1       login (build 1495)
LI      0       21:39:14.192    Network 38520 bytes of account info loaded
NN      0       21:39:14.192    Network 1482 bytes of tester parameters loaded
ED      0       21:39:14.192    Network 188 bytes of input parameters loaded
FS      0       21:39:14.229    Network 24318 bytes of symbols list loaded
LF      0       21:39:14.229    Tester  expert file added: Experts\test22.ex5. 42052 bytes loaded
OG      0       21:39:14.242    Tester  initial deposit 500000.00 EUR, leverage 1:500
QM      0       21:39:14.244    Tester  successfully initialized
EJ      0       21:39:14.244    Network 57 Kb of total initialization data received
JQ      0       21:39:14.244    Tester  AMD Phenom II X4 955 Processor, 12192 MB
FJ      0       21:39:14.314    Symbols EURUSD: symbol to be synchronized
MP      0       21:39:14.317    Symbols EURUSD: symbol synchronized, 3384 bytes of symbol info received
OD      0       21:39:14.318    History EURUSD: history synchronization started
NM      0       21:39:14.320    History EURUSD: load 27 bytes of history data to synchronize in 0:00:00.000
PP      0       21:39:14.320    History EURUSD: history synchronized from 2015.01.02 to 2016.12.16
HF      0       21:39:14.321    Ticks   EURUSD: ticks synchronization started
PQ      0       21:39:14.330    Ticks   EURUSD: load 34 bytes of tick data to synchronize in 0:00:00.000
JJ      0       21:39:14.330    Ticks   EURUSD: history ticks synchronized from 2016.11.01 to 2016.12.16
CF      0       21:39:14.767    History EURUSD,H1: history cache allocated for 11588 bars and contains 11373 bars from 2015.01.02 09:00 to 2016.10.31 23:00
LJ      0       21:39:14.768    History EURUSD,H1: history begins from 2015.01.02 09:00
DO      0       21:39:14.769    Tester  EURUSD,H1 (MetaQuotes-Demo): generating based on real ticks
GL      0       21:39:14.770    Tester  EURUSD,H1: testing of Experts\test22.ex5 from 2016.11.01 00:00 to 2016.11.07 00:00 started
JE      0       21:39:14.788    test22 (EURUSD,H1)      2016.11.01 00:00:00   Double vor  Normalize=9.733750000000001
CJ      0       21:39:14.788    test22 (EURUSD,H1)      2016.11.01 00:00:00   Double nach Normalize=9.733750000000001
CF      0       21:39:14.789    Trade   2016.11.01 00:00:00   instant sell 1.00 EURUSD at 1.09762 sl: 9.73375 (1.09762 / 1.09775)
HQ      0       21:39:14.789    Trades  2016.11.01 00:00:00   deal #2 sell 1.00 EURUSD at 1.09762 done (based on order #2)
DN      0       21:39:14.789    Trade   2016.11.01 00:00:00   deal performed [#2 sell 1.00 EURUSD at 1.09762]
NL      0       21:39:14.789    Trade   2016.11.01 00:00:00   order performed sell 1.00 at 1.09762 [#2 sell 1.00 EURUSD at 1.09762]
QI      0       21:39:14.791    test22 (EURUSD,H1)      2016.11.01 00:00:00   CTrade::OrderSend: instant sell 1.00 EURUSD at 1.09762 sl: 9.73375 [done at 1.09762]
LN      3       21:39:14.963    Ticks   EURUSD : real ticks begin from 2016.11.01 00:00:00
MI      0       21:39:16.637    Trade   2016.11.04 22:59:56   position closed due end of test at 1.11427 [#2 sell 1.00 EURUSD 1.09762 sl: 9.73375]
MJ      0       21:39:16.638    Trades  2016.11.04 22:59:56   deal #3 buy 1.00 EURUSD at 1.11427 done (based on order #3)
IH      0       21:39:16.638    Trade   2016.11.04 22:59:56   deal performed [#3 buy 1.00 EURUSD at 1.11427]
RM      0       21:39:16.638    Trade   2016.11.04 22:59:56   order performed buy 1.00 at 1.11427 [#3 buy 1.00 EURUSD at 1.11427]
DQ      0       21:39:16.638    Tester  final balance 498501.25 EUR
HD      0       21:39:16.638    Tester  EURUSD,H1: 891682 ticks, 95 bars generated. Environment synchronized in 0:00:00.109. Test passed in 0:00:02.344 (including ticks preprocessing 0:00:00.172).
CR      0       21:39:16.638    Tester  EURUSD,H1: total time from login to stop testing 0:00:02.453 (including 0:00:00.109 for history data synchronization)
 
Christian:

Fertiger Code mit Ergebnis zum nachvollziehen.

#include <Trade\Trade.mqh>
///*********************************************************



//*********************************************************

CTrade cT;
MqlTick lasttick;
void OnInit()
{
double doubletest=9.73375;

doubletest=doubletest/0.00005*0.00005;

Print("Double vor  Normalize=", doubletest);

doubletest=NormalizeDouble(doubletest,SymbolInfoInteger(_Symbol,SYMBOL_DIGITS));

    Print("Double nach Normalize=", doubletest);
    SymbolInfoTick(_Symbol,lasttick);
    cT.PositionOpen(_Symbol,ORDER_TYPE_SELL,1.0,lasttick.bid,doubletest,0,0);  
}

 Und hier das Log dazu

E       0       21:38:47.184    Server  MetaTester 5 stopped
MS      0       21:39:13.813    Startup MetaTester 5 x64 build 1495 (09 Dec 2016)
CG      0       21:39:13.822    Server  MetaTester 5 started on 127.0.0.1:3000
KL      0       21:39:13.822    Startup initialization finished
FK      0       21:39:14.178    127.0.0.1       login (build 1495)
LI      0       21:39:14.192    Network 38520 bytes of account info loaded
NN      0       21:39:14.192    Network 1482 bytes of tester parameters loaded
ED      0       21:39:14.192    Network 188 bytes of input parameters loaded
FS      0       21:39:14.229    Network 24318 bytes of symbols list loaded
LF      0       21:39:14.229    Tester  expert file added: Experts\test22.ex5. 42052 bytes loaded
OG      0       21:39:14.242    Tester  initial deposit 500000.00 EUR, leverage 1:500
QM      0       21:39:14.244    Tester  successfully initialized
EJ      0       21:39:14.244    Network 57 Kb of total initialization data received
JQ      0       21:39:14.244    Tester  AMD Phenom II X4 955 Processor, 12192 MB
FJ      0       21:39:14.314    Symbols EURUSD: symbol to be synchronized
MP      0       21:39:14.317    Symbols EURUSD: symbol synchronized, 3384 bytes of symbol info received
OD      0       21:39:14.318    History EURUSD: history synchronization started
NM      0       21:39:14.320    History EURUSD: load 27 bytes of history data to synchronize in 0:00:00.000
PP      0       21:39:14.320    History EURUSD: history synchronized from 2015.01.02 to 2016.12.16
HF      0       21:39:14.321    Ticks   EURUSD: ticks synchronization started
PQ      0       21:39:14.330    Ticks   EURUSD: load 34 bytes of tick data to synchronize in 0:00:00.000
JJ      0       21:39:14.330    Ticks   EURUSD: history ticks synchronized from 2016.11.01 to 2016.12.16
CF      0       21:39:14.767    History EURUSD,H1: history cache allocated for 11588 bars and contains 11373 bars from 2015.01.02 09:00 to 2016.10.31 23:00
LJ      0       21:39:14.768    History EURUSD,H1: history begins from 2015.01.02 09:00
DO      0       21:39:14.769    Tester  EURUSD,H1 (MetaQuotes-Demo): generating based on real ticks
GL      0       21:39:14.770    Tester  EURUSD,H1: testing of Experts\test22.ex5 from 2016.11.01 00:00 to 2016.11.07 00:00 started
JE      0       21:39:14.788    test22 (EURUSD,H1)      2016.11.01 00:00:00   Double vor  Normalize=9.733750000000001
CJ      0       21:39:14.788    test22 (EURUSD,H1)      2016.11.01 00:00:00   Double nach Normalize=9.733750000000001
CF      0       21:39:14.789    Trade   2016.11.01 00:00:00   instant sell 1.00 EURUSD at 1.09762 sl: 9.73375 (1.09762 / 1.09775)
HQ      0       21:39:14.789    Trades  2016.11.01 00:00:00   deal #2 sell 1.00 EURUSD at 1.09762 done (based on order #2)
DN      0       21:39:14.789    Trade   2016.11.01 00:00:00   deal performed [#2 sell 1.00 EURUSD at 1.09762]
NL      0       21:39:14.789    Trade   2016.11.01 00:00:00   order performed sell 1.00 at 1.09762 [#2 sell 1.00 EURUSD at 1.09762]
QI      0       21:39:14.791    test22 (EURUSD,H1)      2016.11.01 00:00:00   CTrade::OrderSend: instant sell 1.00 EURUSD at 1.09762 sl: 9.73375 [done at 1.09762]
LN      3       21:39:14.963    Ticks   EURUSD : real ticks begin from 2016.11.01 00:00:00
MI      0       21:39:16.637    Trade   2016.11.04 22:59:56   position closed due end of test at 1.11427 [#2 sell 1.00 EURUSD 1.09762 sl: 9.73375]
MJ      0       21:39:16.638    Trades  2016.11.04 22:59:56   deal #3 buy 1.00 EURUSD at 1.11427 done (based on order #3)
IH      0       21:39:16.638    Trade   2016.11.04 22:59:56   deal performed [#3 buy 1.00 EURUSD at 1.11427]
RM      0       21:39:16.638    Trade   2016.11.04 22:59:56   order performed buy 1.00 at 1.11427 [#3 buy 1.00 EURUSD at 1.11427]
DQ      0       21:39:16.638    Tester  final balance 498501.25 EUR
HD      0       21:39:16.638    Tester  EURUSD,H1: 891682 ticks, 95 bars generated. Environment synchronized in 0:00:00.109. Test passed in 0:00:02.344 (including ticks preprocessing 0:00:00.172).
CR      0       21:39:16.638    Tester  EURUSD,H1: total time from login to stop testing 0:00:02.453 (including 0:00:00.109 for history data synchronization)

Danke für Deine Mühe, Christian.
Das ist der Beweis, dass SendOrder Sl (mithin TP) auch doubles akzeptiert, die im Rahmen der Darstellungsgenauigkeit "abliefern".

Ich hatte aber erwähnt, dass der Effekt bei Update (Modify) auftrat. 

m_trade.PositionModify(symbol, SL, TP);  

Bei mir sah das vor ca. 10 Tagen vor Entwicklung der Routine, die "glatte" doubles abliefert, so aus (bei USDSEK( Stoplevel 0)), siehe Anhang.
Wie auch immer- die Sache ist jetzt im Griff.
Mich hat sehr beeindruckt, wie schnell Du zu dem Problem einen HistoryTest aufgebaut hast- vielen Dank dafür - und für die Anregung es an langen Wochenenden genau so zu machen.

Jetzt zum Weihnachtsbraten:-)
Werner 


 

Dateien:
 

Na dann leg ich noch einen nach Werner 

Wir wollen doch genau sein , so wie dein Double Wert :-)

 

Code direkt ausführbar 

#include <Trade\Trade.mqh>

CTrade cT;


MqlTick lasttick;
void OnInit()
{
      double doubletest=9.73375;
      
      doubletest=doubletest/0.00005*0.00005;
      
      Print("Double vor  Normalize=", doubletest);
      
      doubletest=NormalizeDouble(doubletest,SymbolInfoInteger(_Symbol,SYMBOL_DIGITS));
      
      Print("Double nach Normalize=", doubletest);
          
      SymbolInfoTick(_Symbol,lasttick);
      Sleep(1000);
      cT.PositionOpen(_Symbol,ORDER_TYPE_SELL,1.0,lasttick.bid,doubletest,0,0);
      double newSL = doubletest-1;  
      cT.PositionModify(2,newSL,0);
    
}


 Und dazu die Log 

OI      0       13:16:53.353    127.0.0.1       login (build 1495)
ER      0       13:16:53.359    Tester  account info found
FK      0       13:16:53.360    Network 1482 bytes of tester parameters loaded
JL      0       13:16:53.361    Tester  expert file added: Experts\Test\test23.ex5. 42581 bytes loaded
DH      0       13:16:53.378    Tester  initial deposit 3000.00 EUR, leverage 1:300
HS      0       13:16:53.382    Tester  successfully initialized
KF      0       13:16:53.383    Network 43 Kb of total initialization data received
GN      0       13:16:53.383    Tester  Intel Core i5-4200U  @ 1.60GHz, 8072 MB
FI      0       13:16:53.438    History EURUSD: history synchronization started
FQ      0       13:16:53.440    History EURUSD: load 27 bytes of history data to synchronize in 0:00:00.000
IL      0       13:16:53.440    History EURUSD: history synchronized from 2015.01.02 to 2016.09.08
EG      0       13:16:53.441    Ticks   EURUSD: ticks synchronization started
PP      0       13:16:53.445    Ticks   EURUSD: load 34 bytes of tick data to synchronize in 0:00:00.000
OM      0       13:16:53.445    Ticks   EURUSD: history ticks synchronized from 2016.09.01 to 2016.09.07
KE      0       13:16:53.953    History EURUSD,M15: history cache allocated for 42240 bars and contains 41334 bars from 2015.01.02 09:00 to 2016.08.31 23:45
RH      0       13:16:53.958    History EURUSD,M15: history begins from 2015.01.02 09:00
FR      0       13:16:53.959    Tester  EURUSD,M15 (ForexTimeFXTM-MT5): generating based on real ticks
IM      0       13:16:53.960    Tester  EURUSD,M15: testing of Experts\Test\test23.ex5 from 2016.09.01 00:00 to 2016.09.08 00:00 started
OR      0       13:16:53.979    test23 (EURUSD,M15)     2016.09.01 00:00:00   Double vor  Normalize=9.733750000000001
LI      0       13:16:53.979    test23 (EURUSD,M15)     2016.09.01 00:00:00   Double nach Normalize=9.733750000000001
JH      3       13:16:54.029    Ticks   EURUSD : 2016.09.01 23:59 - real ticks absent for 1 minutes out of 1437 total minute bars within a day
DF      3       13:16:54.029    Ticks   EURUSD : 2016.09.01 23:59 - real ticks discarded for 1 minutes out of 1437 total minute bars within a day
EF      3       13:16:54.029    Ticks   EURUSD : 2016.09.01 23:59 - 22 tick prices mismatch for 3 minute bars
CO      3       13:16:54.159    Ticks   EURUSD : real ticks begin from 2016.09.01 00:00:00
LR      3       13:16:54.159    Ticks   EURUSD : 2016.09.01 00:00 - 2016.09.08 00:00  real ticks absent for 1 minutes of 7179 total minute bars, every tick generation used
HL      3       13:16:54.159    Ticks   EURUSD : 2016.09.01 00:00 - 2016.09.08 00:00  real ticks discarded for 1 minutes of 7179 total minute bars, every tick generation used
LJ      3       13:16:54.159    Ticks   EURUSD : 2016.09.01 00:00 - 2016.09.08 00:00  tick volumes not matched for 2 minute bars
ER      3       13:16:54.159    Ticks   EURUSD : 2016.09.01 00:00 - 2016.09.08 00:00  tick prices of 22 ticks not matched for 3 minute bars
GR      3       13:16:54.159    Ticks   EURUSD : 2016.09.01 00:00 - 2016.09.08 00:00  last prices absent for 9 minute bars, bid prices used
LL      0       13:16:54.159    Trade   2016.09.01 00:00:01   exchange sell 1.00 EURUSD at 1.11571 sl: 9.73375 (1.11571 / 1.11574)
GN      0       13:16:54.159    Trades  2016.09.01 00:00:01   deal #2 sell 1.00 EURUSD at 1.11571 done (based on order #2)
DN      0       13:16:54.159    Trade   2016.09.01 00:00:01   deal performed [#2 sell 1.00 EURUSD at 1.11571]
CG      0       13:16:54.159    Trade   2016.09.01 00:00:01   order performed sell 1.00 at 1.11571 [#2 sell 1.00 EURUSD at 1.11571]
QG      0       13:16:54.163    test23 (EURUSD,M15)     2016.09.01 00:00:01   CTrade::OrderSend: exchange sell 1.00 EURUSD sl: 9.73375 [done]
HG      0       13:16:54.163    Trade   2016.09.01 00:00:01   position modified [#2 sell 1.00 EURUSD 1.11571 sl: 8.73375]
PK      0       13:16:54.163    test23 (EURUSD,M15)     2016.09.01 00:00:01   CTrade::OrderSend: modify position #2 EURUSD (sl: 8.73375, tp: 0.00000) [done]
JJ      0       13:16:55.650    Trade   2016.09.07 23:58:33   position closed due end of test at 1.12400 [#2 sell 1.00 EURUSD 1.11571 sl: 8.73375]
GJ      0       13:16:55.650    Trades  2016.09.07 23:58:33   deal #3 buy 1.00 EURUSD at 1.12400 done (based on order #3)
MI      0       13:16:55.650    Trade   2016.09.07 23:58:33   deal performed [#3 buy 1.00 EURUSD at 1.12400]
JR      0       13:16:55.650    Trade   2016.09.07 23:58:33   order performed buy 1.00 at 1.12400 [#3 buy 1.00 EURUSD at 1.12400]
ML      0       13:16:55.650    Tester  final balance 2259.25 EUR
FD      0       13:16:55.650    Tester  EURUSD,M15: 933866 ticks, 480 bars generated. Environment synchronized in 0:00:00.063. Test passed in 0:00:02.234 (including ticks preprocessing 0:00:00.188).
CP      0       13:16:55.650    Tester  EURUSD,M15: total time from login to stop testing 0:00:02.297 (including 0:00:00.063 for history data synchronization)
HR      0       13:16:55.660    Tester  1 Mb memory used, 2 Mb of history data, 64 Mb of tick data


 Somit ist das Problem nun gelöst. Frohes Fest weiterhin !

Grund der Beschwerde: