ibarshift的类似物。
int iBarOnTime( string symbol, ENUM_TIMEFRAMES timeframe, datetime time, bool exact=false )
Time[]的类似物。
Time( int i )
外面还有很多东西会派上用场。
double iHigh(string symbol,int tf,int ind) double High( int i ) double iLow(string symbol,int tf,int ind) double Low( int i ) double iClose(string symbol,int tf,int ind) double Close( int i ) double iOpen(string symbol,int tf,int ind) double Open( int i ) double HighOnTime( string symbol, ENUM_TIMEFRAMES timeframe, datetime time, bool exact=false ) double LowOnTime( string symbol, ENUM_TIMEFRAMES timeframe, datetime time, bool exact=false ) double CloseOnTime( string symbol, ENUM_TIMEFRAMES timeframe, datetime time, bool exact=false ) double OpenOnTime( string symbol, ENUM_TIMEFRAMES timeframe, datetime time, bool exact=false ) string SPeriod(ENUM_TIMEFRAMES tf) //символьное представление периода datetime iTime( const string symbol, int tf, int ind ) //+------------------------------------------------------------------+ //| Аналог Bars(), не требует предварительной синхронизации истории | //| Вход : symbol - символ в терминале | //| timeframe - таймфрейм | //| Выход : нет | //| Прим. : нет | //+------------------------------------------------------------------+ int BarsSinh( string symbol,ENUM_TIMEFRAMES timeframe ) //+------------------------------------------------------------------+ //| Произвести синхронизацию таймсерии с историей | //| Вход : symbol - символ в терминале | //| tf - таймфрейм | //| Выход : нет | //| Прим. : нет | //+------------------------------------------------------------------+ void SynhronizeSeries( string symbol, ENUM_TIMEFRAMES tf ) //+------------------------------------------------------------------+ //| Проверить наличие истории на дату start_date, если остуствует, | //| то произвести попытку загрузки | //| Вход : symbol - символ в терминале | //| period - таймфрейм | //| start_date - дата проверки истории | //| Выход : код результата выполнения операции подробнее | //| см. https://www.mql5.com/ru/docs/series/timeseries_access | //| Прим. : нет | //+------------------------------------------------------------------+ int CheckLoadHistory(string symbol,ENUM_TIMEFRAMES period,datetime start_date) //+------------------------------------------------------------------+ //| возвращает строкое значение периода | //+------------------------------------------------------------------+ string GetPeriodName(ENUM_TIMEFRAMES period)
附加的文件:
common.mqh
22 kb
marketeer:
如果有人感兴趣,我找到了一个替代品。
根据我的测量,与CopyTime变体相比,加速度是2到7倍(取决于输入数据)。如果你有任何意见或错误,请写信。
谢谢你。我将尝试一下。
或者说,现在这样做才是正确的做法。
int bar = Bars(0, 0, barTime_last, TimeCurrent());
Roffild:
或者说,现在这个说法更正确。
int bar = Bars(0, 0, barTime_last, TimeCurrent());
甚至更快、更正确(第一个参数必须是NULL,它在零的情况下不工作)。
int bar = Bars(NULL, 0, t, 32000000000);
因为没有必要不必要地执行TimeCurrent()函数
32000000000不是来自当前时刻,而是几乎来自3000的时刻
Nikolai Semko:
甚至更快、更正确(第一个参数必须是NULL,它在零的情况下不工作)。
因为没有必要不必要地执行TimeCurrent()函数
32000000000不是来自当前时刻,而是几乎来自3000的时刻
那么-1呢?这是一个重要的时刻...
Denis:
-1的情况如何?这是一个重要的观点...
我不知道你在说什么?-1的情况如何?这是一个重要的观点...
解释一下。
我错过了类似于MT4的iBarShift 的功能。你能告诉我怎么做吗?
而据我所知,你应该使用CopyTime而不是Time[10]?