EAのご提案(負けから利益へ) - ページ 6

 
c0d3:
(1*std) -> (5*std) and (0.3 - > 1.5 on both the SL and TP) でバックテストを実行するためのドキュメントを紹介してもらえますか?


djpでマークされたあなたのプログラムにコードを追加しました。このEAをチャートにドロップして、プロパティセクションで、スタート・ステップ・ストップをコメントにある値で埋めてください。

最適化チェックボックスをチェックし、設定タブのUse Datesを変更します。ビジュアルモードにチェックを入れている場合は、チェックを外してください。Startを押す。もし、この方法を既にご存知でしたら、申し訳ありませんが、あなたがどの程度テスターを使いこなしているのか分かりません。この方法が役に立つとは言いませんが、いくつかの結果には驚かれるかもしれません。

あなたのコードでは、2行 [double fastSTD = ...... ] がありますが、fastSTDは他のコードでは一度も使っていません。これは、fastSTDを使うつもりが、間違ってslowSTDを使ってしまったのでしょう。

また、テストを始める前に、他の投稿者のコメントも考慮してください。もし、最適化を行ったことがないのであれば、コードを変更せずに、ただ、そのコツをつかむために、これを行うのがよいかもしれません。4つの変数で1時間以上かかるとは思えません。

 
danjp:


djpでマークしたコードをあなたのプログラムに追加しました。このEAをチャートにドロップして、プロパティセクションで、スタート・ステップ・ストップをコメントにある値で埋めてみてください。

最適化チェックボックスにチェックを入れ、設定タブの「使用日」を変更します。ビジュアルモードにチェックを入れている場合は、チェックを外す。Startを押してください。もしこの方法をすでにご存知でしたら、申し訳ありませんが、あなたがどの程度テスターを使いこなしているかはわかりません。この方法が役に立つとは言いませんが、いくつかの結果には驚かれるかもしれません。

あなたのコードでは、2行 [double fastSTD = ...... ] がありますが、fastSTDは他のコードでは一度も使っていません。これは、fastSTDを使うつもりが、間違ってslowSTDを使ってしまったのでしょう。

また、テストを始める前に、他の投稿者のコメントも考慮してください。もし、最適化を行ったことがないのであれば、コードを変更せずに、ただ、そのコツをつかむために、これを行うのがよいかもしれません。4つの変数で1時間以上かかるとは思えません。


ありがとうございます。デモ口座の テスターではなく、ライブ口座のテスターで実験してみます。
 
c0d3:
修正したEAをここに掲載することは可能でしょうか?

もちろんです。上記のテストでの大きな変更点の一部です。

1) あなたの以前の状態。

if(Close[0]<fastMA[tradingTimeFrame-1])shortEntry();else if(Close[0]>fastMA[tradingTimeFrame-1])longEntry();

2) 上記をご覧の通りです。すべてのMA、entFシグナルは「配列」され、「バインド」されています。

tradingTimeFrame-1

という式で「バインド」されています。

if(tradingTimeFrame<3)tradingTimeFrame=3;
   entryTF=tradingTimeFrame-3;

このようにすることで、今後の 開発、特に最適化が容易になります(tradingTimeFrameを1つずつ進めるだけです)。

私のコードにコメントがなかったら、ごめんなさい。 私は通常、コードをそのまま読むので、コメントがない方が読みやすく、すっきりします。

 
c0d3:

ありがとうございます。デモ口座のテスターではなく、ライブ口座のテスターで実験してみます。

WinMergeと呼ばれるプログラムがあります。http://winmerge.org/downloads/ これはあなたの人生をはるかに容易にします。これは無料で、コードのマージが簡単にできます。このプログラムは無料で、簡単にコードをマージすることができます。例えば、MTFzMA_v1.0から始めて、どちらかが変更するたびに.0を1つずつ増やしていくとよいでしょう。
 
diostar:

確かに、これらは上記のテスト中の主要な変更の一部です。

1) あなたの以前の状態。

2) 上記をご覧の通りです。すべてのMA、entFシグナルは、「配列化」され、「バインド」されています。

という式でバインドされます。

このようにすることで、今後の開発、特に最適化が容易になります(tradingTimeFrameを1つずつ進めるだけです)。

私のコードにコメントがなかったら、ごめんなさい。 私は通常、コードをそのまま読むので、コメントがないと、読みやすく、すっきりします。


ループがたくさんある、本当にきれいなコードです :)


ありがとうございました。
 
danjp:

