エラー、バグ、質問 - ページ 2438 1...243124322433243424352436243724382439244024412442244324442445...3185 新しいコメント fxsaber 2019.04.18 10:15 #24371 Slava:2. OnTesterPassで1種類のフレームを読み込み、OnTesterDeinitで終了させる。その他のフレームはOnTesterDeinitで読み込まれます。この機能では、1パスが数フレームある場合、計算されたパスの結果をリアルタイムで作業することはできません。 fxsaber 2019.04.18 10:19 #24372 ここには純粋に方法論的な欠陥があるように思われる トレーディング、自動売買システム、ストラテジーテストに関するフォーラム EAにおける結果の自動置換を用いたストラテジータイムテーブルのテスト スラバ さん 2013.04.10 15:04 void OnTesterDeinit() { string name; ulong pass; long id; double value; int handle,i; BalanceInTime balance[]; MqlRates rates[]; //--- FrameFirst(); FrameFilter("",1); while(FrameNext(pass,name,id,value,balance)) { handle=FileOpen(name+"_"+string(id)+"_"+IntegerToString(pass,5,'0')+".txt",FILE_WRITE|FILE_CSV|FILE_ANSI); if(handle!=INVALID_HANDLE) { for(i=0; i<ArraySize(balance); i++) FileWrite(handle,balance[i].date,EnumToString(balance[i].entry),DoubleToString(balance[i].price,5),DoubleToString(balance[i].balance,2)); FileClose(handle); } } //--- FrameFirst(); FrameFilter("",2); while(FrameNext(pass,name,id,value,rates)) { handle=FileOpen(name+"_"+string(id)+"_"+IntegerToString(pass,5,'0')+".txt",FILE_WRITE|FILE_CSV|FILE_ANSI); if(handle!=INVALID_HANDLE) { for(i=0; i<ArraySize(rates); i++) FileWrite(handle,rates[i].time,DoubleToString(rates[i].open,5),DoubleToString(rates[i].high,5),DoubleToString(rates[i].low,5),DoubleToString(rates[i].close,5),string(rates[i].tick_volume)); FileClose(handle); } } //--- } ループ内のFrameNextの前に、ループの各パスでArrayFreeを呼び出すとよいでしょう。 Aleksey Vyazmikin 2019.04.18 10:53 #24373 Slava:1.はい、重複する可能性があります。 2. OnTesterPassで1種類のフレームを読み込み、OnTesterDeinitで終了させる。残りのフレームは OnTesterDeinit で読み込まれる。 このように数種類のフレームを送受信できることで、テスターでは再現しにくいエラーも修正することができました。そして、ある基準値との差がある場合のみ、フレームを送信していた。先ほどフレームの損失と言いましたが、1回のパスで多くのフレームが通過し、エージェントに問題が発生した場合、つまり接続が切れた場合、この状況に対して何か対処されるのでしょうか。 Slava 2019.04.18 10:56 #24374 fxsaber:オプトフォーマットを開くか?はい。 optファイルを読み込むコードの公開と引き換えに Slava 2019.04.18 10:57 #24375 fxsaber:この機能では、1パスあたり複数のフレームがある場合、カウントされたパスの結果をリアルタイムで作業することはできません。はい。 そのため、最適化が終わった後に「ノンコア」タイプのフレームを読み込む必要があるのです。 Slava 2019.04.18 11:03 #24376 Aleksey Vyazmikin:先ほどフレームロスの話をしましたが、1回のパスで多くのフレームが送信され、エージェントに問題があった場合、つまり通信が途絶えた場合、この状況に対して何か対処されるのでしょうか?何ができるのか? いずれにしても、最適化の結果は、そのフレームよりも早く、そして速く出ていくことになります。エージェントが停止した場合(コンピュータがシャットダウンした、サービスが停止した)、確かに何もできません。 フレームが送信されるまでは、結果を送信しないようにする、ということをやってみる。しかし、いつ直るかはわかりません。 Slava 2019.04.18 11:06 #24377 fxsaber: これは純粋に方法論的な欠陥と思われるループ内のFrameNextの前に、ループパスごとにArrayFreeを呼び出すとよいでしょう。不要なメモリの再割り当てを避けることができます。 この場合、99%の確率でアレイバッファは一度だけ確保されます Aleksey Vyazmikin 2019.04.18 11:10 #24378 Slava:何ができるのか? 最適化の 結果は、とにかくそのフレームよりも早く、速く出発することになります。エージェントが停止した場合(コンピュータがシャットダウンした、サービスが停止した)、できることはまったく何もありません。 フレームが送信されるまでは、結果を送信しない、ということを試してみてはどうでしょうか。しかし、いつ修正するかは不明です。フレーム送信前に、予想されるフレーム数を言って、予想より少なくてエージェントが使えない場合は、他のエージェントにパスを渡して、すでに受信したフレームを上書きするようにするとか? または、各フレームの本文に、その番号の総数とそのシーケンス番号を書き、同じように、すべてが来なかった場合は、再最適化する。 fxsaber 2019.04.18 11:17 #24379 Slava:はい。 optファイルを読み込むコードの公開と引き換えに録画がさらに気になりますね。フォーマットが分かれば、読書はする。 Slava 2019.04.18 11:23 #24380 Aleksey Vyazmikin:送信を開始する前に予想されるフレーム数を把握し、予想より少ないフレームが到着してエージェントが利用できない場合は、他のエージェントにパスを渡し、すでに受信したフレームを上書きすることは可能でしょうか。 または各フレームの本文にこの量で合計数とそのシーケンス番号を書き込み、同じように、すべてが来なかった場合は、再最適化する。すべてのパスがフレームを返さない場合はどうするのですか? 上記でテスターでのエラーキャッチの例を挙げました。ある結果がベンチマークと一致しない場合のみ、フレームを送信した 1...243124322433243424352436243724382439244024412442244324442445...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
2. OnTesterPassで1種類のフレームを読み込み、OnTesterDeinitで終了させる。その他のフレームはOnTesterDeinitで読み込まれます。
この機能では、1パスが数フレームある場合、計算されたパスの結果をリアルタイムで作業することはできません。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
EAにおける結果の自動置換を用いたストラテジータイムテーブルのテスト
スラバ さん 2013.04.10 15:04
1.はい、重複する可能性があります。
2. OnTesterPassで1種類のフレームを読み込み、OnTesterDeinitで終了させる。残りのフレームは OnTesterDeinit で読み込まれる。
このように数種類のフレームを送受信できることで、テスターでは再現しにくいエラーも修正することができました。そして、ある基準値との差がある場合のみ、フレームを送信していた。
先ほどフレームの損失と言いましたが、1回のパスで多くのフレームが通過し、エージェントに問題が発生した場合、つまり接続が切れた場合、この状況に対して何か対処されるのでしょうか。
オプトフォーマットを開くか?
はい。
optファイルを読み込むコードの公開と引き換えに
この機能では、1パスあたり複数のフレームがある場合、カウントされたパスの結果をリアルタイムで作業することはできません。
はい。
そのため、最適化が終わった後に「ノンコア」タイプのフレームを読み込む必要があるのです。
先ほどフレームロスの話をしましたが、1回のパスで多くのフレームが送信され、エージェントに問題があった場合、つまり通信が途絶えた場合、この状況に対して何か対処されるのでしょうか?
何ができるのか?
いずれにしても、最適化の結果は、そのフレームよりも早く、そして速く出ていくことになります。エージェントが停止した場合(コンピュータがシャットダウンした、サービスが停止した)、確かに何もできません。
フレームが送信されるまでは、結果を送信しないようにする、ということをやってみる。しかし、いつ直るかはわかりません。
これは純粋に方法論的な欠陥と思われる
不要なメモリの再割り当てを避けることができます。
この場合、99%の確率でアレイバッファは一度だけ確保されます
何ができるのか?
最適化の 結果は、とにかくそのフレームよりも早く、速く出発することになります。エージェントが停止した場合(コンピュータがシャットダウンした、サービスが停止した)、できることはまったく何もありません。
フレームが送信されるまでは、結果を送信しない、ということを試してみてはどうでしょうか。しかし、いつ修正するかは不明です。
フレーム送信前に、予想されるフレーム数を言って、予想より少なくてエージェントが使えない場合は、他のエージェントにパスを渡して、すでに受信したフレームを上書きするようにするとか?
または、各フレームの本文に、その番号の総数とそのシーケンス番号を書き、同じように、すべてが来なかった場合は、再最適化する。はい。
optファイルを読み込むコードの公開と引き換えに
録画がさらに気になりますね。フォーマットが分かれば、読書はする。
送信を開始する前に予想されるフレーム数を把握し、予想より少ないフレームが到着してエージェントが利用できない場合は、他のエージェントにパスを渡し、すでに受信したフレームを上書きすることは可能でしょうか。
または各フレームの本文にこの量で合計数とそのシーケンス番号を書き込み、同じように、すべてが来なかった場合は、再最適化する。すべてのパスがフレームを返さない場合はどうするのですか?
上記でテスターでのエラーキャッチの例を挙げました。ある結果がベンチマークと一致しない場合のみ、フレームを送信した