Es ist schwierig, Bestellungen zu versenden. - Seite 2

 
"2014.04.02 00:19:50.590 2010.10.15 00:00:00 fehlgeschlagener Devisenkauf 0,07 GBPUSD zu 1,60082[Ungültiges Volumen]"

 
MetaNt:
"2014.04.02 00:19:50.590 2010.10.15 00:00:00 fehlgeschlagener Devisenkauf 0,07 GBPUSD zu 1,60082 [Ungültiges Volumen]"

Bitte führen Sie dieses kleine Skript auf einem GBPUSD-Chart aus und melden Sie das Ergebnis.

void OnStart()
  {
   printf("Volume min = %f, volume step = %f for symbol %s.",
          SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN),
          SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP),
          _Symbol);

  }
 
angevoyageur:

Bitte führen Sie dieses kleine Skript auf einem GBPUSD-Chart aus und melden Sie das Ergebnis.

Entschuldigung, ich habe den Beitrag nicht gesehen. Ich war mit einigen Problemen beschäftigt, die ich mit der mql4-Version im Demo-Modus hatte.

Ich werde das Skript ausführen, danke.

 

Bericht

"2014.04.02 15:11:27.158 Lot (GBPUSD,D1) Volume min = 0.010000, volume step = 0.010000 for symbol GBPUSD."

 
MetaNt:

Bericht

"2014.04.02 15:11:27.158 Lot (GBPUSD,D1) Volume min = 0.010000, volume step = 0.010000 for symbol GBPUSD."

Das ist seltsam. Können Sie den gesamten relevanten Code posten, einschließlich des Orderend-Aufrufs und der Fehlerverarbeitung (Druck)?
 
angevoyageur:
Das ist seltsam. Können Sie den gesamten relevanten Code posten, einschließlich des Aufrufs von ordersend und der Fehlerverarbeitung (Drucken)?

Ja, es ist unten wie gewünscht

Lot=LotSize/8;


MqlTradeResult StageOneBuyRes={0};
MqlTradeRequest StageOneBuy={0};

StageOneBuy.action=TRADE_ACTION_DEAL;  
StageOneBuy.magic=MagicNumber;  
StageOneBuy.symbol=_Symbol;            // symbol
StageOneBuy.volume=Lot;
StageOneBuy.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
StageOneBuy.sl=0;                  // Stop Loss is not specified
StageOneBuy.tp=0;                 // Take Profit is not specified 
StageOneBuy.deviation =7;  
StageOneBuy.type=ORDER_TYPE_BUY; // order type
StageOneBuy.type_filling = ORDER_FILLING_FOK;
StageOneBuy.comment = "test";
 

MqlTradeResult StageOneSellRes={0};
MqlTradeRequest StageOneSell={0};

StageOneSell.action=TRADE_ACTION_DEAL;  
StageOneSell.magic=MagicNumber;  
StageOneSell.symbol=_Symbol;            // symbol
StageOneSell.volume=Lot;
StageOneSell.price=SymbolInfoDouble(_Symbol,SYMBOL_BID);
StageOneSell.sl=0;                  // Stop Loss is not specified
StageOneSell.tp=0;                 // Take Profit is not specified 
StageOneSell.deviation =7;  
StageOneSell.type=ORDER_TYPE_SELL; // order type
StageOneSell.type_filling = ORDER_FILLING_FOK;
StageOneSell.comment = "test";

if(SymbolInfoInteger(_Symbol,SYMBOL_SESSION_DEALS)==0){if(OrderSend(StageOneBuy,StageOneBuyRes))buyticket1=(int)OrderGetInteger(ORDER_POSITION_ID);}
       if(buyticket1>0){Print("Order Placed ","Order Ticket ", buyticket1," Order Lots ",OrderGetDouble(ORDER_VOLUME_INITIAL));return;}else{Print("Order Placement Unsuccessful ", GetLastError());return;}

if(SymbolInfoInteger(_Symbol,SYMBOL_SESSION_DEALS)==0){if(OrderSend(StageOneSell,StageOneSellRes))sellticket1=(int)OrderGetInteger(ORDER_POSITION_ID);}
       if(sellticket1>0){Print("Order Placed ","Order Ticket ", sellticket1," Order Lots ", OrderGetDouble(ORDER_VOLUME_INITIAL));return;}else{Print("Order Placement Unsuccessful ", GetLastError());return;}
 
MetaNt:

Ja, es ist unten wie gewünscht


Dieser Code ist nicht richtig, Sie können ihn nicht so verwenden, wie Sie es tun.

buyticket1=(int)OrderGetInteger(ORDER_POSITION_ID);

Sie müssen die StageOneBuyRes-Struktur verwenden, um Informationen über Ihre Bestellung/Ihr Geschäft zu erhalten. Bitte schauen Sie in der Dokumentation nach oder suchen Sie auf der Website nach Beispielen für die Verwendung von OrderSend(), es funktioniert nicht wie mit mql4.

Ihr Code gibt wahrscheinlich einen Fehler zurück, wo keiner ist. Haben Sie das Terminal überprüft, um zu sehen, ob eine Position geöffnet oder erhöht wurde?

Als Randbemerkung, aber nicht zu diesem Thema gehörend, tut der folgende Code wahrscheinlich nicht das, was Sie denken, dass er tut.

SymbolInfoInteger(_Symbol,SYMBOL_SESSION_DEALS)
 

Richtig, ich werde das korrigieren.

Ich bin mir nicht sicher, was Sie mit der Überprüfung des Terminals meinen, da dort keine Backtesting-Ergebnisse angezeigt werden.

 
MetaNt:

Richtig, ich werde das korrigieren.

Ich bin mir nicht sicher, was Sie mit der Überprüfung des Terminals meinen, da dort keine Backtesting-Ergebnisse angezeigt werden.

Ah ok, ich habe nicht verstanden, dass es ein Backtesting war.
 
angevoyageur:

Dieser Code ist nicht richtig, Sie können ihn nicht so verwenden, wie Sie es tun.

Sie müssen die StageOneBuyRes-Struktur verwenden, um Informationen über Ihre Bestellung/Ihr Geschäft zu erhalten. Hauptsächlich müssen Sie den Retcode überprüfen, bitte sehen Sie in der Dokumentation nach oder suchen Sie auf der Website nach Beispielen für die Verwendung von OrderSend(), es funktioniert nicht wie mit mql4.


Übrigens, wie wird der Fehler angezeigt?