テスターからのロングトレードのコピーから身を守る方法 - ページ 3 123456789 新しいコメント Alexandr Bryzgalov 2015.06.23 08:59 #21 George Merts: ああ、それは分かる。しかし、繰り返しになりますが、ストラテジーテスターでは- 順次ティックを取得し、いつ最後のティックを取得するのかわかりません。 最初のバーの時間(スタート)と、シンボルの履歴の中のバーの数が分かれば十分です。 Alexandr Bryzgalov 2015.06.23 09:05 #22 dllは必要ありませんIniteでは、最初のバーとバーの数を文字(any)で引っ張って くることができるものがあるようです。ただし、これは古いビルドの場合です。また、テスターで動くかどうかもわかりません。しかし、MT4ではDLL無しで履歴にアクセスできます。int init() { int _GetLastError = 0, cnt_ticks = 0, cnt_bars = 0, temp[13]; // запоминаем символ графика, обнуляем хэндл окна off-line графика _Symbol = Symbol(); hwnd = 0; // открываем файл, в который будем записывать историю string file_name = StringConcatenate( "!Eqv", _Symbol, TicksInBar, ".hst" ); int sd_=iBars("!Eqv"+ _Symbol,TicksInBar)-1; double Open_[], Close_[], High_[], Low_[]; int Time_[]; ArrayResize(Open_,sd_+1); ArrayResize(High_,sd_+1); ArrayResize(Low_,sd_+1); ArrayResize(Close_,sd_+1); ArrayResize(Time_,sd_+1); for(int sd=iBars("!Eqv"+ _Symbol,TicksInBar)-1;sd>=0;sd--) { Time_[sd]=iTime("!Eqv"+ _Symbol,TicksInBar,sd); Open_[sd]=iOpen("!Eqv"+ _Symbol,TicksInBar,sd); Close_[sd]=iClose("!Eqv"+ _Symbol,TicksInBar,sd); High_[sd]=iHigh("!Eqv"+ _Symbol,TicksInBar,sd); Low_[sd]=iLow("!Eqv"+ _Symbol,TicksInBar,sd); //Print(sd," ",GetLastError()," ",Time_[sd]," ",Low_[sd]," ",High_[sd]," ",Close_[sd]," ",Open_[sd]); } return(0); } Georgiy Merts 2015.06.23 09:33 #23 Alexandr Bryzgalov: 最初のバーの時間(スタート)とシンボルヒストリーのバーの本数が分かれば十分です。ストラテジーテスターでは、最初のバーの時刻が受信ティックの時刻となります。そして、ストラテジーテスターのティックの登場により、常に増加します。具体的な例を挙げると-----------------------------------------------現在の日付は2015.05.1、昨年に引き続き攻略テスターを開始します。ストラテジーテスターの最初のティックで、2015.1.1のゼロバーの時間を取得することができます。とはいえ、パソコンでの実時間は2015.5.1ですが。ティックがストラテジーテスターに入ってくると、日付が移動し、ゼロバーも同様に移動します。 ファイル操作を使うと、最後(ゼロバー)の日付が2015.1.1であっても、実時間は2015.05.1であることがわかります。従って、テスターでは2015.04.1までのティックのみを処理しています。新しい実際の日が来ると - テスターで我々はより多くの後日談を取得し、それに応じて、プロセスは、さらにさらに、実際の日付に月よりも近くない刻み目を表示します。 さて、そのユーザーが、我々をだまそうと、コンピュータの日付を6カ月先に設定した。さて、テスターでは、日付1.05.2015と一緒に我々は日付1.11.2015を取得し、刻みは、実際の日付という事実にもかかわらず、2015年1月10日まで処理されます - まだ2015年1月05日、および端末で本当にこの日だけにデータを取得します。しかし、テスト開始時にテスターからこの値を取得することはできません。 これが問題なのです。 つまり、テスターに記録された時系列の本当の最終日をテスターから取得できれば、この問題は解決するのです--。しかし、問題は、その方法が明確でないことです。 Georgiy Merts 2015.06.23 09:36 #24 Alexandr Bryzgalov:dllは必要ありませんIniteでは、最初のバーとバーの数を文字(any)で引っ張って くることができるものがあるようです。ただし、これは古いビルドの場合です。また、テスターで動くかどうかもわかりません。しかし、MT4ではDLL無しで履歴にアクセスできます。 Initeでは、日付は2015年1月1日となり、それに伴い、すべてのバーがこの日付からのみ引き出されます。ただし、実際の日付は2015.5.1ですが Alexandr Bryzgalov 2015.06.23 09:37 #25 George Merts:ストラテジーテスターでは、最初のバーの時刻が受信ティックの時刻となります。そして、ストラテジーテスターのティックの登場により、常に増加します。具体的な例を挙げると-----------------------------------------------現在の日付は2015.05.1、昨年に引き続き攻略テスターを開始します。ストラテジーテスターの最初のティックで、2015.1.1のゼロバーの時間を取得します。とはいえ、パソコンでの実時間は2015.5.1ですが。ストラテジーテスターに刻みが入ってくると、日付が移動し、ゼロバーも同様に移動します。 ファイル操作で、最後(ゼロバー)の日付が2015.1.1であっても、実時間は2015.05.1であることを取得することができます。従って、テスターでは2015.04.1までのティックのみを処理しています。テスターでは、新しい本当の日が来ると、どんどん後の日付になり、それに応じて、刻みをどんどん遠くに処理していきますが、本当の日に近づくのは1ヶ月以内です。 さて、そのユーザーが、我々をだまそうと、コンピュータの日付を6カ月先に設定した。さて、テスターでは、日付1.05.2015と一緒に我々は日付1.11.2015を取得し、刻みは、実際の日付という事実にもかかわらず、2015年1月10日まで処理されます - まだ2015年1月05日、および端末で本当にこの日だけにデータを取得します。しかし、テスト開始時にテスターからこの値を取得することはできません。 これが問題なのです。 つまり、テスターに記録された時系列の本当の最終日をテスターから取得できれば、この問題は解決するのです--。しかし、問題は、その方法が明確でないことです。履歴ファイルがあるので、それを開いて(FileOpenHistory)、読み、最初の(履歴の一番左の)バーを見つけ、その時間を読み、バーの合計数を数える必要があります。これだけで、テスターでExpert Advisorを適切なタイミングで停止させる操作ができるようになります。 Alexandr Bryzgalov 2015.06.23 09:40 #26 最終日ではなく、ヒストリーファイルの最初の日付と、ヒストリーファイルのバーの 総数をinitから読み出して取得します Georgiy Merts 2015.06.23 09:42 #27 Alexandr Bryzgalov:履歴ファイルがあるので、それを開いて読み、最初のバー(履歴の一番左のバー)を見つけ、その時間を読み、バーの合計数を計算する必要があります。これは、テスターでEAを適切なタイミングで停止させる操作をするのに十分なものです。 では、Strategy Testerから どのようにアクセスすればよいのでしょうか?上記で提案した方法は、標準関数を使ってバーを取得し、ストラテジーテスターのIniteで2015年1月1日を返します(その日付からテストを実行した場合)。 Georgiy Merts 2015.06.23 09:43 #28 Alexandr Bryzgalov: 最後の日付を取得する必要はなく、ヒストリーファイルの最初の日付とヒストリーファイルのバーの 合計数をinitから読み込んで取得する必要があります。А !今のは面白いですね。試してみるしかないですね。 Alexandr Bryzgalov 2015.06.23 09:45 #29 George Merts: その通りなのですが、ストラテジーテスターから どのようにアクセスするのでしょうか?では、これは通常のファイル操作なのか、それともテスターが履歴にアクセスできないのか?私自身は試していませんが、ヘルプでは禁止されていません Oleg Tsarkov 2015.06.23 09:46 #30 ループから外れているかもしれませんが、OnTesterInit()でTimeLocalと TimeGMTをチェック し、日数の差を求めると、実時間とテスター時間のどちらを表示するのでしょうか? 123456789 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ああ、それは分かる。しかし、繰り返しになりますが、ストラテジーテスターでは- 順次ティックを取得し、いつ最後のティックを取得するのかわかりません。
dllは必要ありません
Initeでは、最初のバーとバーの数を文字(any)で引っ張って くることができるものがあるようです。ただし、これは古いビルドの場合です。また、テスターで動くかどうかもわかりません。しかし、MT4ではDLL無しで履歴にアクセスできます。
最初のバーの時間(スタート)とシンボルヒストリーのバーの本数が分かれば十分です。
ストラテジーテスターでは、最初のバーの時刻が受信ティックの時刻となります。そして、ストラテジーテスターのティックの登場により、常に増加します。
具体的な例を挙げると
-----------------------------------------------
現在の日付は2015.05.1、昨年に引き続き攻略テスターを開始します。ストラテジーテスターの最初のティックで、2015.1.1のゼロバーの時間を取得することができます。とはいえ、パソコンでの実時間は2015.5.1ですが。ティックがストラテジーテスターに入ってくると、日付が移動し、ゼロバーも同様に移動します。
ファイル操作を使うと、最後(ゼロバー)の日付が2015.1.1であっても、実時間は2015.05.1であることがわかります。従って、テスターでは2015.04.1までのティックのみを処理しています。
新しい実際の日が来ると - テスターで我々はより多くの後日談を取得し、それに応じて、プロセスは、さらにさらに、実際の日付に月よりも近くない刻み目を表示します。
さて、そのユーザーが、我々をだまそうと、コンピュータの日付を6カ月先に設定した。さて、テスターでは、日付1.05.2015と一緒に我々は日付1.11.2015を取得し、刻みは、実際の日付という事実にもかかわらず、2015年1月10日まで処理されます - まだ2015年1月05日、および端末で本当にこの日だけにデータを取得します。しかし、テスト開始時にテスターからこの値を取得することはできません。
これが問題なのです。
つまり、テスターに記録された時系列の本当の最終日をテスターから取得できれば、この問題は解決するのです--。しかし、問題は、その方法が明確でないことです。
dllは必要ありません
Initeでは、最初のバーとバーの数を文字(any)で引っ張って くることができるものがあるようです。ただし、これは古いビルドの場合です。また、テスターで動くかどうかもわかりません。しかし、MT4ではDLL無しで履歴にアクセスできます。
ストラテジーテスターでは、最初のバーの時刻が受信ティックの時刻となります。そして、ストラテジーテスターのティックの登場により、常に増加します。
具体的な例を挙げると
-----------------------------------------------
現在の日付は2015.05.1、昨年に引き続き攻略テスターを開始します。ストラテジーテスターの最初のティックで、2015.1.1のゼロバーの時間を取得します。とはいえ、パソコンでの実時間は2015.5.1ですが。ストラテジーテスターに刻みが入ってくると、日付が移動し、ゼロバーも同様に移動します。
ファイル操作で、最後(ゼロバー)の日付が2015.1.1であっても、実時間は2015.05.1であることを取得することができます。従って、テスターでは2015.04.1までのティックのみを処理しています。
テスターでは、新しい本当の日が来ると、どんどん後の日付になり、それに応じて、刻みをどんどん遠くに処理していきますが、本当の日に近づくのは1ヶ月以内です。
さて、そのユーザーが、我々をだまそうと、コンピュータの日付を6カ月先に設定した。さて、テスターでは、日付1.05.2015と一緒に我々は日付1.11.2015を取得し、刻みは、実際の日付という事実にもかかわらず、2015年1月10日まで処理されます - まだ2015年1月05日、および端末で本当にこの日だけにデータを取得します。しかし、テスト開始時にテスターからこの値を取得することはできません。
これが問題なのです。
つまり、テスターに記録された時系列の本当の最終日をテスターから取得できれば、この問題は解決するのです--。しかし、問題は、その方法が明確でないことです。
履歴ファイルがあるので、それを開いて(FileOpenHistory)、読み、最初の(履歴の一番左の)バーを見つけ、その時間を読み、バーの合計数を数える必要があります。
これだけで、テスターでExpert Advisorを適切なタイミングで停止させる操作ができるようになります。
履歴ファイルがあるので、それを開いて読み、最初のバー(履歴の一番左のバー)を見つけ、その時間を読み、バーの合計数を計算する必要があります。
これは、テスターでEAを適切なタイミングで停止させる操作をするのに十分なものです。
最後の日付を取得する必要はなく、ヒストリーファイルの最初の日付とヒストリーファイルのバーの 合計数をinitから読み込んで取得する必要があります。
А !今のは面白いですね。
試してみるしかないですね。
その通りなのですが、ストラテジーテスターから どのようにアクセスするのでしょうか?
では、これは通常のファイル操作なのか、それともテスターが履歴にアクセスできないのか?
私自身は試していませんが、ヘルプでは禁止されていません