記事についてのディスカッション - ページ 3

 
Valeriy Yastremskiy:

どのように意味のあるセッティングが選ばれたのか興味深い。それは全体のトピックだ。

いくつかの重要なモードがあります。例えば、すべてのローソク足でポジションを建てるか、スキップするか、売りポジションの価格が上昇した場合のみ、または買いポジションの価格が下落した場合のみ。これらのモードを実行し、結果を比較してみた。各ローソク足でポジションを建てるモードから始めます。利益が大きく減少したが、ドローダウンが大きく減少しなかった場合、そのモードは悪い。例えば、利益は2倍、ドローダウンは1.1倍下落した。このモードは良くない。しかし、利益が2倍減少し、ドローダウンが1.5倍減少した場合、そのシリーズの最大取引数を見る。最大取引回数が大幅に減少した場合、たとえば同じく1.5倍であれば、今後の安定性にプラスに働く可能性がある。つまり、現時点では印象的なモードではないが、取引件数が多いほうが預金にとって危険であることがわかっている。そこで、最適なものを見つけて残すのです。これらのモードは、アルゴリズム自体の特性であるため、どのような商品でも同じように機能します。そこで、ローソク足を飛ばしてポジションを建てるモードを使います。これはすべての動作モードで行われます。どれが現在のタスクにとってより面白く機能するかを確認します。

私は完全な探索によってパラメーターを最適化する。例えば、ローソク足の最小本数を30本、最大本数を300本に設定し、最大本数は安定したまま、ローソク足の最小本数を2本単位で最適化する。さらに、分析するサンプル数を設定する。最初は1、最大で30とする。そして、オープニングのパーセンテージを最適化する。最適化が終わったら、安定が始まるパラメータを調べる。オープニングの割合が増え、ローソク足の最小数が増え、サンプル数が増えると、シグナルの質は上がるが、収益性は下がる。そのため、私は安定した最小のパラメーターを見つけ、それをリザーブに加えます。例えば、ローソク足の範囲58-300、パーセンテージ58、サンプル数7は、十分なリスクと利益の比率を持つ安定したパラメータであることがわかりました。そこで、ローソク足の最小本数を68~300本に増やし、パーセンテージを1本上げて59本とし、サンプル数を9本まで追加して、どの程度安定して動くかをチェックする。私の見間違いでなければ、将来、価格系列パラメーターの変動に備えて予備があるのだが、それは良いので、設定を残す。

あとは収益性を厳しくする必要がある。利益確定のATR係数が小さければ小さいほど安定する。そこで、このパラメーターの最適化を始める。1からすでに合格なので、0.1のステップで1から3まで試してみましょう。値が大きくなるにつれて利益は大きくなるが、ある時点で安定性が失われることがわかる。1.5までは安定しているとしよう。そして、この0.5のローソク足を市場特性の変化のために残し、1の値で機能させることにしましょう。

ここでもう一つポイントがある。我々は、ローソク足を取引し、我々はすべてのローソク足で開いていない場合は特に、ポジションごとに1ローソク足の利益は正常である。しかし、スプレッドがあり、我々はそのサイズを理解する必要があります。ローソク足の大きさを0.0015とすると、スプレッドは平均0.0001です。0.0001/0,0015=0,066.ローソク足の利益の6.6%がスプレッドに食われていることになります。つまり、1ATR(100%)ではなく、1-0.066=0.93で利益を出した方が良いことになります。四捨五入してマージンを下げ、ATR=0.9(90%)が正常値です。

以上、自分が使っているパターンをよく理解しておかないと、結果で運用しやすくなりません。私は、抽象的なインジケーターの読み方ではなく、かなり具体的な機能を使っていますが、その方が論理的に分析できるからです。

 
Edgar Akhmadeev:
最終的に洗練された製品には、最小限の設定しかないはずだ。しかし、実験的なものでは通常、多くの数から始め、徐々に相互関係を理解し、多くのパラメーターを最適化したり、固定したりする。前回のインジケーターでは、4つのパラメーターのうち2つにした。そして、kodobaseでは実験用のコードに過ぎません。

ここで重要なのは、消費者にとっての最終製品の中身です。私はこのロボットを販売しませんが(市場のほとんどよりも優れている可能性がありますが)、私は買い手が何に対して何があるのか理解できないことを理解しています。あなたが開発者とトレーダーの両方であるとき、最終製品は常に修正モードです。1つのバージョンを作り、それを実際に改良し、取引し、取引している間に別のバージョンを作り、何かを削除し、何かを追加し、最終的に次のバージョンは再び安定するが、美しさを梳かなければならない......。10人のチームがあれば、それは理にかなっていますが、1人か2人であれば、開発にリソースを費やした方がいいのです。

 
Maxim Romanov:

