CopyTicks」のテスト - ページ 17 1...101112131415161718192021222324...47 新しいコメント Slava 2016.09.20 07:43 #161 fxsaber:ティックバーボリュームは 初歩的なことなのでしょうか?取引所では原則的に何の意味もない指標。意識して使うことはできない。ゴミのようなものです。まあ実際、証券取引所のティックボリュームはフリッパーの数なんですけどね。つまり、実際の取引数です。 fxsaber 2016.09.20 08:01 #162 Slawa:まあ実際、証券取引所のティックボリュームはフリッパーの数なんですけどね。つまり、実際の取引数です。 そのため、前回と全く同じ取引が来てもバーは変わりません。 Slava 2016.09.20 08:28 #163 fxsaber: そのため、前回と全く同じ取引が来てもバーは変わりません。 ティックとリアルボリュームの変化 fxsaber 2016.09.22 09:20 #164 Expert Advisorが新鮮な履歴ティックを書き込み、CopyTicksのN-thirdバグを明らかにする。#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280 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)(Tick.time_msc %1000) + TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume) + GetTickFlag(Tick.flags)); } #define TOSTRING2(A) #A + " = " + (string)A int AddFreshTicks( MqlTick &Ticks[], const string Symb = NULL, const uint flags = COPY_TICKS_ALL ) { int Res = 0; const int Amount = ArraySize(Ticks); MqlTick NewTicks[]; const int NewAmount = (Amount == 0) ? CopyTicks((Symb == NULL)? Symbol() : Symb, NewTicks, flags) : CopyTicks((Symb == NULL)? Symbol() : Symb, NewTicks, flags, Ticks[Amount - 1].time_msc); if (NewAmount > 0) { if (Amount > 0) { // Взяли крайнее время из предыдущей истории const long LastTime = Ticks[Amount - 1].time_msc; int Count = 1; // Находим (Count) в предыдушей истории количество тиков со временем LastTime for (int i = Amount - 2; i >= 0; i--) { if (Ticks[i].time_msc < LastTime) break; Count++; } if ((Count < Amount) && (Count < NewAmount)) { // Если Count-тик c LastTime-временем в новой истории не равен самому последнего тику в старой истории, выводим в журнал if (_R(Ticks[Amount - 1]) != NewTicks[Count - 1]) // https://www.mql5.com/ru/code/16280 Print(TOSTRING2(TickToString(Ticks[Amount - 1])) + "\n" + TOSTRING2(TickToString(NewTicks[Count - 1])) + "\n" + TOSTRING2(TickToString(NewTicks[Count])) + "\n"); Res = ArrayCopy(Ticks, NewTicks, Amount, Count); } } else Res = ArrayCopy(Ticks, NewTicks); } return(Res); } void OnTick( void ) { static MqlTick PrevTicks[]; // Дописываем свежие тики AddFreshTicks(PrevTicks); }今回は、詳細なコメントを書きましたので、結果は明らかでしょう2016.09.22 12:20:03.762 Test8 (RTS-12.16,M1) TickToString(NewTicks[Count]) = time = 2016.09.22 12:19:53.233 bid = 0.0 ask = 0.0 last = 98560.0 volume = 1 TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY 2016.09.22 12:20:03.762 Test8 (RTS-12.16,M1) TickToString(NewTicks[Count-1]) = time = 2016.09.22 12:19:51.968 bid = 0.0 ask = 0.0 last = 98550.0 volume = 1 TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL 2016.09.22 12:20:03.762 Test8 (RTS-12.16,M1) TickToString(Ticks[Amount-1]) = time = 2016.09.22 12:19:51.968 bid = 98550.0 ask = 0.0 last = 98550.0 volume = 1 TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL 2016.09.22 12:20:02.504 Test8 (RTS-12.16,M1) 2016.09.22 12:20:02.504 Test8 (RTS-12.16,M1) TickToString(NewTicks[Count]) = time = 2016.09.22 12:19:51.968 bid = 98550.0 ask = 0.0 last = 98550.0 volume = 1 TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL 2016.09.22 12:20:02.504 Test8 (RTS-12.16,M1) TickToString(NewTicks[Count-1]) = time = 2016.09.22 12:19:51.813 bid = 98550.0 ask = 0.0 last = 0.0 volume = 0 TICK_FLAG_BID 2016.09.22 12:20:02.504 Test8 (RTS-12.16,M1) TickToString(Ticks[Amount-1]) = time = 2016.09.22 12:19:51.813 bid = 98550.0 ask = 98560.0 last = 0.0 volume = 0 TICK_FLAG_BID COPY_TICKS_ALLだけでなく、他のモード(LAST, INFO)でも問題が発生します。 fxsaber 2016.09.22 10:31 #165 fxsaber: Expert Advisor は新しい履歴ティックの書き込みを完了し、CopyTicks の 9 番目のバグを発見しました。今回は、詳細なコメントを書きましたので、結果は明らかでしょう この問題は、COPY_TICKS_ALLだけでなく、他のモード(LAST, INFO)にも影響します。From == 0 を介して目盛りを追加しようとしました。効かない!?- CopyTicksのバグ。開発者の皆様、私はこの機能(新しい履歴データを追加する)をとても必要としています。とりあえず知恵遅れにしておけば、きっとうまく いく。動作確認済みバージョンをご記入ください。CopyTicksのバグを長い間修正しなければならず、1つのビルドでは済まないでしょう。他の人がどのようにCopyTicksを使うのか - 私には理解できません。どうやら、まったく使っていないようです。想像力が足りないのです。 Renat Fatkhullin 2016.09.22 10:46 #166 具体的に何をもってバグと判断しているのかを明記するのでしょう。 fxsaber 2016.09.22 10:48 #167 Renat Fatkhullin:具体的に何をもってバグと判断しているのかを明記するのでしょう。 コードで非常にわかりやすく回答してくれた。サービスデスクに申請 書を作成し、さらに詳細を書き出した。 Slava 2016.09.22 11:57 #168 fxsaber: この質問に対して、コードで非常に分かりやすく回答しています。サービスデスクに依頼 し、詳細を説明しました。このエラーは、新しく取得したティック配列の最初のエントリが、bid、ask、またはlastのゼロを含むという事実に起因します。一方、以前の配列では、配列の末尾の同じティックはゼロを含まず、bid、ask、lastの現在の値を含むCopyTicksのこのエラーは、ビルドのリリース後に修正されました。これで、CopyTicksの呼び出し後の最初のティックエントリには、ゼロではなく、要求された時点のbid、ask、lastの現在値が含まれるようになります。残念ながら、この修正は現在のビルドには含まれていません。 fxsaber 2016.09.22 12:13 #169 Slawa:このエラーは、新しく取得したティック配列の最初のエントリが、ビッド、アスク、またはラストのゼロ値を含んでいるのに対し、以前の配列では、配列の末尾の同じティックがゼロを含まず、ビッド、アスク、ラストの現在の値を含んでいるという事実で構成されています。CopyTicksのこのバグは、ビルドがリリースされた後、すでに修正されています。これで、CopyTicksの呼び出し後の最初のticksの記録には、ゼロではなく、要求された時刻のbid、ask、lastの現在値が含まれるようになります。私はあなたを理解していません。履歴を保存する独自の内部フォーマットを持っているということですね。そしてCopyTicksはリクエストごとにその一部を取り出し、独自のシーケンスであるMqlTickを 生成する?CopyTicksでも同じフラグが計算されますが、履歴には残らないのでしょうか?使いやすい形式に変換するだけでなく、計算もできるパッドもあります。CopyTicksがなくても、リクエストの時間によって、そこに何かが満たされるんです。歪みのない歴史を知りたいんです。そして、問題なく追加してください。残念ながら、現在のビルドでは修正されていません。ベータ版ビルドをサーバーで公開してください。もっと矛盾を見つけることができると思います。このCopyTicksを舐めて、やっと信用できるようにしよう!」と。 fxsaber 2016.09.26 12:13 #170 fxsaber: Expert Advisor は新しい履歴ティックを完了し、N 番目の CopyTicks バグを特定します。 リボン(COPY_TICKS_TRADE - time_msc、last、volume、flags)のみが必要な場合、このソリューションが完全に適しています(バグなし)。 1...101112131415161718192021222324...47 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ティックバーボリュームは 初歩的なことなのでしょうか?取引所では原則的に何の意味もない指標。意識して使うことはできない。ゴミのようなものです。
まあ実際、証券取引所のティックボリュームはフリッパーの数なんですけどね。つまり、実際の取引数です。
まあ実際、証券取引所のティックボリュームはフリッパーの数なんですけどね。つまり、実際の取引数です。
そのため、前回と全く同じ取引が来てもバーは変わりません。
今回は、詳細なコメントを書きましたので、結果は明らかでしょう
COPY_TICKS_ALLだけでなく、他のモード(LAST, INFO)でも問題が発生します。Expert Advisor は新しい履歴ティックの書き込みを完了し、CopyTicks の 9 番目のバグを発見しました。
今回は、詳細なコメントを書きましたので、結果は明らかでしょう
この問題は、COPY_TICKS_ALLだけでなく、他のモード(LAST, INFO)にも影響します。From == 0 を介して目盛りを追加しようとしました。効かない!?- CopyTicksのバグ。
開発者の皆様、私はこの機能(新しい履歴データを追加する)をとても必要としています。とりあえず知恵遅れにしておけば、きっとうまく いく。動作確認済みバージョンをご記入ください。
CopyTicksのバグを長い間修正しなければならず、1つのビルドでは済まないでしょう。他の人がどのようにCopyTicksを使うのか - 私には理解できません。どうやら、まったく使っていないようです。想像力が足りないのです。
具体的に何をもってバグと判断しているのかを明記するのでしょう。
具体的に何をもってバグと判断しているのかを明記するのでしょう。
この質問に対して、コードで非常に分かりやすく回答しています。サービスデスクに依頼 し、詳細を説明しました。
このエラーは、新しく取得したティック配列の最初のエントリが、bid、ask、またはlastのゼロを含むという事実に起因します。一方、以前の配列では、配列の末尾の同じティックはゼロを含まず、bid、ask、lastの現在の値を含む
CopyTicksのこのエラーは、ビルドのリリース後に修正されました。これで、CopyTicksの呼び出し後の最初のティックエントリには、ゼロではなく、要求された時点のbid、ask、lastの現在値が含まれるようになります。
残念ながら、この修正は現在のビルドには含まれていません。
このエラーは、新しく取得したティック配列の最初のエントリが、ビッド、アスク、またはラストのゼロ値を含んでいるのに対し、以前の配列では、配列の末尾の同じティックがゼロを含まず、ビッド、アスク、ラストの現在の値を含んでいるという事実で構成されています。
CopyTicksのこのバグは、ビルドがリリースされた後、すでに修正されています。これで、CopyTicksの呼び出し後の最初のticksの記録には、ゼロではなく、要求された時刻のbid、ask、lastの現在値が含まれるようになります。
私はあなたを理解していません。履歴を保存する独自の内部フォーマットを持っているということですね。そしてCopyTicksはリクエストごとにその一部を取り出し、独自のシーケンスであるMqlTickを 生成する?CopyTicksでも同じフラグが計算されますが、履歴には残らないのでしょうか?使いやすい形式に変換するだけでなく、計算もできるパッドもあります。
CopyTicksがなくても、リクエストの時間によって、そこに何かが満たされるんです。歪みのない歴史を知りたいんです。そして、問題なく追加してください。
残念ながら、現在のビルドでは修正されていません。
ベータ版ビルドをサーバーで公開してください。もっと矛盾を見つけることができると思います。このCopyTicksを舐めて、やっと信用できるようにしよう!」と。
Expert Advisor は新しい履歴ティックを完了し、N 番目の CopyTicks バグを特定します。