エラー4756 - ページ 4

 
RaptorUK:

ストラテジーテスターで同じ問題が発生したことを確認します。どのように発生するのか正確にはわかりませんが、念のためエラーレポートを追加してもう一度試してみます。

ストラテジーテスターの スプレッドがヒストリーデータ、特にM1データから取得されているとは知りませんでした。 ストラテジーテスターの実行で無効なストップがあるのは、スプレッドがSLより大きいからです。 このテストを追加してみますね。

 

Konstantin83:
2013.03.10 11:19:18    2012.01.04 15:00:00   failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops]

無効なストップがわからない。SLが買いSLより下にある:1.28375 <1.30505 ?

 
Konstantin83:

CopyHigh(_Symbol,_Period,TimeCurrent(),5,hg);

Top = NormalizeDouble(rates[ArrayMaximum(hg,0,WHOLE_ARRAY)].high,_Digits); 

- 設計を誤りました
最大doubleの 値の中から選択 し、 整数の インデックスの 代わりに それを 使用 します。

Konstantin83 さん、ありがとうございます。

しかし、私はあなたが言うことを理解していない

topは直近の5本のローソク足の最高値、topはdoubleで整数値ではありません。

トップ
 

dan5:

無効なストップが理解できません。SLがBuy SLの下にあります: 1.28375 <1.30505 ?


Invalid Stop "を文字通りに受け取らないでください。 ストップロスだけでなく、エントリー価格やTPも含まれます。 エラーが発生した場合は、次の情報を印刷してください。

  1. 取引の種類、買い指値、買い、売り、売り指値など。
  2. 売呼値
  3. ビッド価格
  4. エントリー価格
  5. SL
  6. TP
  7. フリーズ・レベル
  8. ストップ高
  9. エラー番号(必要であればエラーの説明も)
この記事はmql4用に書かれたものですが、mql5にも適用できると思います:トレードを行う際の要件と制限
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
  • book.mql4.com
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
 

dan5:

2013.03.10 11:19:18 2012.01.04 15:00:00 failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops] (ストップが無効です。


私は無効な停止を理解していない。SLは買い SL:1.28375 <1.30505の下に ある?


エントリー1.30505がTP1.30375より下なのはお気づきでしょうか?
 
RaptorUK:
エントリー1.30505がTP1.30375を上回っていることにお気づきでしょうか?

私は私のSLとTPを修正し、それは今大丈夫ですあなたの助けをいただきありがとうございます。

mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits);//Take Profit(利食い)。

の代わりに

mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit(利食い)。

 
dan5:

私は私のSLとTPを修正し、それは今大丈夫ですあなたの助けをいただきありがとうございます。

mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits);//Take Profit(利食い)。

の代わりに

mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit(利益確定

それは良いニュースだ、私があなたのスレッドを破壊したことを気にしないことを望むが、私は我々が最終的にそこから有用な何かを得たと思う:-)
 
RaptorUK:
それは良いニュースです、あなたは私があなたのスレッドを破壊したことを気にしないことを望みますが、私は我々が最終的にそこから有用な何かを得たと思います:-)
私が提案したOnTradeTransaction を使って、市場執行(ECN ブローカー)のケースで sl & tp を行うための他の解決策は見つかりましたか?
 
angevoyageur:
私が提案したOnTradeTransaction を使って市場執行(ECN ブローカー)のケースで sl & tp を進める他の解決策を見つけられましたか?
この投稿で提案したコードhttps://www.mql5.com/en/forum/11051#comment_446272 は、私の知る限りでは問題なく動作します。スプレッドが(MT4のように)固定されているという私の仮定が正しくないため、ストラテジーテスターでは動作しないのだと思いました。私のコードは現在ストラテジーテスターで動作し、実行タイプがインスタントまたは取引所実行のシンボルでは、私のコードはタイプを決定し、適切なリクエストを送信します。 理想的には、私のコードが自動的に任意の実行タイプを処理することを望みます。
 
RaptorUK:
この投稿で提案したコードhttps://www.mql5.com/en/forum/11051#comment_446272 は、私の知る限りでは問題なく動作します。私は、スプレッドが(MT4のように)固定されているという私の仮定が正しくないため、ストラテジーテスターでは動作しないのだと思っていました。私のコードは現在ストラテジーテスターで動作し、実行タイプがインスタントまたは取引所実行のシンボルでは、私のコードはタイプを決定し、適切なリクエストを送信します。 理想的には、私のコードは自動的に任意の実行タイプを処理したいのですが。
ああ、わかりました、見逃していました。