フィルターのオンオフ機能について

2025/01/17 19:56
16

インジケーターつくーるにて
オンオフフィルターを設定することや
前足と比較してサインを表示させることは可能でしょうか?

■完成イメージ
・手法A(表示・非表示の選択可)
・手法B(表示・非表示の選択可)
・移動平均線フィルター(オンでフィルター適用)

■質問1
上記のようにAとBを表示するかどうかと
移動平均線のフィルターを適用させるかの選択肢を設けることは
可能ですか?

質問2
オシレーターで前の足の数値が〇〇でかつ、
次足もしくは現行足の数値が〇〇な時という条件付けは可能ですか?

コメント

GogoJungle
2025/01/20 09:23

ご質問1につきまして

インジケーターつくーるの機能のみでは実現できない機能でございます。
しかし、コードを少しご修正いただくことで実装可能です。
以下に、修正案を記載させていただきます。

変数の準備

「インジケーターAの描画」「インジケーターBの描画」「フィルターの適用」を切り替える変数を、#propertyの下に用意します。

【修正前】

#property  xxxxxxxx
#property  xxxxxxxx
#property  xxxxxxxx
#property  xxxxxxxx

【修正後】

#property  xxxxxxxx
#property  xxxxxxxx
#property  xxxxxxxx
#property  xxxxxxxx

input bool isDrawA  = true; // インジケーターAの描画
input bool isDrawB  = true; // インジケーターBの描画
input bool isFilter = true; // フィルターの適用

インジケーターの表示・非表示の切り替え

インジケーターAについて、bool Drawing1(int i){で検索し、以下のように修正します。

【修正前】

bool Drawing1(int i){

【修正後】

bool Drawing1(int i){
   if(isDrawA == false) return(false);

インジケーターBについても同様に、bool Drawing2(int i){で検索し、以下のように修正します。

【修正前】

bool Drawing2(int i){

【修正後】

bool Drawing2(int i){
   if(isDrawB == false) return(false);

フィルターの適用・不適用の切り替え

フィルターに関わる処理を、次のように修正します。

※val0, val1の数字と不等号については、対応するフィルターによって変化します。
また、複数箇所存在する場合は目的のフィルターに対応するもの全てに適用する必要があります。
※最初のif文の中に && draw == trueと記載してある場合もあります。

【修正前】(例)

   if(val0 > val1){
      draw = true;
   }else{
      draw = false;
   }

【修正後】(例)

   if(isFilter == true){ // この行を追加
      if(val0 > val1){
         draw = true;
      }else{
         draw = false;
      }
   } // この行を追加

以上でございます。

ご質問2につきまして

可能ですが、「値が ジャスト ○○」としてしまうと判定が厳しすぎて常にfalseとなってしまいかねません。
ある程度幅を持たせてあげることをおすすめいたします。

例えば、「1本前のRSIが29で、現行足のRSIが30である」という場合、次の4つの条件をANDで繋ぐのはいかがでしょうか。

RSI > 28.5 
計算位置:1本前

RSI < 29.5
計算位置:1本前

RSI > 29.5 
計算位置:0本前

RSI < 30.5 
計算位置:0本前 

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。