WinMergeというプログラムがあります。http://winmerge.org/downloads/ これはあなたの生活をずっと楽にしてくれるでしょう。これは無料で、コードのマージが簡単にできます。Myfileの変更をDiostarの変更にマージして、そのファイルをバージョン番号付きで再投稿すれば、最新バージョンの追跡が容易になります。例えば、MTFzMA_v1.0から始めて、誰かが変更するたびに.0を1つずつ増やしていく。

そうすれば
 

RR比率1:1からの結果(フォワードテスト)ですが、今のところ負けてますね~。

  • 質問: 注文の 種類を逆にしたら(つまり、買いを売りにしたら)、勝敗の比率も逆に なるのでしょうか?
  • もし、注文の種類を逆にしたら、結果は7勝4敗になるのでしょうか?
  • 私の推測は正しいでしょうか?

ということであれば、逆順にするタイミングと、そのままにしておくタイミングを考えておくと良いかと思います、ちょっと考えてみました...。

皆さんはどう思われますか?

発言7064834 - 3
インターバンクFX, LLC

口座名7064834 名前3 通貨米ドル 2011年10月6日 20:45
クローズド・トランザクション
チケット開設時間種類サイズ項目 価格S / LT / P閉店時間 価格手数料税金スワップ利益
1024655882011.10.04 16:12バランス入金額1 000.00
1024691902011.10.04 16:50売る0.10eurusdm1.328561.343961.313162011.10.06 18:071.343960.000.00-0.27-15.40
90620112011.10.04 16:50:08[sl](英語版のみ
1024860502011.10.04 20:32売る0.10audusdm0.953180.968860.937502011.10.06 07:350.968860.000.00-0.62-15.68
90620112011.10.04 20:32:48[sl](英語版のみ
1024861442011.10.04 20:33売る0.10gbpusdm1.547191.559581.534802011.10.06 11:001.534800.000.00-0.2812.39
90620112011.10.04 20:33:37【TP
1024862472011.10.04 20:34売る0.10gbpjpym118.828120.182117.4942011.10.06 11:00117.4940.000.00-0.4917.40
90620112011.10.04 20:34:36[tp](英語版のみ
1024876952011.10.04 21:15買う0.10USDCHFM0.916660.907080.926242011.10.06 07:000.926240.000.00-0.0710.34
90620112011.10.04 21:15:17【TP
1024877232011.10.04 21:16買う0.10usdcadm1.052841.044261.060782011.10.05 17:041.044260.000.000.00-8.22
90620112011.10.04 21:16:53[sl](英語版のみ
1025641342011.10.06 11:00売る0.10gbpusdm1.533371.540811.528612011.10.06 11:121.528610.000.000.004.76
90620112011.10.06 11:00:10[TP](日本時間
1025652822011.10.06 11:12売る0.10gbpusdm1.528141.535071.521312011.10.06 14:221.535070.000.000.00-6.93
90620112011.10.06 11:12:51[sl](英語版のみ
1025692942011.10.06 12:30買う0.10usdjpym76.84776.69876.9942011.10.06 12:3076.8060.000.000.00-0.53
90620112011.10.06 12:30:01
1025692962011.10.06 12:30買う0.10usdjpym76.84776.69976.9952011.10.06 12:3076.8050.000.000.00-0.55
90620112011.10.06 12:30:02
1025692982011.10.06 12:30買う0.10usdjpym76.84776.69976.9952011.10.06 13:3376.6990.000.000.00-1.93
90620112011.10.06 12:30:02[sl](英語版のみ
0.00 0.00 -1.73 -4.35
クローズドP/L -6.08
オープントレード
チケット開設時間種類サイズ銘柄 価格S / LT / P 価格手数料税金スワップ利益
1025791662011.10.06 15:21買う0.10米ドルchfm0.923010.918380.927320.920920.000.000.00-2.27
90620112011.10.06 15:21:28
1025877442011.10.06 18:18売る0.10gbpusdm1.543221.550521.535801.544310.000.000.00-1.09
90620112011.10.06 18:18:43
0.00 0.00 0.00 -3.36
フローティングP/L -3.36
ワーキング・オーダー
チケットオープン時間種類サイズ項目 価格S / LT / P市場価格
取引なし
概要
入金/出金 1 000.00 クレジット・ファシリティ 0.00
クローズド・トレード P/L: -6.08 フローティングP/L: -3.36 マージン 50.86
バランス: 993.92 資本金 990.56 フリーマージン 939.70
詳細

売上総利益 44.05 グロス・ロス 50.13 当期純利益の合計 -6.08
プロフィットファクター 0.88 期待されるペイオフ -0.55
絶対的なドローダウン 14.25 最大ドローダウン 25.61 (2.51%) 相対的なドローダウン 2.51% (25.61)
総トレード数 11 ショートポジション (won %): 6 (50.00%) ロングポジション (勝率): 5 (20.00%)
プロフィットトレード (% of total): 4 (36.36%) 損失トレード (% of total): 7 (63.64%)
最大の 利益トレード 16.91 損失トレード -16.30
平均値 利益トレード 11.01 損切りトレード -7.16
最大 連続勝利 ($): 3 (33.78) 連続した損失($)。 5 (-25.61)
最大 連続した利益 (回数): 33.78 (3) 連続した損失(カウント)。 -25.61 (5)
平均値 連続勝利 2 連敗 2
 
c0d3:

以下は、1:1のRR比率での結果(フォワードテスト)ですが、今のところ負けていますね

  • 質問:注文の種類を逆にした場合(つまり、買いが売りになった)、勝敗の比率も逆に なるのでしょうか?

そうだったんですか。

というのも、これは私も先日発見したことなのです。 それは、輝かしいレベルではないにせよ、改善されました。しかし、その改善は、工学的・技術的な意味で、非常に重要な変化率でした。このまま「未発見」のままにしておくには、あまりにも大きな変化です。

そのため、私はここに新しいスレッドを投稿しました:EAへのこの "邪悪な聖杯 "アプローチをどう思いますか?

ここでやっている方法はリバースエンジニアリングに似ています。 しかし、形式はむしろそうです。

最短時間で最適解を見つける。 同じ(非常に短い)時間、長くても5~10分で、ユニットごとのロジックをテストし、ロジックが決定的になるようにします。99%良い、99%悪い、はほぼ確定しています。

その非常に「異例な」方法 - 邪悪な聖杯が聖杯に変わることを「望む」、それは新しいリーフを回すように、ある種の懺悔のリングです。それにもかかわらず、それは可能性である。

 
diostar:

そうだったんですか。

というのも、これは私も先日発見したことなんです。 確かに、すごいというほどではないけれど、工学的・技術的な意味で、非常に大きな変化率で改善されたんです。このまま「未発見」のままにしておくには、あまりにも大きな変化です。

そのため、私はここに新しいスレッドを投稿しました:EAへのこの "邪悪な聖杯 "アプローチをどう思いますか?

ここでやっている方法論は、参考までにリバースエンジニアリングに近いものです。 しかし、その形態はむしろ

最小限の時間で最適解を見つける。 同じ(非常に短い)時間、長くても5-10分で、ロジック単位でテストを行い、ロジックが確定できるようにします。99%良い、99%悪い、はほぼ確定しています。

その非常に「異例な」方法 - 邪悪な聖杯が聖杯に変わることを「望む」、それは新しいリーフを回すように、ある種の懺悔のリングです。それにもかかわらず、それは可能性である。

私は前にこの方法を試してみました、そして、私は順序の種類を逆にするたびに、システムは失敗し続けた、LOL?このシステムを変えてテストしても、まったく同じ結果になりそうな予感がするんです。

でも、やってみようと思います。

 
c0d3:

以前、この方法を試したことがありますが、毎回、順序の種類を逆にすると、システムは失敗し続けました、笑?このシステムを変えてテストしても、全く同じ結果になりそうな気がします。

でも、やってみようかな。

いや、今の段階では、そんなことはない。買いから売り、その逆と、変化はあっても、時間の無駄になりかねません。というのは、こういうことなんです。

最小限の時間で最適な解を見つけること。同じ(非常に短い)時間、長くても5~10分で、ロジックを単位にテストして、ロジックが決定できるようにする。99%良い、99%悪い、はほぼ確定しています。

1) 例えば、マスターロジックを1つだけ取り出し、残りを全て削除します。

if(Close[0]<fastMA[tradingTimeFrame-1])shortEntry()

1)マスターロジックを1つだけ取り出して、それ以外を削除して、こうする。

if(Close[0]<fastMA[tradingTimeFrame-1]){shortEntry();longEntry();}

1)マスターロジックを1つ取り、それ以外のロジックを削除する。この1つのマスターロジックで最適化を行う場合、基本的なパラメータ(SL、TP、Lotなど)のみで最適化を行います。そして、その買いと売りのインスタンスを分析し、この1つのロジックが両方のシナリオで、カットを作ることができるかどうかを判断します - それは間違ったまたは正しいエントリを作るかどうか。両方です。そして、次のロジックに、移ってください。

1番目のロジックは買いだけ、2番目のロジックは売りだけ、あるいは両方、などなど。この方法の方がより構造的で、どのロジックが本当にドローダウンを引き起こしているのかがよくわかると思います。