CopyTicks」のテスト - ページ 13 1...67891011121314151617181920...47 新しいコメント fxsaber 2016.09.13 09:31 #121 prostotrader:なぜそんなに知っているのですか?プラザIIに加え、FAST/FIXプロトコルがある数百の演算を1msで行うことが可能 ティックの歴史を見れば、RTS先物にそんなものはないことがわかる。 Vasiliy Sokolov 2016.09.13 14:46 #122 fxsaber:どうしてでしょう?結局のところ、HFTでさえ1ms以下の時間で指値注文を削除することはできないのです。一度に複数のアクションを組み合わせる特殊なタイプの成行注文があります(MT5ではありません)。アクションの離散性を1msのタイミングで設定しなければならないとは、誰が言ったのでしょうか?あらゆる取引行為は、基本的にデータベースである取引所コアに記録される。データベースへの書き込みは1msecよりはるかに速い。同じ理由で、マッチドビッドは100万分の1秒まで同一の発生時間を持つ長いティック列を形成する。つまり、チャート上では長いLastシーケンスとして表示されますが、実際には同時に取引が行われます(データベースに書き込まれます)。 fxsaber 2016.09.13 14:57 #123 Vasiliy Sokolov:一度に複数のアクションを組み合わせる特殊なタイプの成行注文があります(MT5ではありません)。誰が1msecのタイミングでアクションの離散性を設定すべきと言ったのでしょうか?あらゆる取引行為は、基本的にデータベースである取引所の中核部分への書き込みである。 1ミリ秒間に4回の刻み目は検出されていない。3 - 1回二人 - 数十万人。データベースへの書き込みは1msecよりはるかに速い。同じ理由で、マッチドビッドは100万分の1秒まで同一の発生時間を持つ長いティック列を形成する。つまり、チャート上では長いLastシーケンスとして表示されますが、実際には同時に取引が行われます(データベースに書き込まれます)。 フリッパーではなく、ベストバンドをモニターしていたことです(COPY_TICKS_INFO)。だから1msecが妥当なんです。HFTがあるとすれば、それはどこにあるのか?台本から察するに、何かのブレーキなのだろう。 fxsaber 2016.09.13 15:04 #124 スクリプトが出力するCOPY_TICKS_INFOは価格が0です。#property script_show_inputs sinput int Count = 100000; // Количество тиков на проверку #define TOSTRING(A) " " + #A + " = " + (string)Tick.A string TickToString( const MqlTick &Tick ) { static int i = 0; i++; return("Tick" + (string)i + ":" + TOSTRING(time) + "." + (string)(Tick.time_msc %1000) + TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume)); } void OnStart() { MqlTick Ticks[]; const int Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_INFO, 0, Count); for (int i = 0; i < Amount; i++) if ((Ticks[i].bid == 0) || (Ticks[i].ask == 0)) Print(TickToString(Ticks[i])); }結果2016.09.13 18:02:06.297 Test (RTS-9.16,M1) Tick2: time = 2016.09.12 18:52:36.378 bid = 0.0 ask = 0.0 last = 98480.0 volume = 1 2016.09.13 18:02:06.297 Test (RTS-9.16,M1) Tick1: time = 2016.09.12 18:44:59.951 bid = 0.0 ask = 0.0 last = 98480.0 volume = 1CopyTicksのバグ? fxsaber 2016.09.14 10:03 #125 インジケータは、CopyTicksが最後のティックを提供しない可能性があることを示します。#property indicator_chart_window #property indicator_buffers 0 #property indicator_plots 0 #define TOSTRING(A) " " + #A + " = " + (string)Tick.A string TickToString( const MqlTick &Tick ) { static int i = 0; i++; return("Tick" + (string)i + ":" + TOSTRING(time) + "." + (string)(Tick.time_msc %1000) + TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume)); } bool MySymbolInfoTick( const string Symb, MqlTick &Tick, const uint Type = COPY_TICKS_ALL ) { MqlTick Ticks[]; const int Amount = ::CopyTicks(Symb, Ticks, Type, 0, 1); const bool Res = (Amount > 0); if (Res) Tick = Ticks[Amount - 1]; return(Res); } int OnCalculate( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[] ) { MqlTick Tick1, Tick2; if (SymbolInfoTick(_Symbol, Tick2) && MySymbolInfoTick(_Symbol, Tick1)) if (Tick1.time_msc != Tick2.time_msc) Print(TickToString(Tick1) + "\n" + TickToString(Tick2) + "\n"); return(rates_total); }結果2016.09.14 12:55:23.047 Test2 (Si-9.16,M1) Tick250: time = 2016.09.14 12:55:04.521 bid = 64999.0 ask = 65002.0 last = 65002.0 volume = 2 2016.09.14 12:55:23.047 Test2 (Si-9.16,M1) Tick249: time = 2016.09.14 12:55:04.513 bid = 64999.0 ask = 65002.0 last = 65002.0 volume = 2 Slava 2016.09.14 10:27 #126 fxsaber: スクリプトは、価格がゼロのCOPY_TICKS_INFOを出力します。結果CopyTicksのバグ? フラグも出力 Rashid Umarov 2016.09.14 10:28 #127 Slawa: フラグも出力する例えばstring GetTickFlag(uint tickflag) { string flag=""; //--- if((tickflag&TICK_FLAG_BID)==TICK_FLAG_BID) flag=flag+"TICK_FLAG_BID"; if((tickflag&TICK_FLAG_ASK)==TICK_FLAG_ASK) flag=flag+" TICK_FLAG_ASK"; if((tickflag&TICK_FLAG_LAST)==TICK_FLAG_LAST) flag=flag+" TICK_FLAG_LAST"; if((tickflag&TICK_FLAG_VOLUME)==TICK_FLAG_VOLUME) flag=flag+" TICK_FLAG_VOLUME"; if((tickflag&TICK_FLAG_BUY)==TICK_FLAG_BUY) flag=flag+" TICK_FLAG_BUY"; if((tickflag&TICK_FLAG_SELL)==TICK_FLAG_SELL) flag=flag+" TICK_FLAG_SELL"; if(StringLen(flag)==0) return("FLAG_UNKNOWN"); return(flag); } //+------------------------------------------------------------------+ fxsaber 2016.09.14 10:41 #128 Slawa: フラグも出力する修正済み#property script_show_inputs sinput int Count = 1000000; // Количество тиков на проверку #define TOSTRING(A) " " + #A + " = " + (string)Tick.A string TickToString( const MqlTick &Tick ) { static int i = 0; i++; return("Tick" + (string)i + ":" + TOSTRING(time) + "." + (string)(Tick.time_msc %1000) + TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume) + TOSTRING(flags)); } void OnStart() { MqlTick Ticks[]; const int Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_INFO, 0, Count); for (int i = 0; i < Amount; i++) if ((Ticks[i].bid == 0) || (Ticks[i].ask == 0)) Print(TickToString(Ticks[i])); }BCS-MetaTrader5での結果。2016.09.14 13:37:03.896 Test (Si-9.16,M1) Tick23: time = 2016.09.13 18:52:35.505 bid = 0.0 ask = 0.0 last = 65253.0 volume = 35 flags = 6 2016.09.14 13:37:03.896 Test (Si-9.16,M1) Tick22: time = 2016.09.13 18:44:59.978 bid = 0.0 ask = 0.0 last = 65253.0 volume = 35 flags = 6 2016.09.14 13:37:03.895 Test (Si-9.16,M1) Tick21: time = 2016.09.13 00:02:36.809 bid = 0.0 ask = 0.0 last = 0.0 volume = 0 flags = 6 2016.09.14 13:37:03.895 Test (Si-9.16,M1) Tick20: time = 2016.09.13 00:02:36.809 bid = 0.0 ask = 0.0 last = 0.0 volume = 0 flags = 6 2016.09.14 13:37:03.895 Test (Si-9.16,M1) Tick19: time = 2016.09.12 18:52:35.635 bid = 0.0 ask = 0.0 last = 64721.0 volume = 2 flags = 6 2016.09.14 13:37:03.895 Test (Si-9.16,M1) Tick18: time = 2016.09.09 18:52:09.8 bid = 0.0 ask = 0.0 last = 64729.0 volume = 43 flags = 6 2016.09.14 13:37:03.895 Test (Si-9.16,M1) Tick17: time = 2016.09.09 18:44:59.923 bid = 0.0 ask = 0.0 last = 64729.0 volume = 43 flags = 6 2016.09.14 13:37:03.894 Test (Si-9.16,M1) Tick16: time = 2016.09.08 23:53:05.468 bid = 0.0 ask = 0.0 last = 64118.0 volume = 1 flags = 6 2016.09.14 13:37:03.894 Test (Si-9.16,M1) Tick15: time = 2016.09.08 18:51:59.107 bid = 0.0 ask = 0.0 last = 63870.0 volume = 99 flags = 6 2016.09.14 13:37:03.894 Test (Si-9.16,M1) Tick14: time = 2016.09.08 18:44:59.570 bid = 0.0 ask = 0.0 last = 63870.0 volume = 99 flags = 6 2016.09.14 13:37:03.893 Test (Si-9.16,M1) Tick13: time = 2016.09.07 23:56:45.427 bid = 0.0 ask = 0.0 last = 64263.0 volume = 1 flags = 6 2016.09.14 13:37:03.893 Test (Si-9.16,M1) Tick12: time = 2016.09.07 18:52:00.724 bid = 0.0 ask = 0.0 last = 64472.0 volume = 6 flags = 6 2016.09.14 13:37:03.893 Test (Si-9.16,M1) Tick11: time = 2016.09.07 18:44:59.713 bid = 0.0 ask = 0.0 last = 64472.0 volume = 6 flags = 6 2016.09.14 13:37:03.893 Test (Si-9.16,M1) Tick10: time = 2016.09.06 23:53:48.388 bid = 0.0 ask = 0.0 last = 64720.0 volume = 1 flags = 6 2016.09.14 13:37:03.893 Test (Si-9.16,M1) Tick9: time = 2016.09.06 23:53:48.388 bid = 0.0 ask = 0.0 last = 64720.0 volume = 1 flags = 6 2016.09.14 13:37:03.893 Test (Si-9.16,M1) Tick8: time = 2016.09.06 18:53:15.598 bid = 0.0 ask = 0.0 last = 64679.0 volume = 5 flags = 6 2016.09.14 13:37:03.893 Test (Si-9.16,M1) Tick7: time = 2016.09.06 18:44:59.960 bid = 0.0 ask = 0.0 last = 64679.0 volume = 5 flags = 6 2016.09.14 13:37:03.892 Test (Si-9.16,M1) Tick6: time = 2016.09.05 23:59:06.607 bid = 0.0 ask = 0.0 last = 65225.0 volume = 3 flags = 6 2016.09.14 13:37:03.892 Test (Si-9.16,M1) Tick5: time = 2016.09.05 23:59:06.607 bid = 0.0 ask = 0.0 last = 65225.0 volume = 3 flags = 6 2016.09.14 13:37:03.892 Test (Si-9.16,M1) Tick4: time = 2016.09.05 23:59:03.529 bid = 0.0 ask = 0.0 last = 65225.0 volume = 3 flags = 6 2016.09.14 13:37:03.892 Test (Si-9.16,M1) Tick3: time = 2016.09.05 23:54:00.315 bid = 0.0 ask = 0.0 last = 65225.0 volume = 3 flags = 6 2016.09.14 13:37:03.892 Test (Si-9.16,M1) Tick2: time = 2016.09.05 18:51:40.877 bid = 0.0 ask = 0.0 last = 65178.0 volume = 2 flags = 6 2016.09.14 13:37:03.892 Test (Si-9.16,M1) Tick1: time = 2016.09.05 18:44:59.998 bid = 0.0 ask = 0.0 last = 65178.0 volume = 2 flags = 6 Rashid Umarov 2016.09.14 10:49 #129 fxsaber:BCS-MetaTrader5での結果。 リアルなのかデモなのか?確かデモ 口座でも似たようなことがあったはず。 fxsaber 2016.09.14 10:52 #130 Rashid Umarov: リアルなのかデモなのか?確かデモ 口座でも似たようなことがあったはずです。リアル。再現できない? 1...67891011121314151617181920...47 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
なぜそんなに知っているのですか?
プラザIIに加え、FAST/FIXプロトコルがある
数百の演算を1msで行うことが可能
どうしてでしょう?結局のところ、HFTでさえ1ms以下の時間で指値注文を削除することはできないのです。
結果
CopyTicksのバグ?
インジケータは、CopyTicksが最後のティックを提供しない可能性があることを示します。
結果
スクリプトは、価格がゼロのCOPY_TICKS_INFOを出力します。
結果
CopyTicksのバグ?
フラグも出力する
例えば
フラグも出力する
修正済み
BCS-MetaTrader5での結果。
BCS-MetaTrader5での結果。
リアルなのかデモなのか?確かデモ 口座でも似たようなことがあったはずです。
リアル。再現できない?