どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 183

 
Integer:


int bt=((TimeCurrent()-5*60)/3600)*3600;

毎正時5分にbt値が変化します。最後に3600を掛けないことも可能で、その場合はエポックの最初からの小節番号となり、これだけで新しい小節を定義することができます。

理解できない。フルコードを取得できれば
 
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へ

 

手書きで書いたところです。大まかな流れはつかめるし、その範囲内であれば問題ないでしょう。

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);
}
 

何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。

bool NewBar(){
 if(Minute()==5)return(true);
 else return(false);
}
 
Integer:


int bt=((TimeCurrent()-5*60)/3600)*3600;

毎正時5分にbt値が変化します。最後に3600を掛けないことも可能で、その場合はエポックの最初からの小節番号となり、これだけで新しい小節を定義することができます。


逃した。最後に3600倍した場合は、5*60の補正も足し直してください。

 
Sepulca:

何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。


つまり、本当に、私たちはここでお利口さんにしているのですが...。
 
Integer:


逃した。最後に3600倍した場合は、5*60の補正も足し直してください。


ちょっと包まれていて読めない。でも、言いたいことはわかるんです。
 
hoz:


すぐに「型が違うな」と思いました。

そして、それらを比較し、値を割り振る...。intからdatetimeへ

intと datetimeは 同じ型です。
 
Sepulca:

何を騒いでいるんだ...。ここでは、毎時5分にTRUEを返し、それを1分間保持する。

この間、アドバイザーは彼のために最大40の注文を開ける。
 
Roger:
その1分間で、アドバイザーは彼のために40もの注文を開けることになる。


これは、注文数を制御する方法です...あるいは、最初の関数への呼び出しだけ...