Por que você obtém um novo bar noSeriesInfoInteger? Até onde me lembro - é uma função assíncrona muito lenta (talvez algo tenha mudado - eu não verifiquei). Como regra geral, todas as inconsistências e lentidão são uma conseqüência do uso de funções assíncronas. Evite-os, se possível. Tente usá-los de alguma outra forma. Por exemplo, através do iTime ou iBars. E não esqueça que o OnChartEvent é assíncrono e não pode ser chamado mais de 64 vezes por segundo, ou seja, no máximo uma vez a cada 15.625 milissegundos.
novo bar via SERIES_LASTBAR_DATE
E não esqueça que o OnChartEvent é assíncrono e não pode ser chamado mais de 64 vezes por segundo, ou seja, no máximo uma vez a cada 15.625 milissegundos.
como se diz na China, por mais roxo que seja, desde que seja rentável
O que é isso? Já dei um e vou repeti-lo - se você não sabe escrever indicadores, não diga que eles não funcionam corretamente ou que a abordagem com indicadores em geral é ruim, errada, irracional.
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;}; // вызывается при создании Объекта, проинициализация тут не нужна, что-бы сразу прошел новый бар
};
if(id>=CHARTEVENT_CUSTOM) // Цикл событий по символам
O que é isto? O que poderia ter a ver com um indicador normal? Você está inventando coisas em vez de ler os artigos e aprender a fazer as coisas corretamente. É por isso que é tão ingênuo - indicadores "não funcionam corretamente". Todo mundo é tão criativo a ponto de ser estonteante.
Por que você obtém um novo bar noSeriesInfoInteger?
Até onde me lembro - é uma função assíncrona muito lenta (talvez algo tenha mudado - eu não verifiquei).
Como regra geral, todas as inconsistências e lentidão são uma conseqüência do uso de funções assíncronas. Evite-os, se possível.
Tente usá-los de alguma outra forma. Por exemplo, através do iTime ou iBars.
E não esqueça que o OnChartEvent é assíncrono e não pode ser chamado mais de 64 vezes por segundo, ou seja, no máximo uma vez a cada 15.625 milissegundos.
novo bar via SERIES_LASTBAR_DATE
E não esqueça que o OnChartEvent é assíncrono e não pode ser chamado mais de 64 vezes por segundo, ou seja, no máximo uma vez a cada 15.625 milissegundos.
como se diz na China, por mais roxo que seja, desde que seja rentável
quão ingênuo...
Dimitri, posso obter uma referência?
novo bar via SERIES_LASTBAR_DATE
SERIE_LASTBAR_DATE é apenas o ID usado na sérieInfoInteger.
Dimitri, posso receber uma recomendação?
O que é isso? Já dei um e vou repeti-lo - se você não sabe escrever indicadores, não diga que eles não funcionam corretamente ou que a abordagem com indicadores em geral é ruim, errada, irracional.
SERIES_LASTBAR_DATE é apenas o Identificador utilizado na sérieInfoInteger.
Este NewBar significa que não há mais do que uma tentativa.
não está claro o que se entende por
como você pode ver, o número de caracteres é passado corretamente, para a nova classe de barras e processado corretamente láO que é isto? O que poderia ter a ver com um indicador normal? Você está inventando coisas em vez de ler os artigos e aprender a fazer as coisas corretamente. É por isso que é tão ingênuo - indicadores "não funcionam corretamente". Todo mundo é tão criativo a ponto de ser estonteante.
não está claro o que se entende por
E você não o fará. NewBar é um diagnóstico.