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

 
Andrey Azatskiy:

作成するデータがないというエラーについて - EAに自動アップロードとレポート生成が含まれていることを確認していますか?自動アンロードとレポート生成の機能をEAコードに含めていないか、EAの取引結果が設定した最適化フィルタを通過していないかです。

私の理解では、エキスパートアドバイザーに行を追加し、アンローディングに接続しました:

#include<Trade\Trade.mqh>
#define  CUSTOM_ON_TICK // アップロードシステムにOnTickコールバックを実装することを伝える。
#include <History manager/AutoUpLoader2.mqh> // CAutoUploaderをインクルードする

#define  TESTER_ONLY
そして、すべてがパラメータに従って動作しました。最適化はテスターで可視化され、Expert Advisorは結果をファイルに書き込みました。しかし、履歴のみです。フォワード・パスは記録されなかった。オプティマイザーの結果ウィンドウには何も表示されなかった。
 
Good Beer:

私の理解では、アンローディングを接続し、EAに文字列を追加しました:

そして、すべてがパラメータ通りに動いた。最適化はテスターで可視化され、Expert Advisorは結果をファイルに書き込みました。しかし、履歴だけです。フォワード・パスは記録されなかった。オプティマイザーの結果ウィンドウには何も表示されませんでした。

CUSTOM_ON_TICK」を使用した場合、OnTickメソッドに以下のコードを追加する必要があります(一番最初の部分):

CAutoUploader2::OnTick(); // CUSTOM_ON_TICKが定義されている場合

OnTickの名前をMyOnTickまたは他の名前に変更し、OnInitで接続を:

CAutoUploader2::SetCallback(MyOnTick, ENUM_CALLBACK_TYPE::CB_ON_TICK);
 
Good Beer:

あなたは間違っている。最適化時間を12:00から12:00にしているのはあなたです。それを変更する場所が見つからないんだ。

このため、履歴の最初の日の12時間が失われ、フォワード期間の12時間が最適化される。このため、フォワードは1日前倒しになる。

1週間は7日なので、最適化期間も7日に分けなければならない。履歴期間は月曜日0-00に終了し、フォワードは月曜日0-00に開始する。月曜日にはテストは行わず、フォワードを行うことが判明した。タイムマシンはない。


時刻が12:00pm = 00:00でない場合。

そして、DD.MM.YYYYY 00:00:00と同じ時間Poを指定したため、同じ時間を指定すると、テスターは次の日付からテストする必要があることを理解できず、代わりに同じ日付からテストを開始し、同じタイムマシンを取得することになります。そのため、1日後退してしまうのです。しかし、時間を設定するロジックを書き換えることができます。"AutoFrame "クラスにあるメソッド"public void Calculate(DateTime From,DateTime Till,uint history,uint forward) "を変更するだけです。このクラスは、"AutoFillInDateBordersM"クラスにあります。このクラスは、"MetaTrader-Auto-Optimiser/Metatrader Auto Optimiser/Model/AutoFillInDateBordersM.cs "にあるファイルに記述されています。

現在のバージョンではこのように実装されています :
public void Calculate(DateTime From, DateTime Till, uint history, uint forward)
        {
            if (From >= Till)
                throw new ArgumentException("Date From must be less then date Till");

            List<KeyValuePair<OptimisationType, DateTime[]>> data = new List<KeyValuePair<OptimisationType, DateTime[]>>();

            OptimisationType type = OptimisationType.History;

            DateTime _history = From;
            DateTime _forward = From.AddDays(history + 1);

            DateTime CalcEndDate()
            {
                return type == OptimisationType.History ? _history.AddDays(history) : _forward.AddDays(forward);
            }

            while (CalcEndDate() <= Till)
            {
                DateTime from = type == OptimisationType.History ? _history : _forward;
                data.Add(new KeyValuePair<OptimisationType, DateTime[]>(type, new DateTime[2] { from, CalcEndDate() }));

                if (type == OptimisationType.History)
                    _history = _history.AddDays(forward + 1);
                else
                    _forward = _forward.AddDays(forward + 1);

                type = type == OptimisationType.History ? OptimisationType.Forward : OptimisationType.History;
            }

            if (data.Count == 0)
                throw new ArgumentException("Can`t create any date borders with setted In sample (History) step");

            DateBorders?.Invoke(data);
        }
 
Nguyen Tien Duong:

私は C#が苦手なので、皆さんのレッスンを見て勉強しようと思っています。

Part4からPart7までの添付ファイルを ダウンロードしたのですが、"Metatrade Auto Optimiser "プロジェクトをビルドすることができません:


最適化モードが無効になっているときにmt5を起動することはできましたが、この写真のようにオンにすると エラーが 出ました



修正するのを手伝ってください。



エキスパートにアップロードオプションを追加する必要があります。そのためには、「/Data/MQL5/Experts/Test Expert/New uploading variant/SimpleMA.mq5」を例として使うか、コンパイルしてテストに使ってください。

 
Andrey Azatskiy:

CUSTOM_ON_TICK "を使用した場合は、OnTickメソッドに以下のコードを追加する必要があります:

わかりにくくてすみません。標準の'OnTick()'をなくしてもらえませんか?

 
Andrey Azatskiy:

時刻は海外形式で表示される

もちろん、書き直してみます。問題は時刻のフォーマットではなく、前方ピリオドが本来あるべき位置よりも右にあることでした。おそらく、私の端末が24時間形式に設定されており、それがエラーの原因になっているのだろう。

 
Good Beer:

鈍感で申し訳ないのですが、標準の'OnTick()'で何とかなったのでしょうか?

そこではすべてがカスタマイズ可能です。History manager/AutoUpLoader2.mqh "と新しいデータアップロードフォーマットの例を勉強してください。

あなたのメッセージに"CUSTOM_ON_TICK " と書かれている場合、それはOnTickが標準であることを意味しています。

CAutoUploader2::SetCallback(MyOnTick, ENUM_CALLBACK_TYPE::CB_ON_TICK);

というコード行をOnTickメソッドの先頭に追加する必要があることを意味します。

 

こんにちは、


このプロジェクトを ありがとう。とても役に立つと確信しています。

まだ使い始めたばかりなのですが、"Metatrader Auto Optmiser .exe "の通貨選択で問題に直面しています。デフォルトではなく、別の通貨を使用することは可能でしょうか?

利用可能なオプション(RUR、USD、EUR、GPB、CHF)以外に新しいものを書き込むオプションがありません。


ありがとうございます。

 
Marinho10:

こんにちは、


このプロジェクトをありがとう。きっと役に立つと思います。

使い始めたばかりなのですが、"Metatrader Auto Optmiser .exe "の通貨選択で問題に直面しています。デフォルトではなく、別の通貨を使用することは可能でしょうか?

利用可能なオプション(RUR、USD、EUR、GPB、CHF)以外に新しいものを書き込むオプションがありません。


ありがとうございます。

こんにちは。

オート・オプティマイザーのコードを編集して、再コンパイルする必要があります。
1.Visual Studioで プログラムを開きます。
2. "AutoOptimiserVM.cs "ファイルを開きます。
3. 行番号41 - 以下のコードがcurrenciesのコレクションに関係しています。編集して ください:

new OptimiserSetting( " Currency", new []{ " RUR", " USD", " EUR", "GBP", " CHF"}),
4.プログラムを再コンパイルすると、コンボボックスに通貨が表示されます。

 
作者には、このプロジェクトの さまざまな使い方を紹介するビデオの録画をお願いしたい。