タイトルが入力されていません。
コンテンツがありません。
There have no category
There have no subcategory
オプションのトレーリングストップ(固定幅)を使用しているのですが、30pipsで設定をしていると頻繁に何度もストップロスが変わってしまうのを間隔を開けて判明する事は可能ですか?
例えば、 1分おきや5分おきにトレーリングストップが確認 →30pipsの確認 →ストップロスの変更を行う。
トレーリングストップ(固定幅)のストップロス更新を毎ティックではなく、1分おきや5分おきなど一定の間隔で行いたい、というご質問ですね。
EAつくーるの機能だけでは判定の間隔を変えられませんが、出力されたコードを少し改造すれば実現できると存じます。修正方法を考えましたので、ご提案いたします。
現在のトレーリングストップは、価格が動くたび(ティックごと)に判定しています。そのため、価格が有利な方向へ少し動くたびにストップロスも少しずつ動きます。なお、「30pips」は判定の間隔ではありません。ストップロスを現在価格から何pips離して置くかを決める値です。
1. 判定間隔のパラメータを追加する
「input bool isTrailingStop」で検索してください。見つかった行のすぐ下に1行追加します。
【修正前】
input bool isTrailingStop = true;
【修正後】
input bool isTrailingStop = true; input int TrailingCheckMinutes = 5; // トレーリングストップの判定間隔(分)
2. 判定する処理に時間の制限をかける
「TrailingStop(TrailinStopNormalValue」で検索してください。OnTick関数の中に次の行があります。
if(isTrailingStop == true) TrailingStop(TrailinStopNormalValue, Magic1);
static datetime ts_last_check = 0; if(TimeCurrent() - ts_last_check >= TrailingCheckMinutes * 60) { if(isTrailingStop == true) TrailingStop(TrailinStopNormalValue, Magic1); ts_last_check = TimeCurrent(); }
「ポジション2」以降も使っている場合は、Magic2やMagic3の行も続けて並んでいます。その場合は、それらの行もまとめて { } の中に入れてください。
{ }
static datetime ts_last_check = 0; if(TimeCurrent() - ts_last_check >= TrailingCheckMinutes * 60) { if(isTrailingStop == true) TrailingStop(TrailinStopNormalValue, Magic1); if(isTrailingStop == true) TrailingStop(TrailinStopNormalValue, Magic2); ts_last_check = TimeCurrent(); }
3. コンパイルして動作を確認する
修正したらコンパイルします。MT5の場合は、「Tkool.mqh」が「MQL5\Include\Tkool」フォルダにあることも確認してください。EAをチャートに適用するときに、パラメータの「TrailingCheckMinutes」で間隔を指定できます。
ありがとうございます。こちらで試してみます。
コメント文がありません。
トレーリングストップ(固定幅)のストップロス更新を毎ティックではなく、1分おきや5分おきなど一定の間隔で行いたい、というご質問ですね。
EAつくーるの機能だけでは判定の間隔を変えられませんが、出力されたコードを少し改造すれば実現できると存じます。修正方法を考えましたので、ご提案いたします。
現在のトレーリングストップは、価格が動くたび(ティックごと)に判定しています。そのため、価格が有利な方向へ少し動くたびにストップロスも少しずつ動きます。なお、「30pips」は判定の間隔ではありません。ストップロスを現在価格から何pips離して置くかを決める値です。
準備- 「オプション」設定画面で「トレーリングストップ(固定幅)」にチェックを入れ、「間隔」を30にしてください。
- この状態でコードをダウンロードし、MetaEditorで開きます。
- MT4用・MT5用のどちらのEAでも、修正内容は同じです。
修正手順1. 判定間隔のパラメータを追加する
「input bool isTrailingStop」で検索してください。見つかった行のすぐ下に1行追加します。
【修正前】
【修正後】
2. 判定する処理に時間の制限をかける
「TrailingStop(TrailinStopNormalValue」で検索してください。OnTick関数の中に次の行があります。
【修正前】
【修正後】
「ポジション2」以降も使っている場合は、Magic2やMagic3の行も続けて並んでいます。その場合は、それらの行もまとめて
{ }の中に入れてください。3. コンパイルして動作を確認する
修正したらコンパイルします。MT5の場合は、「Tkool.mqh」が「MQL5\Include\Tkool」フォルダにあることも確認してください。EAをチャートに適用するときに、パラメータの「TrailingCheckMinutes」で間隔を指定できます。
- 1分おきにする場合:1
- 5分おきにする場合:5
- 0にした場合:今までどおり毎ティック判定します
補足ありがとうございます。こちらで試してみます。