2016年7月4日月曜日

【解決&多謝】 複数通貨ペアのOnTick() EventSetMillisecondTimer

複数通貨ペアのOnTickで詰まりました。
いや、詰みましたというほうが正しい表現ですね。

こちらでSOS信号を出していたのですが「だいすけ」さんからありがたい教えを頂きました。

「EventSetMillisecondTimer」でミリ秒単位で制御ができるというものです。

だいすけさんありがとうございます!!!


MQL4のサイトにはEventSetTimerのすぐ上にあったのに全く気が付きませんでした・・・

早速稼働テストをしてみたいのですが、
その前に疑問がありますEventSetTimerで1秒をセットしても一分間に60回動作していない気がするのです。

そこで!!
int i,os;datetime t;string texts;
void OnInit(){EventSetTimer(1);}
void OnDeinit(const int reason){EventKillTimer();}
void OnTimer(){if(os==Minute()){i++;}else{texts+=Hour()+":"+Minute()+" count"+i+"\n";Comment(texts);i=0;os=Minute();}}

1秒ごとにOnTimerを動くようにセットして
サーバー時間の分が変わる毎に何回動作したか左上コメントに記録します。
第一回目は10:14スタート直後に出ますので0
次の10:15は途中から始まるので少なくてOKです(←ちゃんと処理しなくてごめんなさい)
三行目の10:16からを見て下さい!
一分当たり30回~81回まであります・・・・・・・
何かのずれで前後の±があるのかと思いましたが
10:26前後をご覧ください
61回、64回、64回、75回う~~~~~ん謎です。
処理に手間取ると減ることはあるのかと思いますが、
増えるのはなぜでしょうか サーバー時間の更新が遅いのかもしれませんね








0 件のコメント:

コメントを投稿