if(id>=CHARTEVENT_CUSTOM) // Цикл событий по символам
{
static CNewBar M1;
constint number=id-CHARTEVENT_CUSTOM; //приведем в нормальный вид номер символа 0-7//--- проверим новый ли барif(M1.NewBar(number,PERIOD_M1))
//+------------------------------------------------------------------+//| Class Новый бар |//+------------------------------------------------------------------+class CNewBar
{
protected:
datetime oldTime[TRADE_SYMBOLS];
public:
bool NewBar(int number,ENUM_TIMEFRAMES timeframe)
{
//--- создаем переменную newtime(тип время), присваиваем в нее из функции SeriesInfoInteger дату открытия последнего бараdatetime newTime=datetime(SeriesInfoInteger(Symbols[number],timeframe,SERIES_LASTBAR_DATE));
if(newTime!=oldTime[number] && newTime) // проверка на появление нового бара (новое время не равно старому и в newtime есть значение(true))
{
oldTime[number]=newTime; //обновим время прошлого бараreturn(true); // вернем функции NewBar true, появился новый бар//if(MQLInfoInteger(MQL_DEBUG))// Print("Новый бар",newTime,"старый бар",oldTime); // в режиме отладки, будет выводится сообщение о значениях времен баров
}
//--- иначе,return(false); // нового бара еще нет
};
//---- конструктор класса// CNewBar() {oldTime=NULL;}; // вызывается при создании Объекта, проинициализация тут не нужна, что-бы сразу прошел новый бар
};
SeriesInfoIntegerに 新しいバーが表示されるのはなぜですか?
私の記憶では、これは非常に遅い非同期関数です(何かが変わったのかもしれませんが、私は確認していません)。
原則として、すべての矛盾と遅さは、非同期関数を使用することの結果です。可能な限り避けてください。
何か別の方法で使ってみてください。例えば、iTimeやiBarsを経由して。
また、OnChartEvent自体は非同期であり、1秒間に64回以上、つまり最大でも15.625ミリ秒に1回しか呼び出されないことを忘れないでください。
SERIES_LASTBAR_DATE を介して新しいバーを取得する。
また、OnChartEvent自体は非同期であり、1秒間に64回以上、つまり最大でも15.625ミリ秒に1回しか呼び出されないことを忘れないでください。
とうしゃばんはいかぬ
なあんだ
ディミトリ、参考までに教えてください。
SERIES_LASTBAR_DATE を介して新しいバーを取得する。
SERIES_LASTBAR_DATE は SeriesInfoInteger で使用される IDのみ である。
ディミトリ、推薦してくれるかな?
何ですか?もしあなたが指標の書き方を知らないなら、それが正しく機能しないとか、一般的な指標の使い方が悪い、間違っている、不合理であると主張しないでください。
SERIES_LASTBAR_DATE は SeriesInfoInteger で使用される Identifierのみで ある。
このNewBarは、1回以上の試行がないことを意味します。
が何を意味しているかは不明です。
ご覧のように、文字番号が正しく渡され、新しいバークラスで正しく処理されます。これは何でしょう?普通のインジケーターと何の関係があるんだ? 記事を読んで正しい方法を学ばずに捏造してるんだろ?だから、指標が「まともに動かない」という甘えがあるんです。とてもクリエイティブですね。
が何を意味しているかは不明です。
そして、あなたはそうしないでしょう。NewBarは診断です。