3ヶ月前に書いたEAが、今はストラテジーテストを通過できないが、2~3ヶ月前はうまく動作していた!

 
3ヶ月前に書いたEAが今試験に通らないのですが、MetaQuotes-Demoサーバーではうまく動いていました。 同じ問題に遭遇した方はいらっしゃいますか?エラーコードは、常に "1.38103で0.10 EURUSDをインスタント販売に失敗しました sl:1.38253 tp:1.38053 [Invalid request]" と "OrderSend failed with error #4756 ".My version is 5.00 Build 540 .助けて、私は完全に混乱しています。
-----------------------------------------------------------------------------------
もし(condition1)
{
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol=_Symbol.Sell.Symbol.Sell.Symbol。
sell.deviation = 0;
sell.price = NormalizeDouble(mtick.bid,_Digits);
sell.volume = 0.1;
sell.tp = NormalizeDouble(sell.price - mtp*_Point,_Digits)。
sell.sl = NormalizeDouble(sell.price + msl*_Point,_Digits)。
sell.type_filling =ORDER_FILLING_AON;
if(OrderSend(sell,result_sell)==false))。
{
Print("OrderSendはエラー#で失敗しました",GetLastError());
ResetLastError()を実行します。
}
}
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

ZeroMemory(sell)を追加してみて ください。

if (condition1)
{
ZeroMemory(sell);
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol = _Symbol; 
この問題は修正されましたので、次のビルドをお待ちください。
 
Rosh:

ZeroMemory(sell)を追加してみてください。

次のビルドをお待ちください。

Roshさん、.565にアップデートしたところ、同じメッセージ#4756が表示されました。

ZeroMemory(struct)は役に立ちますね。それで、それは修正されたのか、まだなのか?

ありがとうございます。

 
Rosh:

ZeroMemory(sell)を追加してみてください。

この問題は修正されていますので、次のビルドをお待ちください。

注文の組み方は全く同じなのに、同じエラーが出ます。 どうしてでしょうか? 私はビルド597を使っています。

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 Alert: Buy order request couldn't be completed -error:4756

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 failed market buy 0.10 EURUSD sl: 1.32438 tp: 1.33738 [Unsupported filling mode] (サポートされない充填モード)。

if(Buy_Condition_3 && Buy_Condition_4)

{

// 買いのポジションが開いているか?

if(Buy_opened)

{

Alert("We already have a Buy Position!!!");

return; // 新規に買いポジションを建てないでください。

}

ZeroMemory(mrequest);

mrequest.action = TRADE_ACTION_DEAL; // 即時注文実行

mrequest.type = ORDER_TYPE_BUY; // 買い注文

mrequest.symbol = _Symbol; // 通貨ペア

mrequest.deviation=0; // 現在の価格からの偏差

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新のアスク価格

mrequest.volume=Lot(ロット); // ロット数volume = Lot; // 取引するロット数

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // 利益確定値

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits);//ストップロス

mrequest.type_filling =ORDER_FILLING_AON; // 注文の実行タイプ

//--- 注文を送信

OrderSend(mrequest,mresult);

// 結果コードを取得

if(mresult.retcode==10009 || mresult.retcode==10008) // リクエスト完了または注文成立

{

Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!");

}

その他

{

Alert("買い注文のリクエストを完了できませんでした -error:",GetLastError()).ResetLastError(); } else { "買い注文のリクエストを完了できませんでした。

ResetLastError()を実行します。

を返します。

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

MQL5のリファレンス(本日更新されたばかりの最新版)を見ると、ORDER_FILLING_AONがなくなっていますが、ORDER_FILLING_FOKを使っても、エラー4756が発生します。 助言をお願いします。

enum_order_type_filling

識別子

説明

オーダーフィリングフォック

注文指定価格と同等かそれ以上の価格で、指定数量を独占的に約定させることができる取引。注文シンボルに十分な数量のオファーがない場合、その注文は執行されません。このタイプのフィリングは SYMBOL_TRADE_EXECUTION_INSTANT またはSYMBOL_TRADE_EXECUTION_REQUEST実行モードで使用さ れます。

オーダーフィリング_ioc

注文指定価格と同価格またはそれ以上の価格で、市場最大数量の取引を執行する契約。この場合、未約定数量に対する追加注文は行われません。 このタイプのフィリングは トレードサーバー上のシンボル設定に応じて SYMBOL_TRADE_EXECUTION_MARKETと SYMBOL_TRADE_EXECUTION_EXCHANGE 実行モードで使用さ れます。

オーダーフィリングリターン

注文指定価格と同価格またはそれ以上の価格で最大出来高の取引を執行する契約。この場合、未約定数量分の追加注文が発注されます。このタイプのフィリングは、未約定注文(TRADE_ACTION_PENDING)に対してのみ使用 されます。

 
こんにちは、MT5をあきらめてMT4に戻る前に何かコメントをお願いします。 ありがとうございます。実は両方とも初めてなのですが、MT5が非常に新しいことは知っていますが、まずMT5を試してみようと思います。
 
lingwuchung:
こんにちは、私がMT5をあきらめてMT4に戻る前に何かコメントはありませんか? ありがとうございます。実はどちらも初心者なのですが、MT5がとても新しいのは知っていますが、まずはMT5を試してみようと思います。

mrequestの前にこれを追加してください。

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 

私はあなたと全く同じ問題を抱えていたのですが、それは私のためにそれを修正しました。

 

私も今同じ問題を抱えています。

私の専門家の顧問は非常によく働いていた。しかし、今、それらのすべては、テスターを渡すことができません。

私はファイルの、次の messege を表示されるコンパイルするとき。

'ORDER_FILLING_AON' - 未宣言の識別子

この問題はどのように解決できるのでしょうか?

端末のアップデートの結果でしょうか?(Version 5.00 Build 642)

(2012年4月24日)

誰かが私を助けることができることを望みます

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 
lamme.vandriel:

そのファイルをコンパイルすると、次のようなメッセージが表示されます。

ORDER_FILLING_AON' - 未宣言の識別子です。

この問題はどうすれば解決できますか?

ORDER_FILLING_AONをORDER_FILLING_FOKに置き換えてください(オーダーのプロパティを 参照してください)。

 
JohnnyDoe:

mrequestの前にこれを追加してください。

私もあなたと全く同じ問題を抱えていたのですが、これで解決しました。

こんにちは、私はコードに これらの2行を追加しましたが、エラー4756はまだここにある(貿易要求の送信に失敗)。

この2行はどこに追加すればいいのでしょうか?mrequestに関するものはすでに存在しています。その2つを追加しても私には何も変わりません。助けてくれてありがとうございます。

私はrel.5 build 842を実行しています。

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 
 
Vivaldi:

こんにちは、私はコードに これらの2行を追加しましたが、エラー4756はまだここにある(貿易要求の送信に失敗)。

具体的にどこにこの2行を追加すればいいのか、教えていただけませんか?mrequestに関するものはすでに存在しています。その2つを追加しても私には何も変わりません。助けてくれてありがとうございます。

私はrel.5 build 842を実行しています。

この行を追加する場所を言うことができるように、あなたのコードを表示します。
理由: