MQL5でOpen,Low,High,Closeのパラメータを取得するにはどうしたらいいですか? - ページ 9 1234567891011121314 新しいコメント Igor Makanu 2019.07.30 16:03 #81 Renat Akhtyamov: 4枚組に慣れたので、よりコンパクトで読みやすくなった ;) 私のコンパクトな例はトップページにあります...基本的にはそこから始まっています ))) Artyom Trishkin 2019.07.30 17:52 #82 Igor Makanu:うーん、バイトに組みたくないビットがあるのでは...基本的にもう選択肢はないのでは!))))このスレッドがモデレーターの視線の下にあるのなら、何か手を打たないと・・・。 マクロは部品のために分解してしまいました。 アーテム、これって効くの? 2019.07.30 19:42:16.639 tst_iXXX_Copy (EURUSD,H1) テスト#1開始... 2019.07.30 19:42:40.199 tst_iXXX_Copy (EURUSD,H1) CopyClose : loops=500000000 , ms=23422 2019.07.30 19:42:40.199 tst_iXXX_Copy (EURUSD,H1) テスト2回目開始...。 2019.07.30 19:43:26.953 tst_iXXX_Copy (EURUSD,H1) iClose : loops=500000000 , ms=46609 2019.07.30 19:43:26.953 tst_iXXX_Copy (EURUSD,H1) テスト3番を開始... 2019.07.30 19:44:12.274 tst_iXXX_Copy (EURUSD,H1) Close[i] : loops=500000000 , ms=45156 2019.07.30 19:44:12.274 tst_iXXX_Copy (EURUSD,H1) テスト#4開始... 2019.07.30 19:44:42.080 tst_iXXX_Copy (EURUSD,H1) CopyRates : loops=500000000 , ms=29656 2019.07.30 19:44:42.080 tst_iXXX_Copy (EURUSD,H1) スクリプトを終了します。 はい、使えます。 2019.07.31 00:38:01.936 Start test № 1... 2019.07.31 00:38:31.097 CopyClose : loops=500000000 , ms=29015 2019.07.31 00:38:31.097 Start test № 2... 2019.07.31 00:41:25.095 iClose : loops=500000000 , ms=173875 2019.07.31 00:41:25.095 Start test № 3... 2019.07.31 00:44:29.777 Close[i] : loops=500000000 , ms=184547 2019.07.31 00:44:29.777 Start test № 4... 2019.07.31 00:45:01.074 CopyRates : loops=500000000 , ms=31172 2019.07.31 00:45:01.074 End script 結論から言うと 29秒 CopyClose() 173秒iClose() 184秒 クローズ[]の場合 31秒 CopyRates() どうしたんですか?なぜ6倍以上の差があるのでしょうか? D1でのSZ走行 Igor Makanu 2019.07.30 17:53 #83 Artyom Trishkin: どうしたんですか?なぜ6倍以上の差があるのでしょうか? イゴール・マカヌ うーん、バイトに組みたくないビットがあるのでは...基本的にもう選択肢はないのでは!)))) ))) Artyom Trishkin 2019.07.30 18:32 #84 Igor Makanu: うーん、バイトに組みたくないビットがあるのでは...基本的にもう選択肢はないのでは!))) ))) H1でテストしたところ、目に見えるほどの差はありませんでした。 2019.07.31 00:55:30.290 Start test № 1... 2019.07.31 00:55:58.234 CopyClose : loops=500000000 , ms=27812 2019.07.31 00:55:58.234 Start test № 2... 2019.07.31 00:58:59.095 iClose : loops=500000000 , ms=180734 2019.07.31 00:58:59.095 Start test № 3... 2019.07.31 01:02:06.834 Close[i] : loops=500000000 , ms=187610 2019.07.31 01:02:06.834 Start test № 4... 2019.07.31 01:02:38.365 CopyRates : loops=500000000 , ms=31406 2019.07.31 01:02:38.365 End script とビットとバイトは関係ないのか? Igor Makanu 2019.07.30 18:42 #85 Artyom Trishkin: とビットとバイトは関係ないのか? あなたのコンピューターはバカなんでしょう、とは言いませんよ? 私は何度もテストし、ローマンもテストしました。結果は同等です。 このテストでは、ハードディスクの速度は重要ではないはずです、あまり残っていません:OS、およびハードウェア=メモリ+ CPU、どこかに遅いものがあります。 もちろん、いくつかの "内側の世界 "のCore i3のオプションがあります , 私はCore™ i3-4170を持っています。 Artyom Trishkin 2019.07.30 19:09 #86 Igor Makanu: あなたのコンピューターはバカなんでしょう、とは言いませんよ? 私は何度もテストし、ローマンもテストしました。その結果は同等です。 このテストでは、ハードディスクの速度は重要ではないはずで、あまり残っていない:OS、およびハードウェア=メモリ+CPUは、どこかにラグがあるものです。 もちろん、いくつかの "内側の世界 "のCore i3のオプションがあります , 私はCore™ i3-4170を持っています。 2つ目のシンボルにぶら下がるテストEAで、タイマー内のイベント制御が一定になっているものがあります。何らかの影響を及ぼしていると考えることができます。また、CopyXXX以外の 機能でのみ。今のところ、チャートから外す理由はありません。このテストよりも、その存在が私の時事問題にとって重要なのです。 Andrey Barinov 2019.07.31 01:51 #87 Artyom Trishkin: H1でテストしましたが、顕著な違いはありませんでした。 以前、開発者の方が「5の新しいiXXX関数はCopyXXX関数のラッパーに過ぎない」とおっしゃっていました。 したがって、単一クエリでの差はないと考えられる。 Fast235 2019.07.31 03:16 #88 Renat Akhtyamov: 機能速度に関する評決は、どちらが速いですか? //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int Count=5000000; // кол-во проходов //--- void OnStart(void) { Print("Bench_1: ",Bench_1(Count)," msc"); Print("Bench_2: ",Bench_2(Count)," msc"); } //+------------------------------------------------------------------+ //| Bench_1 | //+------------------------------------------------------------------+ ulong Bench_1(const int _count) { const ulong StartTime=GetMicrosecondCount(); //--- for(int i=0; i<Count;i++) { datetime time = iTime(Symbol(),Period(),0); double open = iOpen(Symbol(),Period(),0); double high = iHigh(Symbol(),Period(),0); double low = iLow(Symbol(),Period(),0); double close = iClose(NULL,PERIOD_CURRENT,0); long volume= iVolume(Symbol(),0,0); } //--- return(GetMicrosecondCount() - StartTime); } //+------------------------------------------------------------------+ //| Bench_2 | //+------------------------------------------------------------------+ ulong Bench_2(const int _count) { datetime time[]; double open[]; // Open (цены открытия бара) double high[]; // High (цены максимума бара) double low[]; // Open (цены минимума бара) double close[]; // Open (цены минимума бара) long volume[]; // Close (цены закрытия бара) const ulong StartTime=GetMicrosecondCount(); //--- for(int i=0; i<Count;i++) { CopyTime(Symbol(),Period(),1,1,time); CopyOpen(Symbol(),Period(),1,1,open); CopyHigh(Symbol(),Period(),1,1,high); CopyLow(Symbol(),Period(),1,1,low); CopyClose(Symbol(),Period(),1,1,close); CopyTickVolume(Symbol(),Period(),1,1,volume); //--- datetime _time = time[0]; double _open = open[0]; double _high = high[0]; double _low = low[0]; double _close = close[0]; long _volume= volume[0]; } //--- return(GetMicrosecondCount() - StartTime); } //+------------------------------------------------------------------+ 台本作者は誰だか覚えていない Andrey Khatimlianskii 2019.07.31 10:48 #89 Igor Makanu: 実験には実験がある。最後の5億回分のテストコールはこちらです。そうですね、違いがわかりますね。あとは1分間に何回ティックがあるか(~60)、1時間に何回ティックがあるか(~3600)、1日に何回あるか(~86400)、この23秒が5億回のコールでどれくらい動くかを計算するだけです ... 5 787日=23秒の利益?各ティックで 最速関数を使用した場合! ))))) イマイチ、便利なものを使って、誰の言うことも聞かない テストと最適化を忘れていたよ、イゴール。そこにスピードが必要なのです。 Igor Makanu 2019.07.31 13:09 #90 Andrey Khatimlianskii: テストと最適化のことを忘れていたよ、イゴール。そこにスピードが必要なのです。 ええ、まあ...ここで真面目に議論している人がいないだけで、何のためにあるのか完全に抜け落ちていました ))) その通り!- しかし、CopyOpen()関数の便利な使い方が必要です...。を行う必要があり、おそらくCopyOpen()の呼び出しを 追加の関数でラップすると、パフォーマンスの向上が失われるでしょう。 ZZY: 一般的には、どこでもそうだと思いますが、アセンブラで書くと開発期間が長くなり、15分で書いたC++を使うよりも最終的なパフォーマンスが高くなるという事実はありません。 1234567891011121314 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
4枚組に慣れたので、よりコンパクトで読みやすくなった
;)
私のコンパクトな例はトップページにあります...基本的にはそこから始まっています )))
うーん、バイトに組みたくないビットがあるのでは...基本的にもう選択肢はないのでは!))))
このスレッドがモデレーターの視線の下にあるのなら、何か手を打たないと・・・。 マクロは部品のために分解してしまいました。
アーテム、これって効くの?
2019.07.30 19:42:16.639 tst_iXXX_Copy (EURUSD,H1) テスト#1開始...
2019.07.30 19:42:40.199 tst_iXXX_Copy (EURUSD,H1) CopyClose : loops=500000000 , ms=23422
2019.07.30 19:42:40.199 tst_iXXX_Copy (EURUSD,H1) テスト2回目開始...。
2019.07.30 19:43:26.953 tst_iXXX_Copy (EURUSD,H1) iClose : loops=500000000 , ms=46609
2019.07.30 19:43:26.953 tst_iXXX_Copy (EURUSD,H1) テスト3番を開始...
2019.07.30 19:44:12.274 tst_iXXX_Copy (EURUSD,H1) Close[i] : loops=500000000 , ms=45156
2019.07.30 19:44:12.274 tst_iXXX_Copy (EURUSD,H1) テスト#4開始...
2019.07.30 19:44:42.080 tst_iXXX_Copy (EURUSD,H1) CopyRates : loops=500000000 , ms=29656
2019.07.30 19:44:42.080 tst_iXXX_Copy (EURUSD,H1) スクリプトを終了します。
はい、使えます。
結論から言うと
どうしたんですか?なぜ6倍以上の差があるのでしょうか?
D1でのSZ走行
どうしたんですか?なぜ6倍以上の差があるのでしょうか?
うーん、バイトに組みたくないビットがあるのでは...基本的にもう選択肢はないのでは!))))
)))
Igor Makanu:
うーん、バイトに組みたくないビットがあるのでは...基本的にもう選択肢はないのでは!)))
)))
H1でテストしたところ、目に見えるほどの差はありませんでした。
とビットとバイトは関係ないのか?
とビットとバイトは関係ないのか?
あなたのコンピューターはバカなんでしょう、とは言いませんよ?
私は何度もテストし、ローマンもテストしました。結果は同等です。
このテストでは、ハードディスクの速度は重要ではないはずです、あまり残っていません:OS、およびハードウェア=メモリ+ CPU、どこかに遅いものがあります。
もちろん、いくつかの "内側の世界 "のCore i3のオプションがあります , 私はCore™ i3-4170を持っています。
あなたのコンピューターはバカなんでしょう、とは言いませんよ?
私は何度もテストし、ローマンもテストしました。その結果は同等です。
このテストでは、ハードディスクの速度は重要ではないはずで、あまり残っていない:OS、およびハードウェア=メモリ+CPUは、どこかにラグがあるものです。
もちろん、いくつかの "内側の世界 "のCore i3のオプションがあります , 私はCore™ i3-4170を持っています。
2つ目のシンボルにぶら下がるテストEAで、タイマー内のイベント制御が一定になっているものがあります。何らかの影響を及ぼしていると考えることができます。また、CopyXXX以外の 機能でのみ。今のところ、チャートから外す理由はありません。このテストよりも、その存在が私の時事問題にとって重要なのです。
H1でテストしましたが、顕著な違いはありませんでした。
以前、開発者の方が「5の新しいiXXX関数はCopyXXX関数のラッパーに過ぎない」とおっしゃっていました。
したがって、単一クエリでの差はないと考えられる。
機能速度に関する評決は、どちらが速いですか?
実験には実験がある。最後の5億回分のテストコールはこちらです。そうですね、違いがわかりますね。あとは1分間に何回ティックがあるか(~60)、1時間に何回ティックがあるか(~3600)、1日に何回あるか(~86400)、この23秒が5億回のコールでどれくらい動くかを計算するだけです ...
5 787日=23秒の利益?各ティックで 最速関数を使用した場合! )))))
イマイチ、便利なものを使って、誰の言うことも聞かない
テストと最適化を忘れていたよ、イゴール。そこにスピードが必要なのです。
テストと最適化のことを忘れていたよ、イゴール。そこにスピードが必要なのです。
ええ、まあ...ここで真面目に議論している人がいないだけで、何のためにあるのか完全に抜け落ちていました )))
その通り!- しかし、CopyOpen()関数の便利な使い方が必要です...。を行う必要があり、おそらくCopyOpen()の呼び出しを 追加の関数でラップすると、パフォーマンスの向上が失われるでしょう。
ZZY: 一般的には、どこでもそうだと思いますが、アセンブラで書くと開発期間が長くなり、15分で書いたC++を使うよりも最終的なパフォーマンスが高くなるという事実はありません。