ライブラリ: BestInterval - ページ 22

 
fxsaber:

MT4OrdersをBestIntervalの前にenclodeすると正しく動作します。

このライブラリは、取引操作とその履歴にのみ関係する。また、SBなどと並行して動作させることができます。

そのため、インジケータは一切影響を与えません。

なるほど、ありがとうございます。
 
fxsaber:

BestIntervalのネット取引は、ある特定のケース(自分用に作った)だけで、取引履歴を正しく取ります。

秘密でないとすれば、このケースとは何でしょうか?もしかしたら、シャーマニズムでなくても似たようなものが使えるかもしれません。

 
traveller00:

秘密でないとしたら、どういう場合ですか?シャーマニズムがなくても、似たようなものを使えるかもしれない。

変身するTC。

 
fxsaber:

それは答えられない。まだ分からないんだ。

喜んでいると言えば、明らかに控えめな表現だが......。今のBestIntervalは素晴らしい。しかも変更は最小限だ。いつものように例を。


ここに24時間のパスがある。


古典的なBestIntervalを適用します。

Profit = 8018.00 = 8018.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.09.14 - 2019.12.04)
00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09
SUMMARY: 00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09

Profit = 10721.00 = 8018.00 + 2703.00 (33.71%) - Amount of Delete Intervals = 1 (2019.09.14 - 2019.12.04), 13:00 - 08:00, CountHours = 18
00:00:00 - 08:03:48 : Profit = 3278.00 (30.58%), Total = 161 (79.50%), PF = 2.21, Mean = 20.36, DD = 518.00, RF = 6.33
13:07:59 - 23:59:59 : Profit = 7443.00 (69.42%), Total = 389 (74.55%), PF = 2.14, Mean = 19.13, DD = 417.00, RF = 17.85
SUMMARY: 00:00:00 - 23:59:59 : Profit = 10721.00 (100.00%), Total = 550 (76.00%), PF = 2.16, Mean = 19.49, DD = 536.00, RF = 20.00

利益が3分の1増加し、他の指標も良くなっているのがわかる。


しかし、私たちは柔軟性を求めました。それがこれだ。

Profit = 8018.00 = 8018.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.09.14 - 2019.12.04)
00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09
SUMMARY: 00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09

Profit = 4868.00 = 8018.00 + -3150.00 (-39.29%) - Amount of Delete Intervals = 1 (2019.09.14 - 2019.12.04), 20:00 - 01:00, CountHours = 4
00:00:00 - 01:31:54 : Profit = 1067.00 (21.92%), Total = 32 (87.50%), PF = 4.63, Mean = 33.34, DD = 177.00, RF = 6.03
19:29:54 - 23:59:59 : Profit = 3801.00 (78.08%), Total = 118 (83.90%), PF = 5.53, Mean = 32.21, DD = 249.00, RF = 15.27
SUMMARY: 00:00:00 - 23:59:59 : Profit = 4868.00 (100.00%), Total = 150 (84.67%), PF = 5.29, Mean = 32.45, DD = 310.00, RF = 15.70


利益は増加せず、減少した!しかし、他の指標を見てください。最も高い利益とフィットする確率を持つ区間を見つける代わりに、はるかに狭い区間が見つかったが、古典的なものよりもはるかにおいしい。


イノベーションはこのように追加される。

#define  BESTINTERVAL_SLIPPAGE // BestIntervalを計算するために人工的なフィルタを作成する。


市場パターン・リサーチの質が非常に向上した。マルチ・テスターの仕事に重要な影響を与える。

削除済み  
ということは、150トレードの方が可能性が高いのではないか?
 
trader_number_one:
ということは、150回のトレードの方が、はるかにしっくりくるのではないだろうか?

取引回数は インターバルの長さに依存します。

 

インターバルの削除がうまくいかないことがある。すなわち

const double Profit = dDeals[i].Profit + SlipPerLot * dDeals[i].Lots;

はi=0でdDeals[i].LotsがNaNに等しいのでNaNを生成する。

これは、int Set( const DEAL &dDeals[] ) 関数で、Amount=0 のときに Lots フィールドが埋められないことから足が伸びているようです。あるいは、void ToNull( void ) で Lots が埋められないと言った方が正しいか?

しかし、いずれにせよ、このバグは非常に不愉快で、めったに発生せず、デバッグも容易ではありません。

 
traveller00:

しかし、いずれにせよ、このバグは非常に不快で、めったに現れず、デバッグも容易ではない。

はい、きちんと確認せずにすぐに投稿してしまいました。チェックします、ありがとう。

 
int Set( const DEAL &dDeals[] ) 関数を修正しました。もし私が間違って修正したり、何か見落としていたら、また書き込んでください。ありがとうございました。
 
traveller00:
int Set( const DEAL &dDeals[] ) 関数のLotsをゼロで埋めて 修正しました。もし私が間違って修正したり、何か見落としていたら、また書き込んでください。ありがとうございます。

今のところ、私が行ったのはこれだけです。

        const double Profit = dDeals[i].Profit ? dDeals[i].Profit + SlipPerLot * dDeals[i].Lots : 0;

あとはLotsについては修正する必要はありません。しかし、別の(古い)ものに関連するエラーがあります。修正する必要がある。