解決済み

エントリーしない

EAつくーる
はやうち太郎
2025/03/14 23:59
43

以下の条件で想定の個所でエントリーしないです。バックテスト3か月で1回しかエントリーしないとかそういうレベルです。何か条件に矛盾点があるのでしょうが、見つけられなかったので理由を教えてください。MACDが2連続上昇かつ上昇幅が増加しているを実装したいです。
条件1:0本前MACD≧1本前MACD
条件2:1本前MACD≧2本前MACD
条件3:0本前MACD≧0
条件4:|0本前MACDー1本前MACD|≧|1本前MACDー2本前MACD|
ちなみに条件1-3のみ、条件4のみは問題なかったです。条件3,4の組み合わせも問題なかったので、おそらく条件1,2と条件4の組み合わせで何かしらの問題がありそうです。
※条件4は先日教えていただいた通り変更しています。
【修正前】

iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2) <= iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1)
【修正後】

MathAbs(iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2) - iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1)) <= MathAbs(iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1) - iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0))

コメント

GogoJungle
2025/03/18 19:56

弊社の方で問題なくエントリーするものを作成できましたので、4つの条件の判定部分のコードを共有させていただきます。
ご作成いただいたコードと見比べてていただくことで、手掛かりが見つかるかもしれません。

   if(iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0)  &gt;=  iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1)
    && iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1)  &gt;=  iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2)
    && iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0)  &gt;=  Number_value_1_3_2
    && MathAbs(iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0) - iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1))  &gt;= MathAbs(iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1) - iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2))) signal = 1;

余談でございますが、条件1、条件2を満たすとき、条件4の絶対値の中身は負の値になりませんので、MathAbs関数は使用しなくてもよい状態となっております。不使用の方が計算速度が若干早くなると存じますので、なくしてしまうこともご検討いただければ幸いです。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。