ローカルタイムとフレッシュティックタイムの差が1分30秒。何をするのか - ページ 6 123456789 新しいコメント 削除済み 2019.03.20 14:00 #51 prostotrader:コードをよく見て ください TimeTradeServer() は日を 決定するためだけに取られ、それだけです(このチェックは「念のため」行われます)! TimeTradeServer() は、完全に省略することができます。見てきました。確かに書き方が悪かったのですが、この機能、私的にはまだ問題解決にはなっていないのです。正直なところ、なぜそれが必要なのかよくわかりません。ようです。 1.ティックからのミリ秒数を取得します。 2.ダニを構成要素に分解するのです。 3.そして、再びダニを組み立てる!?ここがよくわからないのですが、これは何のためにあるのでしょうか?関数にもともと渡されたのと同じ値を常に取得することになります。それとも、何か見落としているのでしょうか? そして、その刻みの時間を前の刻みと比較するのです。 サーバーの時刻を知る必要がありますよね?サーバータイムがないと、あるキャラクターのスレッドが他のキャラクターのスレッドより遅れているのかどうか判断できません。 つまり、あなたのコードはサーバー時刻にバインドしておらず、私たちが必要とするサーバー時刻とスレッド時刻の比較も行っていないのです。1つのシンボルの刻みによるスタックの遅延ではなく、サーバーから端末への一連のシンボルにわたるデータ転送の遅延を理解すること(この議論に入るとき、私はもともとそう思っていました)。 prostotrader 2019.03.20 14:03 #52 Alexey Kozitsyn:チェックはTimeGMTOffsetで行う必要があるようです。後で例をスケッチします。ただ、面白いのは、経験者(初心者ではない)ですね。 ダニがやってくる時間以外は、まったく必要ありません 最後のティックの時間(初期化時)を覚えておいて、すべての比較はこの時間で行ってください prostotrader 2019.03.20 14:04 #53 Alexey Kozitsyn:拝見させていただきました。確かに、多少間違った書き方をしてしまいましたが、私見では、この機能ではまだ課題が解決できていません。正直なところ、なぜそれが必要なのかよくわかりません。いるようですね。 3.そして、再びダニを組み立てる!?ここが、何のためにあるのか、よくわからないところですね。関数にもともと渡されたのと同じ値を常に取得することになります。それとも、何か見落としているのでしょうか? このコードはExpert Advisorから "pull "されており、ティックが最新かどうか、時刻が トレーディングセッション によって追加されました。 ティックの "ブレイクダウン "は、私のEAのセッション設定で、正確な(ミリ秒)時間(日付なし)を決定するために必要である。 時間設定のみ input string TimeStMon = "10:00:00"; //Время начала утренней сессии input string TimeStDay = "14:05:00"; //Время начала дневной сессии input string TimeStEvn = "19:05:00"; //Время начала вечерней сессии 削除済み 2019.03.20 14:16 #54 prostotrader:馬鹿馬鹿しい、経験者(初心者ではない)なんだから。 ダニがやってくる時間以外は、まったく必要ありません 最後のティックの時間(初期化時)を覚えておいて、すべての比較はこの時間で行ってください私の例は後で書きますので、もう少し詳しく質問します。もしかしたら、私が間違っていて(pivomoeさんもそうですが)、あなたが正しいということも排除しません。 削除済み 2019.03.20 14:17 #55 prostotrader:このコードは、ティックの関連性とティックが含ま れる時間をチェックする私のEAから'プル'されています。 トレーディングセッション 追加 ティックの "ブレイクダウン "は、私のEAのセッション設定で、正確な時間を決定するために必要です(日付なし)。 時間設定のみ その通り、私のミスです、見逃していました。 prostotrader 2019.03.20 14:45 #56 Alexey Kozitsyn:その通り、私のミスです、そのように見ていなかったのです。ただ、TCは当初、何を得たいのかが明確でなかった(あるいは誤解されていた)のでしょう。 ここで、実行し、確認する。 //+------------------------------------------------------------------+ //| Time.mq5 | //| Copyright 2019 | //| | //+------------------------------------------------------------------+ enum FRESH_TICK { UNKNOWN_TICK, NEW_TICK, CUR_TICK, OLD_TICK }; // MqlTick stored_ticks[]; bool is_book; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { int result = CopyTicks(Symbol(), stored_ticks, COPY_TICKS_ALL, 0, 1); if(result > 0) { is_book = MarketBookAdd(Symbol()); if(is_book == false) return(INIT_FAILED); } else return(INIT_FAILED); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if(is_book == true) MarketBookRelease(Symbol()); } //+------------------------------------------------------------------+ // Expert Book event function | //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { if(symbol == Symbol()) { MqlTick a_ticks[]; int result = CopyTicks(symbol, a_ticks, COPY_TICKS_ALL, 0, 1); if(result > 0) { FRESH_TICK tick_state = CheckTickTime(a_ticks[0]); switch(tick_state) { case UNKNOWN_TICK: Print(EnumToString(UNKNOWN_TICK), " - Тик не определен."); //Тик не определен break; case NEW_TICK: Print(EnumToString(NEW_TICK), " - Новый тик"); //Торговое время, можно отсылать ордера; break; case CUR_TICK: Print(EnumToString(CUR_TICK), " - Текущий тик"); //По усмотрению разработчика; break; case OLD_TICK: Print(EnumToString(OLD_TICK), " - Старый тик"); //По усмотрению разработчика; break; } } } } //+------------------------------------------------------------------+ //| Expert Check Market Time function | //+------------------------------------------------------------------+ FRESH_TICK CheckTickTime(MqlTick &a_tick) { if(a_tick.time_msc > stored_ticks[0].time_msc) { stored_ticks[0] = a_tick; return(NEW_TICK); } else { if(stored_ticks[0].time_msc == a_tick.time_msc) { if((stored_ticks[0].ask == a_tick.ask) && (stored_ticks[0].bid == a_tick.bid) && (stored_ticks[0].flags == a_tick.flags) && (stored_ticks[0].last == a_tick.last) && (stored_ticks[0].time == a_tick.time) && (stored_ticks[0].volume == a_tick.volume) && (stored_ticks[0].volume_real == a_tick.volume_real)) { return(CUR_TICK); } else return(OLD_TICK); } else return(OLD_TICK); } return(UNKNOWN_TICK); } 削除済み 2019.03.20 14:49 #57 prostotrader:そもそもTCが何を手に入れたいのか、よくわからなかったというだけのことだ。 ここで、実行し、確認してください。 マイケル 新しいティックの到着/古いティックのチェックに質問はありません。コードへの質問もありません。質問が違う。この状況を確認する必要があります。 14:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) Получен НОВЫЙ тик по символу GAZR-3.19 time_msc= 2019.03.20 14:53:11.638 14:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) ХОТЯ до этого был получeн тик RTS-3.19 time_msc 2019.03.20 14:53:13.695 prostotrader 2019.03.20 14:51 #58 Alexey Kozitsyn:マイケル 新しいティックの到着/古いティックのチェックに質問はありません。あなたのコードにも疑問はありません。質問が違う。次のような状況を確認したいのですが。 コードをいじると(上記参照)(OLD_TICK)が現れました。 そして、新しいパッケージには「古い」ティックが含まれている可能性があることを知り、開発者は自分の判断でそれを使用しなければなりません。 削除済み 2019.03.20 14:52 #59 prostotrader:コードをいじると(上記参照)、(OLD_TICK)が表示されました。そんなことより...。DIFFERENT文字列のストリーム。 prostotrader 2019.03.20 14:54 #60 Alexey Kozitsyn:そんなことより...。DIFFERENT文字列のストリーム。それから、WHAT I NEED????が全く理解できない。 もし、現在の時刻が SERVERであれば、放送されるまで忘れる必要があります。 または、TimeTradeServer()を使用します。 123456789 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
コードをよく見て ください
TimeTradeServer() は日を 決定するためだけに取られ、それだけです(このチェックは「念のため」行われます)!
TimeTradeServer() は、完全に省略することができます。
見てきました。確かに書き方が悪かったのですが、この機能、私的にはまだ問題解決にはなっていないのです。正直なところ、なぜそれが必要なのかよくわかりません。ようです。
1.ティックからのミリ秒数を取得します。
2.ダニを構成要素に分解するのです。
3.そして、再びダニを組み立てる!?ここがよくわからないのですが、これは何のためにあるのでしょうか?関数にもともと渡されたのと同じ値を常に取得することになります。それとも、何か見落としているのでしょうか?
そして、その刻みの時間を前の刻みと比較するのです。
サーバーの時刻を知る必要がありますよね?サーバータイムがないと、あるキャラクターのスレッドが他のキャラクターのスレッドより遅れているのかどうか判断できません。
つまり、あなたのコードはサーバー時刻にバインドしておらず、私たちが必要とするサーバー時刻とスレッド時刻の比較も行っていないのです。1つのシンボルの刻みによるスタックの遅延ではなく、サーバーから端末への一連のシンボルにわたるデータ転送の遅延を理解すること(この議論に入るとき、私はもともとそう思っていました)。
チェックはTimeGMTOffsetで行う必要があるようです。後で例をスケッチします。
ただ、面白いのは、経験者(初心者ではない)ですね。
ダニがやってくる時間以外は、まったく必要ありません
最後のティックの時間(初期化時)を覚えておいて、すべての比較はこの時間で行ってください
拝見させていただきました。確かに、多少間違った書き方をしてしまいましたが、私見では、この機能ではまだ課題が解決できていません。正直なところ、なぜそれが必要なのかよくわかりません。いるようですね。
3.そして、再びダニを組み立てる!?ここが、何のためにあるのか、よくわからないところですね。関数にもともと渡されたのと同じ値を常に取得することになります。それとも、何か見落としているのでしょうか?
このコードはExpert Advisorから "pull "されており、ティックが最新かどうか、時刻が
トレーディングセッション
によって追加されました。
ティックの "ブレイクダウン "は、私のEAのセッション設定で、正確な(ミリ秒)時間(日付なし)を決定するために必要である。
時間設定のみ
馬鹿馬鹿しい、経験者(初心者ではない)なんだから。
ダニがやってくる時間以外は、まったく必要ありません
最後のティックの時間(初期化時)を覚えておいて、すべての比較はこの時間で行ってください
私の例は後で書きますので、もう少し詳しく質問します。もしかしたら、私が間違っていて(pivomoeさんもそうですが)、あなたが正しいということも排除しません。
このコードは、ティックの関連性とティックが含ま れる時間をチェックする私のEAから'プル'されています。
トレーディングセッション
追加
ティックの "ブレイクダウン "は、私のEAのセッション設定で、正確な時間を決定するために必要です(日付なし)。
時間設定のみ
その通り、私のミスです、見逃していました。
その通り、私のミスです、そのように見ていなかったのです。
ただ、TCは当初、何を得たいのかが明確でなかった(あるいは誤解されていた)のでしょう。
ここで、実行し、確認する。
そもそもTCが何を手に入れたいのか、よくわからなかったというだけのことだ。
ここで、実行し、確認してください。
マイケル 新しいティックの到着/古いティックのチェックに質問はありません。コードへの質問もありません。質問が違う。この状況を確認する必要があります。
マイケル 新しいティックの到着/古いティックのチェックに質問はありません。あなたのコードにも疑問はありません。質問が違う。次のような状況を確認したいのですが。
コードをいじると(上記参照)(OLD_TICK)が現れました。
そして、新しいパッケージには「古い」ティックが含まれている可能性があることを知り、開発者は自分の判断でそれを使用しなければなりません。
コードをいじると(上記参照)、(OLD_TICK)が表示されました。
そんなことより...。DIFFERENT文字列のストリーム。
そんなことより...。DIFFERENT文字列のストリーム。
それから、WHAT I NEED????が全く理解できない。
もし、現在の時刻が SERVERであれば、放送されるまで忘れる必要があります。
または、TimeTradeServer()を使用します。