//+------------------------------------------------------------------+ //| Get the property value "ORDER_TYPE_FILLING" | //+------------------------------------------------------------------+ ENUM_ORDER_TYPE_FILLING COrderInfo::TypeFilling(void) const { return((ENUM_ORDER_TYPE_FILLING)OrderGetInteger(ORDER_TYPE_FILLING)); }
SBで注文を修正しても取引所では通用しないという理解でいいのでしょうか?
//| 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));
}
設定されていない。
//| Get the property value "ORDER_TYPE_FILLING" |
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING COrderInfo::TypeFilling(void) const
{
return((ENUM_ORDER_TYPE_FILLING)OrderGetInteger(ORDER_TYPE_FILLING));
}
テスターでは常にENUM_ORDER_TYPE_FILLING::ORDER_FILLING_RETURN が返されます。
フィリングがセットされていない。
そのため、COrderInfo::TypeFilling()を使ってOrderModifyでフィリングを設定すると、RoboForexEU-MetaTrader 5では[Unsupported filling mode] という論理エラーが発生することになるのです。しかし、MetaQuotes-Demoではこのエラーは発生しません。開発者のサーバーの設定が間違っているのでしょうか?
SBで注文を修正しても取引所では通用しないという理解でいいのでしょうか?
//| 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));
}
それはない。
慌てないでください。
{
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:
慌てないで!
//| 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));
}
なぜ、塗りつぶしの種類を指定するのですか?
ドキュメントより
ストップロスやテイクプロフィットのレベルを変更するための取引注文。4 (jamb:))のフィールドを指定する必要がある。
ちょっと待って、なぜモディファイ時に塗りつぶしの種類をまったく指定しないのですか?
ドキュメントより
すべてを鵜呑みにしてはいけない。指定しなければならない(MUST)。そうでない場合は、動作しません。
SBが使えない。しかし、バグを確認するために、取引所でのOrderModifyを試すことができます。
書かれていることをすべて信じてはいけない。指定する必要があります。そうでないと、うまくいきません。
全く同感ですが
SBの使い方がわからない。しかし、取引所でのOrderModifyを試してみて、バグを確認することができます。
でも、MQはドキュメントに例まで追加して......。そこには表示されていないのですが...。
また、私が書いたExpert Advisorが あり、これは取引所で動作し、このようなコードの一部を使用しています。
trade.OrderModify( order.Ticket(), order.PriceOpen(), newSl, newTp, order.TypeTime(), 0 );
でも、MQはドキュメントに例題まで追加して......。示していない...
違うよ、みんな。ドコモとSBの両方を是正しなければならない。
また、私が書いた 取引所で動作するEAで、そのようなコードの一部を使用しているものがあります。
trade.OrderModify( order.Ticket(), order.PriceOpen(), newSl, newTp, order.TypeTime(), 0 );
テスターでは?
違うよ、みんな。ドコモとSBの両方を修正する必要があります。
違うよ、みんな。ドコモとSBの両方を修正する必要があります。
テスターでは?