どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 183 1...176177178179180181182183184185186187188189190...1178 新しいコメント gince 2013.10.12 06:34 #1821 Integer: int bt=((TimeCurrent()-5*60)/3600)*3600; 毎正時5分にbt値が変化します。最後に3600を掛けないことも可能で、その場合はエポックの最初からの小節番号となり、これだけで新しい小節を定義することができます。 理解できない。フルコードを取得できれば Viktar Dzemikhau 2013.10.12 07:24 #1822 gince: 皆さん、ありがとうございました。 問題はこれだった。 <NewBar(sy, TF)という関数が あります。新しいバーがオープンしたような感じです。時間足チャートで、5分遅れで新しいバーの出現を知らせるシグナルを出したい。つまり、0.05, 1.05, 2.05, ......, 10.05, 11.05, などで信号を出したい。> 質問を明確にするために。この関数は、1時間ごとに真を返しますが、5分遅れて返します。つまり、バー1.05の形成が終わり、バー2.05が出現したとき、関数は後者が出現したときに真を返します。この関数は,バーが1.10,2.10,...と表示されたときに真を返す。 写真では、黄色の線が次のバーが真であることを示しています。 あなたのアドバイスに従って、この方法で試してみましたが、うまくいきません。 すぐに「型がおかしいな」と思いました。 static int LastBar = 0; datetime curbar = iTime (Symbol(), 60, 0) +300; そして、それらを比較し、値を割り当てる...。intからdatetimeへ Viktar Dzemikhau 2013.10.12 07:42 #1823 手書きで書いたところです。大まかな流れはつかめるし、その範囲内であれば問題ないでしょう。 bool IsTrueBar () { static datetime LastTrueBar = 0; datetime OOT, CurBar, ShiftFromOOT; //---- OOT = iTime (Symbol(), PERIOD_H1, 0); // Время открытия часовик CurBar = OOT + ShiftFromOOT; // Время открытия со сдвигом if (LastTrueBar != CurBar) { LastTrueBar = CurBar; return(true); } else return (false); } Mikhail Kozhemyako 2013.10.12 07:51 #1824 何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。 bool NewBar(){ if(Minute()==5)return(true); else return(false); } Dmitry Fedoseev 2013.10.12 08:11 #1825 Integer: int bt=((TimeCurrent()-5*60)/3600)*3600; 毎正時5分にbt値が変化します。最後に3600を掛けないことも可能で、その場合はエポックの最初からの小節番号となり、これだけで新しい小節を定義することができます。 逃した。最後に3600倍した場合は、5*60の補正も足し直してください。 Viktar Dzemikhau 2013.10.12 08:39 #1826 Sepulca: 何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。 つまり、本当に、私たちはここでお利口さんにしているのですが...。 Viktar Dzemikhau 2013.10.12 08:40 #1827 Integer: 逃した。最後に3600倍した場合は、5*60の補正も足し直してください。 ちょっと包まれていて読めない。でも、言いたいことはわかるんです。 Artyom Trishkin 2013.10.12 12:23 #1828 hoz: すぐに「型が違うな」と思いました。 そして、それらを比較し、値を割り振る...。intからdatetimeへ intと datetimeは 同じ型です。 Alexander 2013.10.12 15:26 #1829 Sepulca: 何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。 この間、アドバイザーは彼のために最大40の注文を開ける。 Mikhail Kozhemyako 2013.10.12 15:43 #1830 Roger: その1分間で、アドバイザーは彼のために40もの注文を開けることになる。 これは、注文数を制御する方法です...あるいは、最初の関数への呼び出しだけ... 1...176177178179180181182183184185186187188189190...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
int bt=((TimeCurrent()-5*60)/3600)*3600;
毎正時5分にbt値が変化します。最後に3600を掛けないことも可能で、その場合はエポックの最初からの小節番号となり、これだけで新しい小節を定義することができます。
皆さん、ありがとうございました。
問題はこれだった。
<NewBar(sy, TF)という関数が あります。新しいバーがオープンしたような感じです。時間足チャートで、5分遅れで新しいバーの出現を知らせるシグナルを出したい。つまり、0.05, 1.05, 2.05, ......, 10.05, 11.05, などで信号を出したい。>
質問を明確にするために。この関数は、1時間ごとに真を返しますが、5分遅れて返します。つまり、バー1.05の形成が終わり、バー2.05が出現したとき、関数は後者が出現したときに真を返します。この関数は,バーが1.10,2.10,...と表示されたときに真を返す。
写真では、黄色の線が次のバーが真であることを示しています。
あなたのアドバイスに従って、この方法で試してみましたが、うまくいきません。
すぐに「型がおかしいな」と思いました。
そして、それらを比較し、値を割り当てる...。intからdatetimeへ
手書きで書いたところです。大まかな流れはつかめるし、その範囲内であれば問題ないでしょう。
何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。
int bt=((TimeCurrent()-5*60)/3600)*3600;
毎正時5分にbt値が変化します。最後に3600を掛けないことも可能で、その場合はエポックの最初からの小節番号となり、これだけで新しい小節を定義することができます。
逃した。最後に3600倍した場合は、5*60の補正も足し直してください。
何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。
つまり、本当に、私たちはここでお利口さんにしているのですが...。
逃した。最後に3600倍した場合は、5*60の補正も足し直してください。
ちょっと包まれていて読めない。でも、言いたいことはわかるんです。
すぐに「型が違うな」と思いました。
そして、それらを比較し、値を割り振る...。intからdatetimeへ
何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。
その1分間で、アドバイザーは彼のために40もの注文を開けることになる。
これは、注文数を制御する方法です...あるいは、最初の関数への呼び出しだけ...