1本前のEMA(100) > 1本前のローソク足の安値
AND
1本前のEMA(100) < 1本前の始値
AND
1本前のEMA(100) < 1本前の終値
AND
2本前のEMA(100) < 2本前の終値 ※これ以下は、「何本前まで考慮するか」「終値にするか安値にするか」などお好みでご設定ください
AND
3本前のEMA(100) < 3本前の安値
AND
4本前のEMA(100) < 4本前の安値
AND
5本前のEMA(100) < 5本前の安値
AND
6本前のEMA(100) < 6本前の安値
↓
買いエントリー
エントリーの条件
※以下に加えて「フラグがtrueであること」を後から追加します。
1本前の終値 > 1本前のEMA(13)
AND
1本前のEMA(13) > 1本前のEMA(100)
↓
買いエントリー
図にある条件のEAを、EAつくーるだけで作成できるかどうか、というご質問ですね。
画像の内容を整理すると、ロングの場合はおおよそ次のようなロジックだと思います。
チャートには EMA13(赤)と EMA100(白)を表示。
ロングエントリー
ストップロス(SL)
テイクプロフィット(TP)
ショートは上記の逆条件。
この前提で、EAつくーるで可能な部分と難しい部分を分けてご説明します。
1. EAつくーるで実現しやすい部分
1-1. EMA13 と EMA100 の条件でエントリー
「EMA100 付近で一度サポートされ、その後に終値が EMA13 を上抜け」であれば、
少し簡略化して
という形なら、取引条件で設定可能です。
例として、ポジション1の買いエントリー条件を次のように設定します。
ショートエントリーは、上記の「<=」「>=」「>」「<」を逆にして、
さらに「上ヒゲでレジスタンス」「終値が EMA13 を下抜け」と読み替えれば設定できます。
ここまでの「サポート→EMA13クロス」という流れは、
EAつくーるの取引条件機能だけで十分に近い形を再現できます。
2. EAつくーるだけでは難しい部分
問題になるのは次の2点です。
2-1. SL を「サポート足の安値」に置く
EAつくーるの「基本項目 → 損切り」は、
「エントリー価格から何pips」という“固定値”しか設定できません。
また、決済条件で
などを使うことはできますが、
という“特定の足”の値を、そのままSLにすることはできません。
そのため、画像のように「サポート足の安値ピッタリにSLを置く」
という動作を、EAつくーるの標準機能だけで完全に再現するのは難しいです。
現実的な代替案としては、
にしてしまう
といった形が考えられます。
2-2. TP を「SL と同じ距離(または倍数)」に置く
同様に、TP も「基本項目 → 利食い」で固定pipsを入れる仕様です。
という機能は、EAつくーるにはありません。
こちらも代替案として、
(例:損切り 30pips、利食い 30pips または 60pips)
という形で近似することになります。
3. どうしても図の通りの挙動にしたい場合(MQL での補足)
もし「必ずサポート足の安値にSL」「その距離に応じてTPを自動計算」という
完全な再現が必要な場合は、
まず EAつくーるで、
というシンプルなEAを作成し、
出力された mq4/mq5 ファイルを MT4/MT5 のエディタで開き、
エントリー注文を出す部分に
といったロジックを MQL で追記する必要があります。
MQL編集は中級者以上向けになりますので、
まずは EAつくーるだけで組める「簡易版ロジック」で動きを確認し、
その後どうしても必要なら MQLでのカスタマイズを検討する、という流れがおすすめです。
まとめ
EAつくーるの取引条件で十分に近い形にできます。
ダイナミックなSL/TPは、EAつくーる単体では実装が難しく、
固定pipsやEMA割れ決済などで代用する形になります。
生成された mq4/mq5 をMQLで追記編集する必要があります。
※前回回答させていただいた内容につきまして、不正確な部分がございましたので、改めてご案内させていただきます。
今回の回答は、EAつくーるで作成したコードを改造する方法となっておりまして、弊社エンジニアの方で動作確認まで完了しております。
EAつくーるには特定の条件が成立したことを保存しておくフラグのような仕組みがなく、通常の方法では実現が難しいです。
そこで、コードを少し改造して実現する方法を考えてみましたので、提案させていただきます。
※説明がかなり長くなりますので、ロングのみについて紹介いたします。
方針ショートのロジックは、不等号の向き・安値と高値などを反対にしてご作成いただければと存じます。
※「1本前のEMA(13) > 1本前のEMA(100)」という条件は、ご質問時のご要望にはありませんでしたが、必要と判断し追加しています。
事前準備EAつくーる上で次の条件でEAを作成し、ダウンロードしたコードをMetaEditorで開きます。
基本項目SL/TPはともに0にしておきます。
フラグをリセットするのに使用する条件※「買いエントリー」の部分を後で修正します。
フラグをtrueにする条件※「買いエントリー」の部分を後で修正します。
エントリーの条件※以下に加えて「フラグがtrueであること」を後から追加します。
改造 フラグと変数の準備【修正前】
【修正後】
フラグのリセット【修正前】のコードのうち、「if(iMA(Symbol()~」の行の「signal = 1;」を「flag_long = false;」に変更し、それ以外の行は全て削除します。
【修正前】
【修正後】
フラグをtrueにする処理【修正前】のコードのうち、「if(iMA(Symbol()~」で始まる行を残して改造し、それ以外の行は全て削除します。
【修正前】
【修正後】
エントリー【修正前】のコードを【修正後】のコードに置き換えます。
【修正前】
【修正後】
以上でございます。
注意点といたしまして、現在のロジックでは「サポートされたと判定される=上からEMA(100)にタッチした」ローソク足の終値がEMA(13)を超えていた場合、次の足で即エントリーする動きになります。
フラグを立てる条件に「判定のタイミングでEMA(13)を下回っていること」を追加すると、より一層、ご提供いただいた画像に近い状況でエントリーできるかもしれません。