バックテストで問題が見つかり、根本的な原因がわからない! - ページ 2

 

以上です。

あなたのインジケータは、fisherの多くのバージョンのうちの1つで、再描画されます。

=> Macd_sample EAを実行し、EA実行中に画面上にインジケータを追加します。

EAを一時停止し、インジケータをダブルクリックすると、同じではありません、それは再描画されます。

画面上に表示されているものとは異なります。

動作はするのですが、インジケータを見ただけでは、その動作を確認 することができません。

 

Edit : 外部からの "period "が抜けています。

   Joy1=iCustom(Symbol(),0,"Solar Joy",period, SolarIndex,1);
   Joy2=iCustom(Symbol(),0,"Solar Joy",SolarIndex,2);
 

mladenはfischerのスペシャリストです。

https://www.forex-tsd.com/metatrader-4/474-fisher-12.html

このインディケータは、"Solar Joy "とほぼ同じで、ラインリミット=2、-2を追加しています。


このパーツを追加する :

extern int     RangePeriods=35;
extern double  PriceSmoothing=0.3;    // =0.67 bei Fisher_m10 
extern double  IndexSmoothing=0.3;    // =0.50 bei Fisher_m10
extern double SolarLimit=1;

void SolarJoy()
  {
  // HideTestIndicators(false);
   Joy1 = iCustom(NULL,0,"Fisher_m11",RangePeriods,PriceSmoothing,IndexSmoothing,4,1);
   Joy2 = iCustom(NULL,0,"Fisher_m11",RangePeriods,PriceSmoothing,IndexSmoothing,4,2);
   //Joy1=iCustom(Symbol(),0,"Solar Joy",SolarIndex,1);
   //Joy2=iCustom(Symbol(),0,"Solar Joy",SolarIndex,2);
  }

ファイル:
 
ffoorr:

これだけです。

あなたのインジケータが再描画されましたが、それはfisherの多くのバージョンのうちの1つです。

=> Macd_sample EAを実行し、EA実行中に画面上にインジケータを追加します。

EAを一時停止し、インジケータをダブルクリックすると、同じではありません、それは再描画します。

画面に表示されるものとは異なります。

動作はするが、インジケータを見ただけでは、その動作を確認することはできない。

ffoorr様、その通りにやってみましたが、インジケータの変化やそこまでの差は見られませんでした。
 
ffoorr:

Edit : 外部からの "period "が抜けています。

ffoorr様、iCustom()のインストラクションを参考にしてください。

[in]  Custom indicator input-parameters, separated by commas.

The passed parameters and their order must correspond with the declaration order and the type of extern variables of the custom indicator. If the values of input parameters  is not specified, the default values will be used.

また、私もexternパラメータを追加してみましたが、テスト結果は 同じです。

 
ffoorr:

mladenはfisherのスペシャリストです。

https://www.forex-tsd.com/metatrader-4/474-fisher-12.html

このインジケータは、Solar Joyとほとんど同じですが、ラインリミット=2と-2を追加しています。


この部分を追加する。


ffoorr様。

はい、同じです。しかし、どこに問題があるかはまだわかりませんよね?

フィッシャーインジケータでないことは、コードで確認することができます。現在のバーのスムージングは、前のバーを基準にしています。前のバーのインジケーターデータは全て凍結されています。

 
ffoorr:

JolyDragonさんへ。

はい、それはフィッシャー・インジケータです、コードを点検して下さい、問題を見つけないなら、私は助けることができません

親愛なるffoorr、他の友人。

フィッシャー・インジケータって何?

過去のバーが現在のバーと連動して変化するようなインジケーター?そういうインジケータはトリックで、私には使えない。つまり、Solar Joyはそういうインジケーターじゃないんだ。もし、そうでないなら、この種のトリックの文章を表示してください。

コードの修正には感謝しますが、このトピックにはあまり関係がなさそうです。

他のカスタムインディケーターでも バックテストで同じ問題があったので、根本的な原因を探らなければなりません。

