あらゆる取引のテーブル。MQL5経由でのアクセス - ページ 3 1234567891011 新しいコメント Vladimir Karputov 2016.08.25 11:53 #21 prostotrader:どなたかエラーの内容をご存知の方はいらっしゃいますか?インジケータは正常に動作しますが、より多くのバーが表示されます。設定されているよりも コードを見たわけではありませんが、新しいバーができるたびに、インジケーターの線も 自動的に左に移動することを考慮していないのでしょう(チャートを見ればわかります)。つまり、指標となる線を(チャートを見て)右側にずらす必要があるのです。 prostotrader 2016.08.25 11:57 #22 Karputov Vladimir: コードを見たわけではないのですが、新しいバーが出現するたびに、インジケーターの線も 自動的に左に移動することを考慮していないのだと思われます(チャートを見ればわかります)。つまり、新しいバーが現れたら、指標線を(チャートを見て)右にずらすのです。 ありがとうございます、バグを発見しました。 ファイル: DealsLent.mq5 10 kb prostotrader 2016.08.25 12:38 #23 prostotrader: 最後の仕上げに...最後の1枚ではないことが判明.もう少し最適化する必要がある。完成させてテストする...。 Vladimir Karputov 2016.08.25 16:08 #24 このような場合は、ティックインジケータ-オープンインタレスト・インジケータ(取引所に接続された実際の口座で実行)を維持します。 ファイル: LifeHack_Open_Interest.mq5 11 kb prostotrader 2016.08.25 17:15 #25 Karputov Vladimir: このような場合は、ティックインジケータ-オープンインタレスト・インジケータ(取引所に接続された実際の口座で実行)を維持します。 うれしいですね。 prostotrader 2016.08.25 20:38 #26 重大な問題が発覚しました。異なるstart_timeでtickが重複している :(int copied=CopyTicks(Symbol(),ticks,COPY_TICKS_ALL,start_time,0);の場合,start_time が異なり,tick が繰り返しコピー される。同じ時を刻む詳しくは明日説明します。最新ビルド ファイル: DealsLent.mq5 12 kb prostotrader 2016.08.25 22:32 #27 眠れないので、近況を書き留めようと思って。(完全なインジケーターコードは上の投稿にあります)。取引所からのティックは、時間間隔を厳密に守って端末に来るわけではありません。が、ブロック単位で(スクリーンショット参照)ブロック1、ブロック2など。端末は、取引所から受信したものを(ブロックごとに)テーブルに「格納」して表示する。どちらの ブロックでも、同じ 時刻の取引が可能である。CopyTicks()をリアルタイムでなく(例えば翌日や数秒後)呼び出した場合。の場合、CopyTicks()関数は正確な データを返します。しかし、 リアルタイムでは 次のようなことが起こります。int copied=CopyTicks(Symbol(),ticks,COPY_TICKS_ALL,start_time,0);start_time = (23:49:58.114) の場合、完全にブロック1が得られます(赤丸で囲った部分)。そして、時間変化を待ってBlock2(緑で囲った部分)を取得する。ブロック1の重複を避けるため(OnBookEventは非常に早くトリガーされる可能性があります)。時刻が変更されたことを確認するためのチェックを導入しています。if(start_time==ulong(ticks[copied-1].time_msc)) return;start_time = (23:49:58.596) のとき、ブロック2が得られるはずである。が、CopyTicks()関数はBlock 2と全てのtickを 時間(23:49:58.114)と共に返します。ブロック2が同じ時刻(23:49:58.114)を少なくとも1つ持つ場合。これはとても悲しいニュースだ...。:(これを修正しない限り、Real Time Tape of tradesを取得することは不可能 です。 MQL5クックブック:カスタムシンボルを使用したトレーディング戦略ストレステストe Vladimir Karputov 2016.08.26 04:43 #28 prostotrader: また、時刻で問い合わせたときに、ある時刻とFUTUREから履歴がダウンロードされるのはなぜでしょうか?実際、時間によるティックを要求すると、ある時間からFUTUREにティックをダウンロードすることになります。例えば、こんな感じです。入力データ(要求20000刻み)、時刻2016.08.25 20-00-00。受け取る。2016.08.26 07:22:06.852 CopyTicks_1_02 (SBRF-9.16,M1) Получено тиков: 10823 код ошибки: 0 2016.08.26 07:22:06.852 CopyTicks_1_02 (SBRF-9.16,M1) Тик: 2016.08.25 20:00:00 bid: 14377.0 ask: 0.0 last: 0.0 [0] 2016.08.26 07:22:06.852 CopyTicks_1_02 (SBRF-9.16,M1) Тик: 2016.08.26 00:02:08 bid: 0.0 ask: 0.0 last: 0.0 [10822] 2016.08.26 07:22:06.852 CopyTicks_1_02 (SBRF-9.16,M1) Size 0 Mbつまり、要求時刻2016.08.25 20:00:00から FUTUREに向かってティックを受信する(最後のティックは時刻2016.08.26 00:02:08を 持つ) ファイル: CopyTicks_1_02.mq5 3 kb prostotrader 2016.08.26 05:09 #29 Karputov Vladimir:また、時間による問い合わせの際に、ある時間からティックがダウンロードされ、履歴にFUTUREされるのはなぜでしょうか?実際、時間によるティックを要求すると、ある時間からFUTUREにティックをダウンロードすることになります。例えば、こんな感じです。入力データ(要求20000刻み)、時刻2016.08.25 20-00-00。受け取る。つまり、要求時刻2016.08.25 20:00:00から FUTUREに向かってティックを受信する(最後のティックは時刻2016.08.26 00:02:08)。深く考えるのではなく、深さから「付け焼き刃」を見る。なぜ考えるのか?インジケーターを動かして、ご自分の目で確かめてください。そして、書かれていることをちゃんと読んでいるのか?Если мы вызываем CopyTicks() НЕ в реальном времени (скажкем, на следующий день), то функция CopyTicks() будет возвращать точные данные. prostotrader 2016.08.26 05:14 #30 夕方、案件が少なくなってから、かなり偶然に気づきました。 1234567891011 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どなたかエラーの内容をご存知の方はいらっしゃいますか?
インジケータは正常に動作しますが、より多くのバーが表示されます。
設定されているよりも
コードを見たわけではないのですが、新しいバーが出現するたびに、インジケーターの線も 自動的に左に移動することを考慮していないのだと思われます(チャートを見ればわかります)。つまり、新しいバーが現れたら、指標線を(チャートを見て)右にずらすのです。
最後の仕上げに...
最後の1枚ではないことが判明.
もう少し最適化する必要がある。
完成させてテストする...。
このような場合は、ティックインジケータ-オープンインタレスト・インジケータ(取引所に接続された実際の口座で実行)を維持します。
重大な問題が発覚しました。
異なるstart_timeでtickが重複している :(
の場合,start_time が異なり,tick が繰り返しコピー される。
同じ時を刻む
詳しくは明日説明します。
最新ビルド
眠れないので、近況を書き留めようと思って。
(完全なインジケーターコードは上の投稿にあります)。
取引所からのティックは、時間間隔を厳密に守って端末に来るわけではありません。
が、ブロック単位で(スクリーンショット参照)ブロック1、ブロック2など。
端末は、取引所から受信したものを(ブロックごとに)テーブルに「格納」して表示する。
どちらの ブロックでも、同じ 時刻の取引が可能である。
CopyTicks()をリアルタイムでなく(例えば翌日や数秒後)呼び出した場合。
の場合、CopyTicks()関数は正確な データを返します。
しかし、 リアルタイムでは 次のようなことが起こります。
start_time = (23:49:58.114) の場合、完全にブロック1が得られます(赤丸で囲った部分)。
そして、時間変化を待ってBlock2(緑で囲った部分)を取得する。
ブロック1の重複を避けるため(OnBookEventは非常に早くトリガーされる可能性があります)。
時刻が変更されたことを確認するためのチェックを導入しています。
if(start_time==ulong(ticks[copied-1].time_msc)) return;
start_time = (23:49:58.596) のとき、ブロック2が得られるはずである。
が、CopyTicks()関数はBlock 2と全てのtickを 時間(23:49:58.114)と共に返します。
ブロック2が同じ時刻(23:49:58.114)を少なくとも1つ持つ場合。
これはとても悲しいニュースだ...。:(
これを修正しない限り、Real Time Tape of tradesを取得することは不可能 です。
また、時刻で問い合わせたときに、ある時刻とFUTUREから履歴がダウンロードされるのはなぜでしょうか?実際、時間によるティックを要求すると、ある時間からFUTUREにティックをダウンロードすることになります。例えば、こんな感じです。
入力データ(要求20000刻み)、時刻2016.08.25 20-00-00。
受け取る。
つまり、要求時刻2016.08.25 20:00:00から FUTUREに向かってティックを受信する(最後のティックは時刻2016.08.26 00:02:08を 持つ)
また、時間による問い合わせの際に、ある時間からティックがダウンロードされ、履歴にFUTUREされるのはなぜでしょうか?実際、時間によるティックを要求すると、ある時間からFUTUREにティックをダウンロードすることになります。例えば、こんな感じです。
入力データ(要求20000刻み)、時刻2016.08.25 20-00-00。
受け取る。
つまり、要求時刻2016.08.25 20:00:00から FUTUREに向かってティックを受信する(最後のティックは時刻2016.08.26 00:02:08)。
深く考えるのではなく、深さから「付け焼き刃」を見る。
なぜ考えるのか?
インジケーターを動かして、ご自分の目で確かめてください。
そして、書かれていることをちゃんと読んでいるのか?