スクリプト: sHistoryExport - МetaТrader4形式で履歴データをエクスポートする便利なスクリプト - ページ 4

 

こんにちは、


生成される.csvファイルが現在から過去になるようにスクリプトを変更することは可能でしょうか?

よろしくお願いします。

ありがとうございました。

 
CarlosFa:

生成される.csvファイルが現在から過去になるようにスクリプトを変更することは可能ですか?

はい:

for ( int i = copy_count-1; i > 0; i -- )

を次のように変更してください:

for ( int i = 1; i < copy_count; i ++ )
 
metatrader 5 カスタムチャート変換ファイル。ファイルが開きません。
 
Lvbey:

ありがとう!

しかし、このスクリプトの125行目あたりに、次のようなコードがあるのを発見しました。

125行目:for ( int i = copy_count-1; i >= 0; i -- )...

i > 0 (i >= 0であるべきだと思う) のため、最初のレコードがない。

^_^

を >= 0 に置き換えると、最後の(つまり最新の、現在の)バーのデータも取得することになりますが、これはおそらく不完全なものでしょう。これは望ましい動作かもしれませんが、かなり誤解を招くかもしれません。


ありがとうAndrey Khatimlianskii !

 
スクリプトを実行すると、最後のローソクが.csvファイルに表示されません。例えば、ブラジルでは、交渉の最終日は9月の最後の4日でしたが、エクスポートは9月の3日までしか表示されません。
メタトレーダー5の標準形式(ファイル>保存)で.csvをエクスポートしたところ、9月4日のローソク足が表示されました。助けていただけますか?
 
gscruzz:
スクリプトを実行すると、最後のローソクが.csvファイルに表示されません。例えば、ブラジルでは、交渉の最終日は9月の最後の4日であり、エクスポートは9月の3日までしか表示されません。
メタトレーダー5の標準形式(ファイル>保存)で.csvをエクスポートしたところ、9月4日のローソク足が表示されました。助けていただけますか?

こんにちは!

この行の "i > 0 "を "i >= 0 "に変更してください:

for ( int i = copy_count-1; i >= 0; i -- )
 

こんにちは、

私は何か間違ったことをしていると思います。ストラテジーテスターで EAを実行した後、このスクリプトを出力チャートにドラッグ&ドロップするのですが、空の結果しか得られません。何か本当に基本的なことが分かっていません。助けていただけますか?

ありがとうございます。

The Fundamentals of Testing in MetaTrader 5
The Fundamentals of Testing in MetaTrader 5
  • www.mql5.com
What are the differences between the three modes of testing in MetaTrader 5, and what should be particularly looked for? How does the testing of an EA, trading simultaneously on multiple instruments, take place? When and how are the indicator values calculated during testing, and how are the events handled? How to synchronize the bars from different instruments during testing in an "open prices only" mode? This article aims to provide answers to these and many other questions.
 

2021.01.05 21:10:32.910 HistoryExport (Usa500,H1)履歴のダウンロードと ファイルの書き込み: 0.0% 完了...


// 100回以下の失敗
if(++fail_cnt >= 100)
   return false;

試行回数が100回でも100万回でも、次のブロックは決して成功しません:

/次の部分をコピーすると、強制的にデータをロードする
if (CopyTime(symbol,period,size-1,1,times)==1)
{
   return true;
}
CheckServerHistoryでも:
//サーバー上のデータは十分か?
if (first_server_date>TimeCurrent()-size*PeriodSeconds(period))
   return false;

というのも、認識されたfirst_server_dateは通常、期待される履歴が過去に到達するよりも現在に近いからです。特に、チャート・オプションで "チャート内の最大バー数 "を"無制限 " に設定した場合、TERMINAL_MAXBARSは1000000を返すので、この条件は常に十分な履歴がロードされていないとみなす。

 
スクリプトはそれほど長くはないので、デバッガーを使って、どの行でスクリプトが「間違っている」のかを確認してほしい。
 
Marcel Fitzner:

2021.01.05 21:10:32.910 HistoryExport (Usa500,H1) 履歴のダウンロードとファイルの書き込み: 0.0%完了...


試行回数が100回でも100万回でも、以下のブロックは決して成功しません:

CheckServerHistory にもあります:

というのも、認識されたfirst_server_dateは通常、期待される履歴が過去に到達するよりも現在に近いからです。特に、チャート・オプションで "チャート内の最大バー数 "を"無制限 " に設定した場合、TERMINAL_MAXBARSは1000000を返すので、この条件は常に十分な履歴がロードされていないとみなす。

その通り、私はこのコードを標準ライブラリからコピーしただけだ。

これらの関数は 私のニーズに合うようにすでに書き直した。しかし、現時点では出版物を更新する準備ができていない。