戦略を求める人は?たくさん、しかも無料で)。 - ページ 19

 
orlekino >> :

自分の好みと色に書き直した。EoMのようなものに見えるが、ピークは理解できない。

//  Ease of Movement

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
extern int PeriodMA = 13;
extern int VolDivisor = 10000;
double EoMBuffer[];
double TempBuffer[];

int init()
{
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, EoMBuffer);
   SetIndexBuffer(1, TempBuffer);
   IndicatorShortName("EoM("+ PeriodMA+")");
   SetIndexLabel(0,"EoM("+ PeriodMA+")");
   SetIndexDrawBegin(0, PeriodMA);

   return(0); 
}

int start()
{
   int counted_bars=IndicatorCounted();
   if( counted_bars>0)
      counted_bars--;
   int limit=Bars- counted_bars;
  
   for(int i=0; i< limit-1; i++)
      TempBuffer[ i]= VolDivisor * (High[ i] - Low[ i]) * ((High[ i] + Low[ i]) / 2.0 - (High[ i + 1] - Low[ i + 1]) / 2.0) / MathMax(Volume[ i], 1);

   for( i=0; i< limit; i++)
      EoMBuffer[ i]=iMAOnArray( TempBuffer,Bars, PeriodMA,0,MODE_SMA, i);

   return(0);
}
 
zelda >> :

興味深いのですが、Armsのオリジナルの考えによると、インジケータは0を基準に歩き、0ラインとSMAが交差したときにシグナルを出すべきです(これはすぐにスムージングされるのではなく、インジケータに適用されます)。

そのようなバリエーションを作ることは可能なのでしょうか?私自身は(まだ)MQlngを十分に理解していないので、私のコードではインジケータの最後のティックが無限に上昇するように描画されます(それを修正する方法 - 知りません)が、一般的なコンテキストでは、それは私に合っています。

 
FOREXMASTER >> :

スタートは悪くないが、このプログラムでは、私は見たい。

1.マシン自体は、それぞれのための最も適切な戦略を選択することはできませんので、生成された戦略の選択は、私は保存の終わりにプログラムよりもはるかに良いストラテジストを見てきました

私は少し変わった考えを持っていて、それは戦略のリポジトリを作ることです。つまり、ユーザーが商品と時間枠ごとに1つのストラテジーを生成し、コンピューターがそれを選択します。さらに、リポジトリから20のストラテジーをダウンロードする。次に、ダウンロードしたすべてのストラテジーで20回のテストを行い、その特徴をまとめたリストを作成する。最も悪い結果を出したストラテジーをリポジトリから削除してもらい、代わりに先ほど生成したストラテジーを追加してもらう。


このように、ユーザーには21のストラテジーのリストが残され、そのうちの20はすでにテストされています。そこから好きなものをすべて選択し、MQL4でEAのソースコードを作成することができます。


そうすることで、妥協点を見出すことができます。


1.コンピュータは、生成されたストラテジーの中から、無作為ではなく、ある特性を考慮してストラテジーを選択するのです。

2.ユーザーはリストから戦略を選択する。つまり、不十分なもの、主観的なもの、誤ったものも含めて選択する権利がある。テスターが描いたばかりの天秤を使うか、時間をかけて練り上げた作戦を使うかは、ユーザー次第。


しかし、最も重要なことは、そうすることによって、リポジトリは常にフィルタリングされ、最良の結果をもたらす戦略のみが保存されることです。そして、ランダムな調整は、自然淘汰によって、そこからはじき出されるのです。つまり、フォワードテストはほとんど必要なく、リストを見て、リポジトリの中で最も長く続いた戦略を選ぶだけでよいからだ。


さらに、この方法では、分散コンピューティングを使用して結果を得ることになります。つまり、各コンピュータは戦略の生成に約1/21の時間しかかけず、戦略のテストにはもっと少ない時間しかかけないのだ。


Ucoz CMSではデータベースの管理やPHPスクリプトの実行ができないため、残念ながら私の以前のサイトではリポジトリの可能性はありませんでした。そのため、「株式ストラテジー・ビルダー」の ウェブサイトを別途ホスティングし、それを基盤にリポジトリを運用する必要があります。


すでにリポジトリのかなりの部分と、プログラムの新しいバージョンを作りました。特に、ストラテジーを生成し、テストする際の見積りの品質について、いくつかの詳細があります。これらの詳細が分かり次第、レポジトリに対応したバージョンを掲載する予定です。

 
Reshetov писал(а)>>

私は少し変わった考えを持っていて、それは戦略リポジトリの作成です ...

...そうすれば、リポジトリは常にフィルタリングされ、最高の結果を出した戦略だけを残すことができる。そして、ランダムな適合は、自然淘汰によって、そこからはじき出されるのです。だから、フォワードテストは実質的に不要なのです.

