抵抗帯近くでエントリーしないための設定について

2025/05/05 14:49
21

色々とお尋ねさせていただき申し訳ありません。もう1件ご質問させていただきます。

抵抗帯近くでのエントリーを防ぐために、他の条件を満たしたとしても以下の場合にはエントリーしないように条件を組み込みたいのですが、どのようにすると良いでしょうか?

[買いの場合]
15m75maが
下向きか水平であり かつ
現在値より上に位置し かつ
現在値より任意pips(10pips)以内である

または
15m75maではなく
4h10maにおいて同様の状況である。

[売りの場合]
15m75maが
上向きか水平であり かつ
現在値より下に位置し かつ
現在値より任意pips(10pips)以内である

または
15m75maではなく
4h10maにおいて同様の状況である。

*売りは単に買いと反対の条件です。

どうぞよろしくお願いします。

コメント

**
2025/05/07 06:56

連投ですみません。
色々と自分なりに考えたのですが、まともな方法で条件を場合分けして登録していくと結構な数になりそうですので、

15m75maまたは4H10maが
下向きか水平であり かつ
現在値より上に位置し かつ
現在値より任意pips(10pips)以内である
を満たしたときに0.01lotで買いか売りを行い管理用ポジションとして使用し(ポジション1とする)、

他のエントリー条件(ポジション2とする)の条件のひとつに
「ポジション1=0」のとき
として対応するのが無難かと自己解決いたしました。
お手数をおかけいたしました。

GogoJungle
2025/05/09 10:00

(最初にいただいたご質問に対して回答をご用意しておりましたので、念のため投稿させていただきます。ご参考になりましたら幸いでございます。)


EAつくーるの機能のみで作れないわけではありませんが、コードを直接修正した方が簡単です。
修正方法を提案させていただきます。

エントリーしないための条件を表すコードの取得

作成中のEAとは別のファイルで、条件を取得するためだけのEAを作成します。
具体的には、

1本前の75MA(15M) ≧ 0本前の75MA(15M)
AND
0本前のローソク足終値 < 0本前の75MA(15M)
AND
0本前のローソク足終値(補正値10)≧ 0本前の75MA(15M)
↓
買いエントリー

としてダウンロードします。

本命のEAのコードにsignalを0にする条件として追加する

先程ダウンロードしたEAのコードについて、

   if(iMA(Symbol(), PERIOD_M15, 75, 0, MODE_SMA, PRICE_CLOSE, 1)+PipsToPrice(0)  >=  iMA(Symbol(), PERIOD_M15, 75, 0, MODE_SMA, PRICE_CLOSE, 0)+PipsToPrice(0)
    && iClose(Symbol(), 0, 0)+PipsToPrice(0)  <  iMA(Symbol(), PERIOD_M15, 75, 0, MODE_SMA, PRICE_CLOSE, 0)+PipsToPrice(0)
    && iClose(Symbol(), 0, 0)+PipsToPrice(11)  >=  iMA(Symbol(), PERIOD_M15, 75, 0, MODE_SMA, PRICE_CLOSE, 0)+PipsToPrice(0)) signal = 1;

をコピーし、一番最後のsignal = 1;signal = 0;に書き換えたものを準備します。
これを、本命のEAのコードのif(signal != 0 && getOpenLots(Magic1) == 0) {と書いてある行の直前に追加します。

具体的には、次のようになります。

【修正前】

   if(signal != 0 && getOpenLots(Magic1) == 0) {

【修正後】

   if(iMA(Symbol(), PERIOD_M15, 75, 0, MODE_SMA, PRICE_CLOSE, 1)+PipsToPrice(0)  >=  iMA(Symbol(), PERIOD_M15, 75, 0, MODE_SMA, PRICE_CLOSE, 0)+PipsToPrice(0)
    && iClose(Symbol(), 0, 0)+PipsToPrice(0)  <  iMA(Symbol(), PERIOD_M15, 75, 0, MODE_SMA, PRICE_CLOSE, 0)+PipsToPrice(0)
    && iClose(Symbol(), 0, 0)+PipsToPrice(11)  >=  iMA(Symbol(), PERIOD_M15, 75, 0, MODE_SMA, PRICE_CLOSE, 0)+PipsToPrice(0)) signal = 0;
   if(signal != 0 && getOpenLots(Magic1) == 0) {

「15m75maではなく4h10maにおいて同様の状況である。」の部分も同様に、コードを取得するためだけのEAをご作成いただき、signal = 0;にした条件をif(signal != 0 && getOpenLots(Magic1) == 0) {の直前に貼り付けていただければ完成です。

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。