ffoorr 様、"Solar Joy "と "Trade Joy "のテストはされましたか?同じ問題が発生するかどうか、テストして教えていただけませんか?ありがとうございました。


グマイ
 
jollydragon:

フィッシャーインジケータって何?

Solar Joyはこの種のインジケーターではないんだ。

  1. フィッシャーとは、リペイント・インディケーターです。つまり、市場がシグナルを出した時に表示するのではなく、何本も前にシグナルを出すべき場所を表示します。何本も前にシグナルがあったはずの場所を表示します。見た目は良いが、取引に使うことはできない。
  2. ffoorr: あなたのインジケータはリペイントされていますが、これはfisherの多くのバージョンのうちの一つです。
    ffoorrはすでにその種の インジケーターだと言っています。
  3. 重心もリペイントしています。
    シグナルが出たところ( 線を引いたところ)はよく見えるが
    しかし、そのバーが形成されたとき、もっとこのように見えた。
    その後、多くのバーが


 

JollyDragon

毎週、新しいフィッシャー・ インジケータの魔女がどこからか現れて、クライアントを誘い出そうとしているのかもしれない。このようなインジケータは、名前が変わっても、コードは同じである。

これは、フィッシャー・インジケータが一見してよく見えるからだ。しかし、画像で見ることができるものは、取引で得られるものではありません。このインジケータはどこで手に入れたのですか?

私はこの2つをテストしたわけではなく、若干の修正を加えて動作するようにしたのです。時間足と残高の制限をすべて削除し、EAを1・2本ではなく2・3本で取引するようにしました。

シグナル買い・シグナル売りでEAをオープン・クローズしていますが、これはどのオシレーターでも良い結果は得られないでしょうし、利益でクローズする場合は別です。

根本的な原因はコードの中にあるので、コードを勉強してください。

以下は、インジケータとEAです。


PS : EAのインジケータの名前をSOLAR_JOYからSOLAR_JOY_Aに変更してください、SOLAR_JOYをダウンロードしなかったので、名前を変更しなければなりませんでした ;-)

もし、うまくいかない場合は、次の行をコメントしてください。

// if((SignalAStartHour<SignalAEndHour && h>=SignalAStartHour && h<=SignalAEndHour))|| (SignalAStartHour>SignalAEndHour && (( h<=SignalAEndHour && h>=0) || (h<=23 && h>=SignalAStartHour)))でなければならない。)


ファイル:
 
ffoorr:


インジケータはどこにあるか教えてください。

根本的な原因はコードの中にあるので、コードを勉強してください。


ffoorrさんへ。

google.comで検索してインジケータを入手しました。

再描画を確認したところ、確かにコードに問題があるようです。 以下のスクリーンショットをご覧ください。

皆様へ。

私はバー、バッファ、インジケータについて何か誤解しているようです。

コードによると、すべてのバーは常に左側にある前のバーに基づいて描画され、それによって再描画は起こらないはずだと理解しています。しかし、私は本当に再描画をすでに観察しました。

以下に同封のインジケータファイルをご参照ください。主な内容は、ここに貼り付けた10行程度です。

いくら解析しても、再描画するためのイシューコードが見つからず、私の能力では 無理なようです。

どこに問題が あるのか、ご教授願えないでしょうか。本当に、本当に、本当にありがとう ございました。

   for(i=limit-1; i>=0; i--)
     {
      MaxH = High[iHighest(NULL,0,MODE_HIGH,period,i)];
      MinL = Low[iLowest(NULL,0,MODE_LOW,period,i)];
      price = (High[i]+Low[i])/2;
      Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
      Value=MathMin(MathMax(Value,-0.999),0.999);
      ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
      Value1=Value;
      Fish1=ExtBuffer0[i];
      if(ExtBuffer0[i]>0) ExtBuffer1[i]=10;
      else ExtBuffer1[i]=-10;
     }
ファイル:
solarjoy.mq4  7 kb