...このリポジトリが機能することを前提に、「株式戦略ビルダー」 サイトのホスティングを別に用意する必要がありました。

...すでにレポジトリと新バージョンのかなりの部分を作っています。特に、ストラテジーを生成し、テストする際の引用符の質については、まだ詳細が決まっていません。これらの詳細が決まり次第、リポジトリ対応版を掲載する予定です。

素晴らしいアイデアですね。実装頑張ってください

しかし、なぜフォワードテストが不要になるのかが理解できない。

 
voltair >> :

素晴らしいアイデアですね。実装頑張ってください

ただ、なぜフォワードテストが不要になるのか、ちょっとわからないですね。

なぜなら、時間をかけて練り上げられた戦略だけがリポジトリに残り、それ以外のものは徐々に削除されていくからです。


例えば、半年前からあるストラテジーをダウンロードして、テストした結果、利益が出たとしたら、それは、ただ作られたストラテジーよりも信頼できるものであることは明らかです。


もちろん、念のため自分で追加テストをすることもあります。

 
Reshetov писал(а)>>

...レポジトリからダウンロードしたストラテジーが半年間そこにあり、現在でもテストで利益を示しているならば、それは新しく生成されたストラテジーよりも信頼できるものである。

ストラテジーはただそこに転がっているのではなく、常にテストさ れ、利益が出る場合のみリポジトリに残ります。

しかし、「今日」(現在のマーケットで)「この」戦略が赤字で、明日には大きな利益を得てすべてを取り返すということもあり得るのです。

どのような市場セグメントで戦略を検証するのか?

 
voltair >> :

ストラテジーはただそこに保存されているのではなく、常にテストさ れ、利益が出た場合のみレポジトリに残ると理解しています。

しかし、「今日」(現在のマーケットで)「この」戦略は赤字であり、明日には大きな利益を得てすべてを取り返すということもあるのです。

どのような市場セグメントで戦略を検証するのか?

そのため、ヒストリーセクションは最低でも8000本程度を想定しています。すなわち、プログラムは8000本以下のバーを持つ相場を拒否する必要があります。また、例えば、hstファイルが前日中に更新されていない場合、古い引用符を拒否する必要があります。


したがって、ヒストリカルデータは十分に長期的で、できるだけ最近のものでなければならない。したがって、最終的な結果は個々のチャンクではなく、全期間の総合計となるため、この時点ではもはや「1日」の戦略とは言えなくなる。

 
Reshetov писал(а)>>

...ヒストリーセクションは最低でも8000バー必要だと思うのですが... ...

おそらく、大きな時間軸の場合はこれでOKでしょう。しかし、おそらくミニッツやM5には物足りないでしょう。とはいえ、問題はどの程度の期間、ストラテジーを保持するかということです。テストするバーの本数を選択するために、試行錯誤した方法(または経験)はありますか?私は通常、20000本以下は探しません。でも、もしかしたら間違っているかもしれない...。

 
voltair >> :

大きな時間軸の場合は大丈夫でしょう。しかし、分やM5ではおそらく足りないでしょう。しかし、質問ですが、ストラテジーはどの程度の期間保管されるのでしょうか?テストするバーの本数を選択するために、試行錯誤した方法(または経験)はありますか?私は通常、20000本以下は探しません。でも、それは間違っているのかもしれない。

今のところ、黄金平均、つまり少なくとも8000本のヒストリカルデータに落ち着きました。より多くすることは可能だが、より少なくすることはできない。

 

もし、ネガティブなテスト結果に基づいてストラテジーをリポジトリから削除することを認めるとしたら、それは全く正しいとは言えません。なぜなら、誰かが壊れた、漏れた相場をアップロードし、それによってテストを実行した後、すべての有益な戦略を削除するケースがあるかもしれないからです。


各戦略に-100から+100のような評価をつけるとよいでしょう。ストラテジーをリポジトリに最初に配置する際、そのストラテジーにはゼロ評価が与えられます。


すべてのストラテジーは、レーティングの降順、すなわち最大から最小の順で並べられます。このソフトウェアは、最大レーティングを持つ上位20のストラテジーをロードし、テストを実行します。テスト結果が肯定的でストラテジーのレーティングが100未満の場合、レーティングが1増加し、否定的な場合、レーティングが1減少します。レーティングが-100未満の場合、ストラテジーはリポジトリから削除されます。


1.長い時間をかけてテストされ、証明された古いストラテジーが最も高い評価を受けるため、TOP20の上位に表示されることになるのです。

2.1日経過したストラテジーは、徐々にレーティングが下がり、-100レベルになると削除されます。

3.プログラムが壊れた引用符で動作する場合、それは1によって評価を変更することができます、すなわち、それはリポジトリのランキング結果にグローバルに影響を与えませんが、唯一のそれらをわずかに調整します。