言い換えれば、私が書いていることはすべて、自分が使っているパターンをよく理解する必要があり、その結果で運用するのが簡単だということです。私は、抽象的なインジケーターの読み方ではなく、かなり具体的な特徴を使っています。

ありがとうございます。

このような有意義な手動最適化、そして時には完全にオーバーキルで)

 
Maxim Romanov:

どうして?

FOREXだからです。

ちなみに、私のFORTS Expert Advisorでは(チャートパラメータと合わせて)48の設定をしています。


 
Maxim Romanov:

実際の利回りは計算上の利回りより低くなっているが、これはテストがスプレッドを過大に見積もって実施されたためであり、アルゴリズムはスプレッドが高いほど利回りも高くなるように機能する。この状況は逆説的なものではなく、スプレッドが大きくなるほど安定性は低下する。

マキシム、記事をありがとう!

ハイライトされた部分についてコメントをお願いします。高値で買って安値で売った方が利回りが高くなる状況は想像できない(もちろん、ブローカーの利回りの話でない限り)。

 
Andrey Khatimlianskii:

マキシム、記事をありがとう!

注目の記事についてコメントをお願いします。高い値段で買って安い値段で売った方が高いリターンが得られるという状況は想像できない(もちろん、ブローカーのリターンについて話しているのであれば話は別だが)。

そのようなパラドックスであることが判明した)。これは、利益のコントロール方法に起因する。利益は 値から終値までのポイントで管理される。スプレッドが小さいと、利益水準がしきい値を超え、シリーズが終了することが判明した。しかし、スプレッドが大きい場合、利益は終値の条件を満たすのに十分でない可能性があり、シリーズは継続される。シリーズが継続する場合、新しいポジションがオープンされる。そして、オープンポジションの平均利益はコントロールされているため、ポジションが多ければ多いほど利益も多くなる。つまり、スプレッドが大きいほどポジション数が多くなり、それに伴って利益も多くなることがわかります。しかし、スプレッドが大きいと安定性に影響します。ポジションが多ければ多いほど、損失で決済するリスクが高くなります。
 
Maxim Romanov:
パラドックスだ)。これは利益のコントロールの仕方に原因がある。 値から終値までのポイントで管理される。スプレッドが小さければ、利益水準が基準値を超え、シリーズが完了することがわかる。しかし、スプレッドが大きい場合、利益は終値の条件を満たすのに十分でない可能性があり、シリーズは継続される。シリーズが継続する場合、新しいポジションがオープンされる。そして、オープンポジションの平均利益はコントロールされているため、ポジションが多ければ多いほど利益も多くなる。つまり、スプレッドが大きいほどポジション数が多くなり、それに伴って利益も多くなることがわかります。しかし、スプレッドが大きいと安定性に影響します。ポジションが多ければ多いほど、損失で決済するリスクが高くなります。

なるほど。

もちろん、シリーズを閉じる条件を正しく定式化する方がより論理的でしょう。スプレッドにあまり依存しないように。

しかし、次のステップはMT5に乗り換えることだとすでに気づいている。これからも見守ります。

 
Andrey Khatimlianskii:

ありがとう。

もちろん、シリーズを閉じるための条件を正しく定式化する方がより論理的でしょう。スプレッドにあまり依存しないようにね。

しかし、次のステップはMT5に乗り換えることだとすでに気づいている。今後も注目していきたい。

MT5 +MOEX

 
Andrey Khatimlianskii:

ありがとう。

もちろん、シリーズを閉じるための条件を正しく定式化する方がより論理的でしょう。スプレッドにあまり依存しないようにね。

しかし、次のステップはMT5に乗り換えることだとすでに気づいている。それは見守ります。

はい、論理的です)取引しているときに、この問題は解決されるべきだとさえ思っていましたが、これはあまりにも小さな修正で、決定的な変化は何もないことに気づきました。
 

こんばんは。

私は256行目 記号87 "-"の代わりに非常によく "="に見える、タイプミスをした疑いがあります。

確認してください、私はそれを自分で修正します、または多分私が理解していないいくつかの隠された意味、エラーは、警告として燃やす燃やす。

if(mas_par[i].Pause>0 && mas_par[i].Series_Close_Time>0) mas_par[i].Pause-iBarShift(mas_symbols[i],mas_inp[i].TF,mas_par[i].Series_Close_Time);