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本身是异步的,每秒不能被调用超过64次,也就是说,每15.625毫秒最多调用一次。
通过SERIES_LASTBAR_DATE 的新酒吧
别忘了,OnChartEvent本身是异步的,每秒不能被调用超过64次,也就是说,每15.625毫秒最多调用一次。
俗话说得好,万紫千红,只要有利可图
多么天真...
迪米特里,我可以得到一个参考吗?
通过SERIES_LASTBAR_DATE 的新酒吧
SERIES_LASTBAR_DATE 只是SeriesInfoInteger中使用的ID。
迪米特里,能给我推荐一下吗?
它是什么?我已经说过了,我再重复一遍--如果你不知道如何写指标,就不要声称它们不能正确工作,或者说一般的指标方法是坏的、错误的、非理性的。
SERIES_LASTBAR_DATE 只是在SeriesInfoInteger中使用的Identifier。
这个NewBar意味着没有超过一次的尝试。
并不清楚什么是
正如你所看到的,字符号被正确地传递给了新的酒吧类,并且在那里被正确地处理。这是什么?这和正常的指标有什么关系呢? 你在胡编乱造,而不是阅读文章,学习如何正确做事。这就是为什么它是如此天真--指标 "不能正常工作"。每个人都是如此有创意,以至于让人心动。
并不清楚什么是
而你不会的。NewBar是一种诊断。