Antwort

OrdersHistoryTotal() gibt 0 zurück

4 Antworten

Steve Grün

Abonnent, bbp_participant, Gemeinschaft, 47 Antworten.

Profil besuchen

vor 5 Jahren #238359

Hallo,

Ich versuche, die letzte Ordergröße für eine bestimmte Magicnumber und ein Symbol zu erhalten, aber OrdersHistoryTotal() gibt immer 0 zurück, obwohl ich Orders in meinem Account History Tab auf meinem mt4 Terminal habe.

 

Mein Code ist unten.

 

extern int lv_hour = 6;
extern int lv_minute = 0;
extern int lv_orderMagicNumber = 0; // hier die korrekte Magicnumber eingeben

int lv_count = 0;

double lv_DefaultPositionSize = 5;
double lv_ReturnPositionSize = 0;

void start()
{
if (TimeHour(Time[0]) == lv_hour && Minute() == lv_minute && lv_count == 0)
{
lv_ReturnPositionSize = sqGetLastPositionSize(lv_orderMagicNumber);

if (lv_ReturnPositionSize != 0)
{
lv_DefaultPositionSize = lv_ReturnPositionSize; //Standardpositionsgröße überschreiben
}
printf("lv_DefaultPositionSize = " +lv_DefaultPositionSize);

lv_count = 1; // stellt sicher, dass es nur einmal im Journal gedruckt wird
}
}

double sqGetLastPositionSize(int orderMagicNumber) {
for(int i=OrdersHistoryTotal(); i>=0; i-) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true && OrderSymbol() == Symbol()) {
if(orderMagicNumber == 0 || OrderMagicNumber() == orderMagicNumber) {
return(OrderLots());
}
}
}

zurück(0);
}

 

 

Vielen Dank im Voraus

Steve

 

0

coensio

Kunde, bbp_participant, Gemeinschaft, 106 Antworten.

Profil besuchen

vor 5 Jahren #238361

Sie könnten zum Beispiel eine kleine Fehlersuche durchführen und herausfinden, wo es schief läuft.

double sqGetLastPositionSize(int orderMagicNumber) {
for(int i=OrdersHistoryTotal(); i>=0; i-) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true && OrderSymbol() == Symbol())

{

Print("Symbol:",OrderSymbol());
if(orderMagicNumber == 0 || OrderMagicNumber() == orderMagicNumber) {

Print("Magic: ",OrderMagicNumber());
return(OrderLots());
}
}
}

zurück(0);
}

Dies ist eine falsche Aussage.

0

Steve Grün

Abonnent, bbp_participant, Gemeinschaft, 47 Antworten.

Profil besuchen

vor 5 Jahren #238362

Danke Coensie,

 

 

Haben Sie Ihren Code ausgeführt. Es geht nicht einmal in die if(OrderSelect-Anweisung als OrderSymbol() kehrt als NULL und ich spekulieren OrderSelect kehrt als falsch das ist warum?

 

siehe Modifikation Ihrer Funktion sqGetLastPositionSize unten:

 

double sqGetLastPositionSize(int orderMagicNumber) {
for(int i=OrdersHistoryTotal(); i>=0; i-) {
Print("OrderSymbol():",OrderSymbol());
Print("Symbol():",Symbol());
Print("OrderMagicNumber():",OrderMagicNumber());

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true && OrderSymbol() == Symbol())

{

Print("Symbol:",OrderSymbol());
if(orderMagicNumber == 0 || OrderMagicNumber() == orderMagicNumber) {

Print("Magic: ",OrderMagicNumber());
return(OrderLots());
}
}
}

zurück(0);
}

 

 

 

Irgendwelche Ideen?

0

coensio

Kunde, bbp_participant, Gemeinschaft, 106 Antworten.

Profil besuchen

vor 5 Jahren #238365

Dieser wurde auf meinem Konto verifiziert:

 

double sqGetLastPositionSize(int orderMagicNumber)
{
for(int i=OrdersHistoryTotal()-1; i>=0; i-)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if(OrderSymbol() == Symbol())
{
if(orderMagicNumber == 0 || OrderMagicNumber() == orderMagicNumber)
{
Print("Magic:",OrderMagicNumber()," OrderLots: ",OrderLots());
return(OrderLots());
}
}
}
zurück(0);
}

Dies ist eine falsche Aussage.

0

Steve Grün

Abonnent, bbp_participant, Gemeinschaft, 47 Antworten.

Profil besuchen

vor 5 Jahren #238369

 

Funktioniert immer noch nicht, vielleicht weil es ein Demokonto ist?

 

Meine letzte Bestellung war:

166861186 2019.01.24 08:00:01 kaufen 0,79 usdjpy 109,625 109,690 0,000 2019.01.24 08:37:29 109,691 0,00 0,00 0,00 47,53

 

 

Dies war meine Ausgabe von Ihrem Code:

2019.01.26 12:39:35.900 USDJPY,H1: 109397 Tick-Ereignisse (24 Balken, 110397 Balkenzustände) verarbeitet in 0:00:00.016 (Gesamtdauer 0:00:02.359)2019.01.26 12:39:35.900 USDJPY,H1: 109397 Tick-Ereignisse (24 Balken, 110397 Balkenzustände) verarbeitet in 0:00:00.016 (Gesamtdauer 0:00:02.359)2019.01.26 12:39:35.892 2019.01.25 06:00:00 dummy USDJPY,H1: lv_DefaultPositionSize = 52019.01.26 12:39:35.889 2019.01.25 00:00:00 dummy inputs: lv_hour=6; lv_minute=0; lv_orderMagicNumber=2670682; 2019.01.26 12:39:33.536 TestGenerator: current spread 14 used

0

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)