MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 578 1...571572573574575576577578579580581582583584585...1953 新しいコメント Artyom Trishkin 2018.07.04 07:35 #5771 PolarSeaman:自分で思いついたわけではありませんが、「OnTimer()のデータを更新すれば、あなたのコードが 動作するようになりますよ。" どうすればいいのでしょうか?オフラインのスケジュールはありますか? Galim_V 2018.07.04 19:18 #5772 フクロウがホバリングしている時間枠以外の時間枠から、一番下の指標を取得する方法を教えてください。 Artyom Trishkin 2018.07.04 20:19 #5773 Galim_V: フクロウがホバリングしている時間枠以外の時間枠からボトム指標を取得する方法を教えていただけませんか?1.なぜ、鳥を吊るしたのですか?残念ではありませんか? 2.ヘルプを開いたことがありますか?インジケータデータの受信関数の最初の2つのパラメータは、値を受信したいチャートの シンボルと期間を指定するために使用されるので、Expert Advisorで任意の時間枠からインジケータデータを受信することは全く問題ではありません。 確かに、エディタでコードを入力しても、関数の形式変数のリストが開かれ、そこにシンボルとタイムフレームがツールチップで表示されます。注意しないのはおかしい。 PolarSeaman 2018.07.04 20:52 #5774 Artyom Trishkin:オフラインのスケジュールはありますか?いいえ。 Artyom Trishkin 2018.07.04 21:05 #5775 PolarSeaman:いいえ。では、なぜ必要もないのにリフレッシュし続けるのでしょうか? 時間が必要ですか?最後のティックの時刻を取得する:TimeCurrent()、または最後のローカル時刻を 取得する:TimeLocal()。 週末に最後の時刻を取得した場合、タイマーは役に立ちません。時刻は金曜日の最後の時刻、または最終営業日の最後の時刻となります。また、TimeLocal() ではサーバー時刻を取得できないため、オフセットを指定して再計算する必要があります。 しかし、最終的に何を手に入れたいのかがよくわからない。 Galim_V 2018.07.04 21:24 #5776 Artyom Trishkin:1.なぜ、鳥を吊るしたのですか?残念ではありませんか?2.ヘルプを開いたことがありますか?インジケータデータの受信関数の最初の2つのパラメータは、値を受信したいチャートの シンボルと期間を指定するために使用されるので、Expert Advisorで任意の時間枠からインジケータデータを受信することは全く問題ではありません。 確かに、エディタでコードを入力しても、関数の形式変数のリストが開かれ、そこにシンボルとタイムフレームがツールチップで表示されます。注意しないのはおかしい。2018.07.04 22:17:38.398 2016.11.10 13:00:00 Arap01 EURUSD,H1: Rounding 44.53781512605145 45.0 これは「通常」モードでのストキャスティックデータです。 2=iStochastic(NULL,0,K,D,slowing,Average_method,price_field,MODE_MAIN,2); ここで、M5 2=iStochastic(NULL,5,K,D,slowing,Average_method,price_field,MODE_MAIN,2) と聞いています。 2018.07.04 22:23:05.680 2016.11.10 13:00:00 Arap01 EURUSD,H1: Rounding 0.0 0.0を取得しました。 PolarSeaman 2018.07.04 22:19 #5777 Artyom Trishkin:しかし、最終的にどうしたいのかがよくわからない。バーが閉じる2秒前にアラート、欲しい。週末は仕事をしない。 Taras Slobodyanik 2018.07.04 22:27 #5778 PolarSeaman:そこで、ティックなしでバーが閉じる2秒前にアラートを出す必要があります。 より正確なタイマー(最低500ms)を動作させ、ローカルタイムとサーバータイムの同期をとる必要があります。 すでにお話したとおりです。 ティック到着時に、TimeCurrent()-TimeLocal() の差をカウントする(これはローカルとサーバーの時刻を同期させるために一度だけ行われる)。- これはブローカーからの相対的なオフセットで、このオフセットが後で変更された場合、時間は再計算される必要があります。- エキスパートアドバイザーの開始時(またはバーD1の出現時)に、オフセットを考慮したローカル時間で、必要な時間をすべて再計算 します。- 非同期化、ブローカーとの接続の喪失、ローカルハンドの翻訳をチェックしながら、タイマーで「カウント」したものを待ちます。 1秒単位でキャッチできる PolarSeaman 2018.07.04 23:47 #5779 Taras Slobodyanik: より正確なタイマー(少なくとも500ms)を実行し、ローカルタイムとサーバータイムを事前に同期させる必要があるため、簡単にはいきません。 すでにお話したとおりです。 キャッチできるのは±1秒ありがとうございます。M5バーが閉じるまでの、秒単位の時間の作り方。今はH1が表示されています。 #property strict #property indicator_chart_window //--- input parameters #define MILLISEC_TIMER_INTERVAL 500 int timeOffset; datetime ServerLocalOffset; datetime prevTime,myTime,localtime; bool newBar = false; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping EventSetMillisecondTimer(MILLISEC_TIMER_INTERVAL); datetime srvtime,tmpOffset; RefreshRates(); srvtime = TimeCurrent(); // Modified localtime = TimeLocal()+TimeGMTOffset(); if(TimeHour(srvtime)>TimeHour(localtime)){ // Server Time is still ahead of us int newOffset = TimeHour(srvtime)-TimeHour(localtime); ServerLocalOffset = (newOffset*60*60); }else if(TimeHour(srvtime)<TimeHour(localtime)){ // Server Time is Behind us int newOffset = TimeHour(localtime)-TimeHour(srvtime); ServerLocalOffset = (newOffset*60*60); }else{ // No modification required ServerLocalOffset = srvtime; } localtime = TimeLocal()-ServerLocalOffset; tmpOffset = TimeSeconds(srvtime) - TimeSeconds(localtime); if(tmpOffset < 30 && tmpOffset >= 0){ timeOffset = TimeSeconds(srvtime) - TimeSeconds(localtime); } return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { EventKillTimer(); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- datetime sec; datetime localtime; localtime = TimeLocal()+(TimeGMTOffset()+(60*60)); sec=Time[0]-localtime-timeOffset; if(sec<=2){Alert("время откр. бара ",Time[0]);} Comment(TimeToStr(sec,TIME_SECONDS )); } //+------------------------------------------------------------------+ PolarSeaman 2018.07.05 20:13 #5780 現在の期間のバーが閉じるまでの秒数をカウントする方法がまだわかっていません。助けてください。 1...571572573574575576577578579580581582583584585...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
自分で思いついたわけではありませんが、「OnTimer()のデータを更新すれば、あなたのコードが 動作するようになりますよ。"
どうすればいいのでしょうか?
オフラインのスケジュールはありますか?
フクロウがホバリングしている時間枠以外の時間枠からボトム指標を取得する方法を教えていただけませんか?
1.なぜ、鳥を吊るしたのですか?残念ではありませんか?
2.ヘルプを開いたことがありますか?インジケータデータの受信関数の最初の2つのパラメータは、値を受信したいチャートの シンボルと期間を指定するために使用されるので、Expert Advisorで任意の時間枠からインジケータデータを受信することは全く問題ではありません。
確かに、エディタでコードを入力しても、関数の形式変数のリストが開かれ、そこにシンボルとタイムフレームがツールチップで表示されます。注意しないのはおかしい。
オフラインのスケジュールはありますか?
いいえ。
いいえ。
では、なぜ必要もないのにリフレッシュし続けるのでしょうか?
時間が必要ですか?最後のティックの時刻を取得する:TimeCurrent()、または最後のローカル時刻を 取得する:TimeLocal()。
週末に最後の時刻を取得した場合、タイマーは役に立ちません。時刻は金曜日の最後の時刻、または最終営業日の最後の時刻となります。また、TimeLocal() ではサーバー時刻を取得できないため、オフセットを指定して再計算する必要があります。
しかし、最終的に何を手に入れたいのかがよくわからない。
1.なぜ、鳥を吊るしたのですか?残念ではありませんか?
2.ヘルプを開いたことがありますか?インジケータデータの受信関数の最初の2つのパラメータは、値を受信したいチャートの シンボルと期間を指定するために使用されるので、Expert Advisorで任意の時間枠からインジケータデータを受信することは全く問題ではありません。
確かに、エディタでコードを入力しても、関数の形式変数のリストが開かれ、そこにシンボルとタイムフレームがツールチップで表示されます。注意しないのはおかしい。
2018.07.04 22:17:38.398 2016.11.10 13:00:00 Arap01 EURUSD,H1: Rounding 44.53781512605145 45.0 これは「通常」モードでのストキャスティックデータです。
2=iStochastic(NULL,0,K,D,slowing,Average_method,price_field,MODE_MAIN,2);
ここで、M5 2=iStochastic(NULL,5,K,D,slowing,Average_method,price_field,MODE_MAIN,2) と聞いています。
2018.07.04 22:23:05.680 2016.11.10 13:00:00 Arap01 EURUSD,H1: Rounding 0.0 0.0を取得しました。
しかし、最終的にどうしたいのかがよくわからない。
バーが閉じる2秒前にアラート、欲しい。週末は仕事をしない。
そこで、ティックなしでバーが閉じる2秒前にアラートを出す必要があります。
より正確なタイマー(最低500ms)を動作させ、ローカルタイムとサーバータイムの同期をとる必要があります。
すでにお話したとおりです。
ティック到着時に、TimeCurrent()-TimeLocal()
の差をカウントする(これはローカルとサーバーの時刻を同期させるために一度だけ行われる)。
- これはブローカーからの相対的なオフセットで、このオフセットが後で変更された場合、時間は再計算される必要があります。
- エキスパートアドバイザーの開始時(またはバーD1の出現時)に、オフセットを考慮したローカル時間で、必要な時間をすべて再計算 します。
- 非同期化、ブローカーとの接続の喪失、ローカルハンドの翻訳をチェックしながら、タイマーで「カウント」したものを待ちます。
より正確なタイマー(少なくとも500ms)を実行し、ローカルタイムとサーバータイムを事前に同期させる必要があるため、簡単にはいきません。
キャッチできるのは±1秒すでにお話したとおりです。
ありがとうございます。M5バーが閉じるまでの、秒単位の時間の作り方。今はH1が表示されています。