テスターからのロングトレードのコピーから身を守る方法

 

皆様にご挨拶申し上げます。

質問はタイトルにあります。目標は、EAを実際のデータで使用することから保護しつつ、ストラテジーテスターでの 実行を可能にすることです。そのため、ストラテジーテスターでデモ版を動かして動作を確認することはできても、手動で別の端末に転送してトレードをコピーすることはできないのです。

問題は、Expert Advisorのトレードが何週間も続くことです。そしてこれは、不謹慎なユーザーがストラテジーテスターでデモ版を実行し、1日遅れで別のターミナルで同じ取引を手動で開くことができることを意味します。そして、彼または彼女はあまり利益を失わない。

そのため、Strategy Testerでは、Expert Advisorは現在の日付より1ヶ月前の日付までしか動作しないことにしました。同時に、新しい日付が現れたら、Expert AdvisorはStrategy Testerでより長い時間動作させなければならない。

テスターの作業終了日が固定されているのは良くありません。ユーザーは、この日付まで正確にExpert Advisorに相場が保存され、それが動作する理由ではないかと疑っています。そのため、Strategy Testerで現在の日付を取得し、1ヶ月前の日付までしかExpert Advisorを動作させないようにする必要があります。

テスターから現在の日付を聞き出すのは難しいのですが、なんとか実現しました。しかし、パソコンの時間を進めて、Strategy Testerから実行されたディールを簡単に読み取っている賢いユーザーを発見しました。

テスターが先月の相場で動作するのを防ぐにはどうしたらよいですか?

どうすればいいんだ?

 
もっと言います!WINAPIについて少し学んだので、テスターの「スタート」ボタンをドラムで押して、レポートを保存し、そこから新しいトレードを読み込むユーティリティを書くことができます。そして、ターミナルでトレードを複製するだけでいいのです。
 

はい、Dimitriさん、WinAPIがなくても、AutoITのスクリプトを使うだけでできますよ。

日足で動くExpert Advisorだけでなく、5分足で動くExpert Advisorでも、この場合は違和感がある。

私の考えでは、現在の日付の1ヶ月前にテスターの運用を停止するのが最も合理的な解決策だと思います。しかし、パソコンで日付が変わってしまった時はどうすればいいのでしょうか?

私が考えているのは、ターミナルから最後の引用のリアルタイムをテスターからどうにかして取得することです。でも、どうしたらいいのかわからない。また、追加の自作DLLをいじりたくない、クライアントも「怖がる」のです。

 
George Merts:

はい、Dimitriさん、WinAPIがなくても、AutoITのスクリプトを使うだけでできますよ。

日足で動くExpert Advisorだけでなく、5分足で動くExpert Advisorでも、この場合は違和感を感じ始める。

私の考えでは、現在の日付の1ヶ月前にテスターの運用を停止するのが最も合理的な解決策だと思います。しかし、パソコンで日付が変わってしまった時はどうすればいいのでしょうか?

私が考えているのは、ターミナルから最後の引用のリアルタイムをテスターからどうにかして取得することです。でも、どうしたらいいのかわからない。また、追加の自作DLLをいじりたくない、クライアントも「怖がる」のです。

端末の日付が変換されない。TimeCurrent()は最後のサーバー時刻を 表示します。
 
Dmitiry Ananiev:
端末の日付が変換されない。TimeCurrent() は、最新のサーバー時刻を取得します。

そこで、TimeCurrent()をテスターでシミュレートしてみると...。それとも、何か見落としているのでしょうか?テスターから本当の現在時刻 を知る必要があるのでは?

理論的には、WebRequestを使用して、どこかのサーバー(自分のサーバーを含む)から実際の現在時刻を要求することができます。そして、テストストラテジーの要件は、ターミナルにこのサーバーのアドレスを入力することでしょう。

 
Игорь Герасько:

そこで、TimeCurrent()をテスターでシミュレートしてみると...。それとも、何か見落としているのでしょうか?テスターから本当の現在 時刻を知る必要があります。

テスターからパソコンの現在時刻を取得することができます。

ただ問題は、悪意を持ったユーザーが大幅に変更する可能性があることです。

理想的には、WebRequest を使って、(自分のサーバーを含む)どこかのサーバーに実際の現在時刻を要求することができます。そして、テストストラテジーの要件は、ターミナルにこのサーバーのアドレスを入力することでしょう。

ストラテジーテスターでWebRequestが実行されない。
 

George Merts:

そのため、テスターで現在の日付を取得し、1ヶ月少ない日付までしかEAを動作させないようにする必要があります。

--

[]...パソコンで時間を進め、テスターからの取引完了を安心して読んでいる賢いユーザーも現れた。

DLLやWebRequestを 使用して、独立した第三者から時刻を取得します。それ以外の選択肢はないのではないか。
 
Igor Konyashin:
上記のように、DLLまたはWebRequestを介して、独立した第三者から時刻を取得します。それ以外の選択肢はないのではないか。
WebRequestは、結論から言うと、strategy testerでは 適用できません。そうですね、とても悲しいことですが、今のところ自作DLL以外には思いつきません...。そして、端末のリアルクオートを最後に受信した日付を知っていればいいようです。
 
George Merts:

テスターからパソコンの現在時刻を知ることができる。

ただ問題は、悪意を持ったユーザーがそれを大幅に変更できることです。

そういうことなんです。ただし、TimeCurrent() はテスターでも動作しない。
ストラテジーテスターでWebRequestが実行されない。
私は知りませんでした。情報提供ありがとうございました。
 
Игорь Герасько:
そういうことなんです。ただし、TimeCurrent()はテスターでも動作しない。
TimeCurrent() - 全く機能しません。これは現在のコンピュータの時間ではなく、ストラテジー・テスターの 設定に依存する見積もり時間を返します。
 
George Merts:
TimeCurrent() - 全く機能しません。これは現在のコンピュータの時間を返さず、ストラテジー・テスターの 設定に依存する見積もり時間を返します。
どのような設定をどこに入れればいいのでしょうか?TimrCurrent() - サーバー時刻。テスターでは、サーバーの時間刻みで到着時刻を表示します。フクロウを書き続けている限り、ローカルコンピュータの時間にフクロウを取り付けたことはありません。