CopyTicks」のテスト - ページ 40 1...333435363738394041424344454647 新しいコメント fxsaber 2017.11.02 21:02 #391 Copytixは既存のティックを取り出せないstruct MQLTICK { uchar Data[sizeof(MqlTick)]; }; union UNION { MQLTICK Tick1; MqlTick Tick2; UNION() { ArrayInitialize(this.Tick1.Data, 1); } }; #define TOSTRING(A) #A + " = " + (string)(A) void OnStart() { const string Name = "A1234"; if (CustomSymbolCreate(Name) || SymbolInfoInteger(Name, SYMBOL_CUSTOM)) { UNION Union; MqlTick Ticks[] = {{0}}; Ticks[0] = Union.Tick2; Ticks[0].time = TimeCurrent(); Ticks[0].time_msc = Ticks[0].time * 1000; Print(TOSTRING(CustomTicksReplace(Name, Ticks[0].time_msc, Ticks[0].time_msc, Ticks))); // Тик записали без проблем MqlTick Ticks2[]; SymbolSelect(Name, true); // Прочесть тик не можем Print(TOSTRING(CopyTicksRange(Name, Ticks2))); Print(TOSTRING(CopyTicks(Name, Ticks2))); SymbolSelect(Name, false); CustomSymbolDelete(Name); } }結果CustomTicksReplace(Name,Ticks[0].time_msc,Ticks[0].time_msc,Ticks) = 1 CopyTicksRange(Name,Ticks2) = 0 CopyTicks(Name,Ticks2) = 0 fxsaber 2017.11.02 21:11 #392 Copytixは生データを変更するstruct MQLTICK { uchar Data[sizeof(MqlTick)]; }; union UNION { MQLTICK Tick1; MqlTick Tick2; UNION() { ArrayInitialize(this.Tick1.Data, 1); } }; #define TOSTRING(A) #A + " = " + (string)(A) void OnStart() { const string Name = "A1234"; if (CustomSymbolCreate(Name) || SymbolInfoInteger(Name, SYMBOL_CUSTOM)) { UNION Union; MqlTick Ticks[] = {{0}}; Ticks[0] = Union.Tick2; Ticks[0].time = 0; Ticks[0].time_msc = 0; Print(TOSTRING(Ticks[0].ask)); Print(TOSTRING(CustomTicksReplace(Name, Ticks[0].time_msc, Ticks[0].time_msc, Ticks))); MqlTick Ticks2[]; SymbolSelect(Name, true); // Прочесть тик не можем Print(TOSTRING(CopyTicksRange(Name, Ticks2))); Print(TOSTRING(Ticks2[0].ask)); SymbolSelect(Name, false); CustomSymbolDelete(Name); } }結果Ticks[0].ask = 7.748604185489348 e-304 CustomTicksReplace(Name,Ticks[0].time_msc,Ticks[0].time_msc,Ticks) = 1 CopyTicksRange(Name,Ticks2) = 1 Ticks2[0].ask = 0.0 fxsaber 2017.11.14 07:08 #393 なぜ不要なチックが発生するのか?スクリプトが過剰な刻みを出力するstring GetTickFlag( uint tickflag ) { string flag = ""; #define TICKFLAG_MACRO(A) flag += ((bool)(tickflag & TICK_FLAG_##A)) ? " TICK_FLAG_" + #A : ""; TICKFLAG_MACRO(BID) TICKFLAG_MACRO(ASK) TICKFLAG_MACRO(LAST) TICKFLAG_MACRO(VOLUME) TICKFLAG_MACRO(BUY) TICKFLAG_MACRO(SELL) #undef TICKFLAG_MACRO if (flag == "") flag = " FLAG_UNKNOWN (" + (string)tickflag + ")"; return(flag); } #define TOSTRING(A) " " + #A + " = " + (string)Tick.A string TickToString( const MqlTick &Tick ) { return(TOSTRING(time) + "." + (string)IntegerToString(Tick.time_msc %1000, 3, '0') + TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume) + GetTickFlag(Tick.flags)); } struct MQLTICK : public MqlTick { bool operator ==( const MqlTick &Tick ) const { return((!Tick.ask || (Tick.ask == this.ask)) && (!Tick.bid || (Tick.bid == this.bid))); } void operator =( const MqlTick &Tick ) { this.ask = Tick.ask ? Tick.ask : this.ask; this.bid = Tick.bid ? Tick.bid : this.bid; } }; void OnStart() { MqlTick Ticks[]; const int Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, 0, 1 e4); MQLTICK Tick = {0}; for (int i = 0; i < Amount; i++) if (Tick == Ticks[i]) Print(TickToString(Ticks[i])); else Tick = Ticks[i]; }EURUSD Metaquotes-Demoでの結果。 time = 2017.11.14 02:27:14.352 bid = 1.16679 ask = 1.16682 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 02:29:11.325 bid = 1.16685 ask = 1.16687 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 03:04:02.402 bid = 1.16715 ask = 1.16717 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 03:41:09.453 bid = 1.16707 ask = 1.1671 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 03:42:53.101 bid = 1.16718 ask = 1.16721 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 04:51:22.072 bid = 1.16719 ask = 1.16721 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 04:53:55.649 bid = 1.16714 ask = 1.16717 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 04:56:12.254 bid = 1.16713 ask = 1.16716 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 04:57:12.497 bid = 1.16713 ask = 1.16716 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 04:58:28.934 bid = 1.16719 ask = 1.16722 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 05:18:44.717 bid = 1.16728 ask = 1.16731 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 05:25:39.559 bid = 1.16725 ask = 1.16728 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 05:27:54.243 bid = 1.16718 ask = 1.1672 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 05:29:38.909 bid = 1.16718 ask = 1.1672 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 05:31:40.868 bid = 1.16719 ask = 1.1672 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 05:38:29.393 bid = 1.16709 ask = 1.16712 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 05:39:29.429 bid = 1.16709 ask = 1.16712 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 05:47:36.539 bid = 1.16718 ask = 1.1672 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 06:19:44.287 bid = 1.16726 ask = 1.16729 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 06:21:11.941 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 06:22:22.686 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 06:23:11.019 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 06:23:24.926 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 06:24:22.060 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 06:24:26.871 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 06:25:26.704 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 06:25:27.401 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 06:42:16.087 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 06:44:00.557 bid = 1.16734 ask = 1.16737 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 06:44:36.362 bid = 1.16734 ask = 1.16737 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 06:45:00.577 bid = 1.16734 ask = 1.16737 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 06:51:36.472 bid = 1.16734 ask = 1.16737 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 06:52:37.091 bid = 1.16734 ask = 1.16737 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 06:53:38.025 bid = 1.16734 ask = 1.16737 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 06:56:11.389 bid = 1.16729 ask = 1.16732 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 07:03:22.022 bid = 1.16708 ask = 1.16711 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 07:08:35.305 bid = 1.16718 ask = 1.16721 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 07:24:15.039 bid = 1.16755 ask = 1.16758 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 07:27:16.339 bid = 1.16751 ask = 1.16754 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 07:39:26.342 bid = 1.16739 ask = 1.16742 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 07:43:33.909 bid = 1.16744 ask = 1.16747 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 07:45:25.462 bid = 1.16744 ask = 1.16747 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 07:47:05.824 bid = 1.16741 ask = 1.16744 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 07:48:19.985 bid = 1.16744 ask = 1.16747 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 07:49:57.642 bid = 1.16744 ask = 1.16747 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 07:52:39.036 bid = 1.16738 ask = 1.16741 last = 0.0 volume = 0 TICK_FLAG_ASK time = 2017.11.14 08:04:47.750 bid = 1.16739 ask = 1.16741 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 08:23:23.778 bid = 1.16705 ask = 1.16707 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK time = 2017.11.14 08:28:22.233 bid = 1.16706 ask = 1.16708 last = 0.0 volume = 0 TICK_FLAG_BID time = 2017.11.14 08:28:37.245 bid = 1.16706 ask = 1.16708 last = 0.0 volume = 0 TICK_FLAG_ASK fxsaber 2017.11.14 08:33 #394 COPY_TICKS_ALLモードのCopitixは、Bid/Askフィールドがゼロで素人が記入したものです。void OnStart() { MqlTick Ticks[]; const int Amount = CopyTicks(_Symbol, Ticks); ArrayPrint(Ticks); }[1986] 2017.11.14 10:12:11 1.16873 1.16873 0.0000 0 1510654331879 6 [1987] 2017.11.14 10:12:12 1.16871 1.16873 0.0000 0 1510654332026 2 [1988] 2017.11.14 10:12:12 1.16871 1.16871 0.0000 0 1510654332947 4 [1989] 2017.11.14 10:12:16 1.16869 1.16870 0.0000 0 1510654336930 6 [1990] 2017.11.14 10:12:17 1.16867 1.16868 0.0000 0 1510654337028 6 [1991] 2017.11.14 10:12:20 1.16866 1.16868 0.0000 0 1510654340943 2 [1992] 2017.11.14 10:12:22 1.16868 1.16869 0.0000 0 1510654342728 6 [1993] 2017.11.14 10:12:22 1.16868 1.16870 0.0000 0 1510654342834 4 [1994] 2017.11.14 10:12:22 1.16868 1.16869 0.0000 0 1510654342954 4 [1995] 2017.11.14 10:12:23 1.16867 1.16869 0.0000 0 1510654343339 2 [1996] 2017.11.14 10:12:27 1.16867 1.16868 0.0000 0 1510654347042 4 [1997] 2017.11.14 10:12:31 1.16867 1.16869 0.0000 0 1510654351428 4 [1998] 2017.11.14 10:12:31 1.16868 1.16869 0.0000 0 1510654351832 2 [1999] 2017.11.14 10:12:31 1.16869 1.16871 0.0000 0 1510654351942 6 これは何のため?INFO-modeではこの動作は便利ですが、ALLでは生データの取得を待ち、GUIにのみ表示されます。価格が変化していない場合は、nullとなる。このままでは、国旗が 不要な存在に見えてしまいます。null価格を表示する代わりに、このフラグでMqlTick-structureを増やしました。tkcは(NULL価格なしで)旗だけを格納し、(旗なしで)価格だけを格納し、あるいはそこに旗と価格の両方を持つことは非合理的なのでしょうか?また、なぜフラッグが導入されるのでしょうか?TICK_FLAG_VOLUME – тик изменил объем音量が変わったかどうかは全く関係ありません。それとも、私が何か勘違いしているのでしょうか?ZS Raw ALLデータは、カスタム文字を通じたデータ交換経路の問題に直結するため、特にカスタム文字に必要です。 Sergey Chalyshev 2017.11.14 10:46 #395 fxsaber:COPY_TICKS_ALLモードのCopitixは、Bid/Askフィールドがゼロで素人が記入したものです。 何のために行うのか?INFO-modeではこの動作は便利ですが、ALL-modeでは生データを待ちますが、GUIにしか表示されないのです。価格が変化していない場合は、NULLとなる。このままでは、国旗が 不要な存在に見えてしまいます。null価格を表示する代わりに、このフラグでMqlTick-structureを増やしました。tkcは(NULL価格なしで)旗だけを格納し、(旗なしで)価格だけを格納し、あるいはそこに旗と価格の両方を持つことは非合理的なのでしょうか?また、なぜフラッグが導入されるのでしょうか?音量が変わったかどうかは全く関係ない。それとも、私が何か誤解しているのでしょうか?SZY Raw ALLデータは、カスタム文字を介したデータ交換経路の問題に直接対処するため、特にカスタム文字に必要なデータです。指摘された欠点について、サービデックに書いているのですか?すべてが無駄になる気がします。そして、なぜ旗なのか?TICK_FLAG_VOLUME - 刻み目の変化量です。これは非常に重要な指標だと思います。取引は実行され、変更されただけでなく、入札依頼を移動したことを他にどのように知ることができますか? fxsaber 2017.11.14 11:03 #396 Sergey Chalyshev: 指摘された不備について、サービスデスクに手紙を出していますか?SDは、すべてのリクエストに迅速に対応します。そこでさらに議論を重ねます。これは非常に重要な指標だと思います。ビッドとアスクが変わっただけでなく、取引が成立したことを他にどうやって知ることができるのでしょうか?フラッグだけで十分です。TICK_FLAG_LAST - 刻み目によって最後の取引の価格が変更されました。 貿易が成立した」と変更することで前回の価格が変わった こと......誰も気にしていない。全く同じ価格と数量の案件が何件か連続している場合があります。したがって、フラグは1つだけであるべきです - 契約です。 Dmitriy Skub 2017.11.14 11:14 #397 TICK_FLAG_VOLUME - 刻み目の変化量ヘルプに書いてあることを今までなんとなく考えていた。 何を変えたのか、そのボリュームは?上に書いてあることはどういう意味なんだろう(笑)。 Sergey Chalyshev 2017.11.14 11:22 #398 fxsaber:SRは、すべてのリクエストに迅速に対応します。そこでさらに議論を重ねます。必要なのは、フラッグだけです。 貿易が成立した」と変更することで価格が変わったことは、誰にも関係ないことです。全く同じ価格と数量の案件が何件か連続している場合があります。したがって、フラグは1つだけであるべきです。レスポンシブであれば、それはそれでいいのです。国旗についてはまた、Expert Advisorで状況を分析し、マッチングトレードを組み合わせることで、なんだか十分な気がしてきたのです。この状況 - 交換時間、サーバー時間、コンピューター 時間が一致しない。MarketClosedで、最後の価格でも取引があれば、取引中ということになりますが、どうすればいいのでしょうか?また、すべての取引を1つのレベルにまとめると、そのレベルが何時取引されたのかが分からなくなるのでは?追伸:余分なフラグは、フラグの送信量に影響を与えません。 fxsaber 2017.11.14 11:26 #399 Sergey Chalyshev: 反応すれば、それはそれでいいのです。フラッグについて私も、状況分析用のEAで、偶然のトレードを組み合わせるという発想があったのですが、なんだか物足りないですね。このような状況では、交換時間、サーバー時間、コンピューター時間が一致しません。MarketClosedで、最終価格でも取引があれば、取引中ということになりますが、どうすればいいのでしょうか?また、1つのレベルですべての取引をまとめると、そのレベルがいつまで取引されていたのかがわからなくなるのでは?なぜ1つのレベルで組み合わせるのか?私なら統合せず、リボンは今のまま、つまり交換で出てきたものをそのままにします。追伸:不要なフラグは、フラグの送信量に影響を与えません。 MQは生データを返さないので、フラグは強制的に計測されます。CopyTicksの内部で修正するのです。 fxsaber 2017.11.17 06:45 #400 tkcファイルは月別に分かれています。このため質問ターミナルにまだティックデータがアップロードされていない場合、CopyTicks を呼び出すと、ターミナルはどの tkc ファイルをプルするのか知ることができますか?CopyTicksRangeはCopyTicksに基づいて実装されているのか、それとも独立して実装されているのか?例えば、9月のティックを取得する場合、CopyTicksよりもCopyTicksRangeの方が常に高速になるという理解で合っていますか?CopyTicksは入力パラメータを通して、どの月のデータを取得すべきかを知らないからです。一刻も早くインジケーターに履歴を残す必要があります。CopyTicksRangeで問い合わせると、すべてがダウンロードされるまで、-1としてバウンスを取得することが可能です。また、当月、前月と月別に依頼する場合は、当月、前月、前々月となります。遅くなることはありませんが、少なくともある程度の履歴がある状態でインジケータが動作するようになります。そうだろ? 1...333435363738394041424344454647 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
結果
Copytixは生データを変更する
結果
なぜ不要なチックが発生するのか?
スクリプトが過剰な刻みを出力する
EURUSD Metaquotes-Demoでの結果。
COPY_TICKS_ALLモードのCopitixは、Bid/Askフィールドがゼロで素人が記入したものです。
これは何のため?INFO-modeではこの動作は便利ですが、ALLでは生データの取得を待ち、GUIにのみ表示されます。
価格が変化していない場合は、nullとなる。このままでは、国旗が 不要な存在に見えてしまいます。null価格を表示する代わりに、このフラグでMqlTick-structureを増やしました。
tkcは(NULL価格なしで)旗だけを格納し、(旗なしで)価格だけを格納し、あるいはそこに旗と価格の両方を持つことは非合理的なのでしょうか?
また、なぜフラッグが導入されるのでしょうか?
音量が変わったかどうかは全く関係ありません。それとも、私が何か勘違いしているのでしょうか?
ZS Raw ALLデータは、カスタム文字を通じたデータ交換経路の問題に直結するため、特にカスタム文字に必要です。
COPY_TICKS_ALLモードのCopitixは、Bid/Askフィールドがゼロで素人が記入したものです。
何のために行うのか?INFO-modeではこの動作は便利ですが、ALL-modeでは生データを待ちますが、GUIにしか表示されないのです。
価格が変化していない場合は、NULLとなる。このままでは、国旗が 不要な存在に見えてしまいます。null価格を表示する代わりに、このフラグでMqlTick-structureを増やしました。
tkcは(NULL価格なしで)旗だけを格納し、(旗なしで)価格だけを格納し、あるいはそこに旗と価格の両方を持つことは非合理的なのでしょうか?
また、なぜフラッグが導入されるのでしょうか?
音量が変わったかどうかは全く関係ない。それとも、私が何か誤解しているのでしょうか?
SZY Raw ALLデータは、カスタム文字を介したデータ交換経路の問題に直接対処するため、特にカスタム文字に必要なデータです。
指摘された欠点について、サービデックに書いているのですか?
すべてが無駄になる気がします。
そして、なぜ旗なのか?
これは非常に重要な指標だと思います。取引は実行され、変更されただけでなく、入札依頼を移動したことを他にどのように知ることができますか?
指摘された不備について、サービスデスクに手紙を出していますか?
SDは、すべてのリクエストに迅速に対応します。そこでさらに議論を重ねます。
これは非常に重要な指標だと思います。ビッドとアスクが変わっただけでなく、取引が成立したことを他にどうやって知ることができるのでしょうか?
フラッグだけで十分です。
TICK_FLAG_VOLUME - 刻み目の変化量
ヘルプに書いてあることを今までなんとなく考えていた。
何を変えたのか、そのボリュームは?上に書いてあることはどういう意味なんだろう(笑)。
SRは、すべてのリクエストに迅速に対応します。そこでさらに議論を重ねます。
必要なのは、フラッグだけです。
貿易が成立した」と変更することで価格が変わったことは、誰にも関係ないことです。全く同じ価格と数量の案件が何件か連続している場合があります。したがって、フラグは1つだけであるべきです。レスポンシブであれば、それはそれでいいのです。
国旗については
また、Expert Advisorで状況を分析し、マッチングトレードを組み合わせることで、なんだか十分な気がしてきたのです。
この状況 - 交換時間、サーバー時間、コンピューター 時間が一致しない。MarketClosedで、最後の価格でも取引があれば、取引中ということになりますが、どうすればいいのでしょうか?
また、すべての取引を1つのレベルにまとめると、そのレベルが何時取引されたのかが分からなくなるのでは?
追伸:余分なフラグは、フラグの送信量に影響を与えません。
反応すれば、それはそれでいいのです。
フラッグについて
私も、状況分析用のEAで、偶然のトレードを組み合わせるという発想があったのですが、なんだか物足りないですね。
このような状況では、交換時間、サーバー時間、コンピューター時間が一致しません。MarketClosedで、最終価格でも取引があれば、取引中ということになりますが、どうすればいいのでしょうか?
また、1つのレベルですべての取引をまとめると、そのレベルがいつまで取引されていたのかがわからなくなるのでは?
なぜ1つのレベルで組み合わせるのか?私なら統合せず、リボンは今のまま、つまり交換で出てきたものをそのままにします。
tkcファイルは月別に分かれています。このため質問