新しいバーを表示する - ページ 2 1234 新しいコメント Alain Verleyen 2016.04.30 15:33 #11 Doerk Hilger:一番簡単な方法です。static datetime tlastbar=0;datetime tnewbar=iTime(NULL,PERIOD_CURRENT,0);bool isnewbar=tnewbar!=tlastbar;tlastbar=tnewbar; 私の知る限り、このトピックはmql5用です。あなたのコードはmql4のみです。 Alain Verleyen 2016.04.30 15:43 #12 Willbur:これが私の最終バージョン です。 あまりに簡単なので、ちょっと心配になりました。アラン祝福を発行していただけるとうれしいです。// ----------------------------------------------------------------------- bool NewBar(void){ bool iNewBar = false; static double currPeriodProgress = 0; if(MathMod(TimeCurrent(),PeriodSeconds()) < currPeriodProgress) iNewBar = true; currPeriodProgress = MathMod(TimeCurrent(),PeriodSeconds()); return(iNewBar);}// ------------------------------------------------------------------------ void OnTick(){ if(NewBar()) PlaySound("tick.wav"); ケルンからご挨拶 Willbur問題は、OnTick()からしか使えないことです。他のイベントハンドラからだと、TimeCurrent()が欲しいシンボルに関連しているかどうかがわからないんだ。そして、同じ計算を2回しないことをお勧めします。bool NewBar(void) { bool iNewBar=false; static double currPeriodProgress=0; double lastPeriodProgress=MathMod(TimeCurrent(),PeriodSeconds()); if(lastPeriodProgress<currPeriodProgress) iNewBar=true; currPeriodProgress=lastPeriodProgress; return(iNewBar); } Doerk Hilger 2016.04.30 16:11 #13 Alain Verleyen: 私の知る限り、このトピックはmql5用です。あなたのコードはmql4のみです。 どういう意味ですか?このコードは、NewBar()関数の 中など、好きな場所に挿入することができます。そして、最もシンプルで迅速、かつ信頼性の高い解決策だと思います。私はこれを、すべてのタイムフレームを別々に扱うCsymbolInfoクラスの派生物に含め、完璧に動作するようにしました。 Kok Hoong Cheang 2016.04.30 16:16 #14 MQL4では、これらを使用しました。//global long Bars_in_Chart; // detected new bar if(Bars_in_Chart<Bars) { Bars_in_Chart=Bars; } Alain Verleyen 2016.04.30 17:18 #15 Doerk Hilger: どういう意味ですか?これは単なる断片で、例えばNewBar()関数内など、好きなところに入れることができます。そして、最もシンプルで迅速、かつ信頼性の高い解決策だと思う。私は、すべてのタイムフレームについて、CsymbolInfoクラスの派生物にこれを含め、完璧に動作するようにしました。 mql5にはiTime()関 数はありません。 Doerk Hilger 2016.04.30 18:19 #16 Alain Verleyen: mql5にはiTime()関数がありません。 MT5ですか、そうですか。しかし、MQL5はMT5だけではありません。少なくとも私は、MT4がMQL5コンパイラを使用しているため、常にそのように理解していました。しかし、実際には、私は主にMT4を使っているので、それは知りませんでした。とにかく、制限についての情報をありがとうございました。 Alain Verleyen 2016.04.30 18:42 #17 Doerk Hilger: MT5ですか、そうですか。しかし、MQL5はMT5だけではありません。少なくとも私は、MT4はMQL5コンパイラを使用していると理解していました。しかし、実際には、私は主にMT4を使っているので、それは知りませんでした。とにかく、制限についての情報をありがとうございました。 いや、mql4はMT4用、mql5はMT5用です。この2つの言語には共通する関数が ありますが、それは2つの異なる言語です。 Marco vd Heijden 2016.04.30 19:29 #18 MQL4のiTime()は、MQL4の他の関数と同様、トレーダーにとって簡単でわかりやすいものです。MQL5は違います。コーディングするにはコンピュータサイエンスの学位が必要で、それがほとんどの人を落胆させています。先週、MT4のEAをMT5に変換しようとしたときに遭遇した例と、私が見つけた解決策を紹介します。 Doerk Hilger 2016.04.30 19:31 #19 Alain Verleyen: いいえ、mql4はMT4用、mql5はMT5用です。この2つの言語には、共通する機能のサブセットがありますが、それは2つの異なる言語です。言語は同じですが、共通ではない機能の サブセットをもっています;)とにかく、この定義はおそらく正しいでしょう。MQは、この時点で混乱を招くようなことをたくさんしました。 Doerk Hilger 2016.04.30 23:41 #20 Doerk Hilger: MT5ですか、そうですか。しかし、MQL5はMT5だけではありません。少なくとも私は、MT4はMQL5コンパイラを使用していると理解していました。しかし、実際には、私は主にMT4を使っているので、それは知りませんでした。とにかく、制限についての情報をありがとうございました。 互換性のために、古いiClose、iTime...関数を 実装するパブリックライブラリ/クラスがあるかどうかご存知ですか?ステップバイステップの変換中に意味をなすでしょう。 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
一番簡単な方法です。
static datetime tlastbar=0;
datetime tnewbar=iTime(NULL,PERIOD_CURRENT,0);
bool isnewbar=tnewbar!=tlastbar;
tlastbar=tnewbar;
これが私の最終バージョン です。
あまりに簡単なので、ちょっと心配になりました。
アラン祝福を発行していただけるとうれしいです。
// -----------------------------------------------------------------------
if(MathMod(TimeCurrent(),PeriodSeconds()) < currPeriodProgress) iNewBar = true;bool NewBar(void)
{
bool iNewBar = false;
static double currPeriodProgress = 0;
currPeriodProgress = MathMod(TimeCurrent(),PeriodSeconds());
return(iNewBar);
}
// ------------------------------------------------------------------------
void OnTick()
{
if(NewBar()) PlaySound("tick.wav");
ケルンからご挨拶
Willbur
問題は、OnTick()からしか使えないことです。他のイベントハンドラからだと、TimeCurrent()が欲しいシンボルに関連しているかどうかがわからないんだ。
そして、同じ計算を2回しないことをお勧めします。
私の知る限り、このトピックはmql5用です。あなたのコードはmql4のみです。
MQL4では、これらを使用しました。
どういう意味ですか?これは単なる断片で、例えばNewBar()関数内など、好きなところに入れることができます。そして、最もシンプルで迅速、かつ信頼性の高い解決策だと思う。私は、すべてのタイムフレームについて、CsymbolInfoクラスの派生物にこれを含め、完璧に動作するようにしました。
mql5にはiTime()関数がありません。
MT5ですか、そうですか。しかし、MQL5はMT5だけではありません。少なくとも私は、MT4はMQL5コンパイラを使用していると理解していました。しかし、実際には、私は主にMT4を使っているので、それは知りませんでした。とにかく、制限についての情報をありがとうございました。
MQL4のiTime()は、MQL4の他の関数と同様、トレーダーにとって簡単でわかりやすいものです。
MQL5は違います。コーディングするにはコンピュータサイエンスの学位が必要で、それがほとんどの人を落胆させています。
先週、MT4のEAをMT5に変換しようとしたときに遭遇した例と、私が見つけた解決策を紹介します。
いいえ、mql4はMT4用、mql5はMT5用です。この2つの言語には、共通する機能のサブセットがありますが、それは2つの異なる言語です。
言語は同じですが、共通ではない機能の サブセットをもっています;)とにかく、この定義はおそらく正しいでしょう。MQは、この時点で混乱を招くようなことをたくさんしました。
MT5ですか、そうですか。しかし、MQL5はMT5だけではありません。少なくとも私は、MT4はMQL5コンパイラを使用していると理解していました。しかし、実際には、私は主にMT4を使っているので、それは知りませんでした。とにかく、制限についての情報をありがとうございました。