Fehler, Irrtümer, Fragen - Seite 1739
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Verstehe ich das richtig, dass die Änderung von Aufträgen durch SB bei einem Austausch nicht funktioniert?
//| Modify specified pending order |
//+------------------------------------------------------------------+
bool CTrade::OrderModify(const ulong ticket,const double price,const double sl,const double tp,
const ENUM_ORDER_TYPE_TIME type_time,const datetime expiration,const double stoplimit)
{
//--- check stopped
if(IsStopped(__FUNCTION__))
return(false);
//--- clean
ClearStructures();
//--- setting request
m_request.action =TRADE_ACTION_MODIFY;
m_request.magic =m_magic;
m_request.order =ticket;
m_request.price =price;
m_request.stoplimit =stoplimit;
m_request.sl =sl;
m_request.tp =tp;
m_request.type_time =type_time;
m_request.expiration =expiration;
//--- action and return the result
return(OrderSend(m_request,m_result));
}
Sie ist nicht festgelegt.
//| Get the property value "ORDER_TYPE_FILLING" |
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING COrderInfo::TypeFilling(void) const
{
return((ENUM_ORDER_TYPE_FILLING)OrderGetInteger(ORDER_TYPE_FILLING));
}
Gibt im Tester IMMERENUM_ORDER_TYPE_FILLING::ORDER_FILLING_RETURN zurück.
Die Füllung ist nicht fest.
Wenn Sie also die Füllung in OrderModify über COrderInfo::TypeFilling() einstellen, dann wird im RoboForexEU-MetaTrader 5 ein logischer Fehler [Unsupported filling mode] auftreten. Dieser Fehler tritt jedoch nicht in MetaQuotes-Demo auf - falsch konfigurierter Server des Entwicklers?
Verstehe ich das richtig, dass die Änderung von Aufträgen durch SB bei einem Austausch nicht funktioniert?
//| Modify specified pending order |
//+------------------------------------------------------------------+
bool CTrade::OrderModify(const ulong ticket,const double price,const double sl,const double tp,
const ENUM_ORDER_TYPE_TIME type_time,const datetime expiration,const double stoplimit)
{
//--- check stopped
if(IsStopped(__FUNCTION__))
return(false);
//--- clean
ClearStructures();
//--- setting request
m_request.action =TRADE_ACTION_MODIFY;
m_request.magic =m_magic;
m_request.order =ticket;
m_request.price =price;
m_request.stoplimit =stoplimit;
m_request.sl =sl;
m_request.tp =tp;
m_request.type_time =type_time;
m_request.expiration =expiration;
//--- action and return the result
return(OrderSend(m_request,m_result));
}
Das ist nicht der Fall.
Keine Panik!
{
protected:
MqlTradeRequest m_request; // request data
MqlTradeResult m_result; // result data
MqlTradeCheckResult m_check_result; // result check data
bool m_async_mode; // trade mode
ulong m_magic; // expert magic number
ulong m_deviation; // deviation default
ENUM_ORDER_TYPE_FILLING m_type_filling;
ENUM_ACCOUNT_MARGIN_MODE m_margin_mode;
//---
ENUM_LOG_LEVELS m_log_level;
public:
Keine Panik!
//| Modify specified pending order |
//+------------------------------------------------------------------+
bool CTrade::OrderModify(const ulong ticket,const double price,const double sl,const double tp,
const ENUM_ORDER_TYPE_TIME type_time,const datetime expiration,const double stoplimit)
{
//--- check stopped
if(IsStopped(__FUNCTION__))
return(false);
//--- clean
ClearStructures();
//--- setting request
m_request.action =TRADE_ACTION_MODIFY;
m_request.magic =m_magic;
m_request.order =ticket;
m_request.price =price;
m_request.stoplimit =stoplimit;
m_request.sl =sl;
m_request.tp =tp;
m_request.type_time =type_time;
m_request.expiration =expiration;
//--- action and return the result
return(OrderSend(m_request,m_result));
}
//| Modify specified pending order |
//+------------------------------------------------------------------+
bool CTrade::OrderModify(const ulong ticket,const double price,const double sl,const double tp,
const ENUM_ORDER_TYPE_TIME type_time,const datetime expiration,const double stoplimit)
{
//--- check stopped
if(IsStopped(__FUNCTION__))
return(false);
//--- clean
ClearStructures();
//--- setting request
m_request.action =TRADE_ACTION_MODIFY;
m_request.magic =m_magic;
m_request.order =ticket;
m_request.price =price;
m_request.stoplimit =stoplimit;
m_request.sl =sl;
m_request.tp =tp;
m_request.type_time =type_time;
m_request.expiration =expiration;
//--- action and return the result
return(OrderSend(m_request,m_result));
}
Moment, warum sollte man beim Ändern überhaupt den Fülltyp angeben?
Aus der Dokumentation:
Handelsauftrag zur Änderung der StopLoss- und/oder TakeProfit-Ebenen. Erfordert die Angabe von 4 (jamb:)) Feldern:
Moment, warum sollte man beim Ändern überhaupt den Fülltyp angeben?
Aus der Dokumentation:
Glauben Sie nicht alles, was dort steht. Sie MUSS angegeben werden. Andernfalls wird es nicht funktionieren.
Ich kann SB nicht verwenden. Aber Sie können OrderModify auf der Börse ausprobieren, um sicherzugehen, dass der Fehler vorliegt.
Glauben Sie nicht alles, was geschrieben wird. Sie MÜSSEN angeben. Sonst wird es nicht funktionieren.
Ich stimme dem völlig zu, aber...
Ich weiß nicht, wie man SB benutzt. Sie können jedoch OrderModify an der Börse ausprobieren, um sich des Fehlers zu vergewissern.
Aber MQ hat sogar ein Beispiel in das Dokument eingefügt... Es ist dort nicht angegeben...
Es gibt auch einen Expert Advisor, den ich geschrieben habe, der an der Börse funktioniert und einen solchen Code verwendet:
trade.OrderModify( order.Ticket(), order.PriceOpen(), newSl, newTp, order.TypeTime(), 0 );
Aber MQ hat dem Dokument sogar ein Beispiel beigefügt... Es wird nicht spezifiziert...
Falsch, Leute. Wir müssen sowohl Doc als auch SB korrigieren.
Es gibt auch einen EA, den ich geschrieben habe, der an einer Börse arbeitet und einen solchen Code verwendet:
trade.OrderModify( order.Ticket(), order.PriceOpen(), newSl, newTp, order.TypeTime(), 0 );
Und im Testgerät?
Falsch, Leute. Sie müssen sowohl den Doc als auch den SB korrigieren.
Falsch, Leute. Sie müssen sowohl den Doc als auch den SB korrigieren.
Und im Testgerät?