GarF1eld писал(а) # :
MT4용 iBarShift와 유사한 기능을 간과했습니다. 방법을 알려주세요?
그리고 Time[10] 대신 CopyTime을 사용해야 한다는 것을 얼마나 이해하고 있습니까?
ibarshift와 유사:
int iBarOnTime( string symbol, ENUM_TIMEFRAMES timeframe, datetime time, bool exact=false )
시간[]의 유사체:
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
감사하다! 유용한 것
표준에서 더 제정신이 아닌 것이 있으면 라이브러리의 알고리즘을 사용하겠습니다.
관심 있는 사람이 있으면 대안을 찾았습니다.
int iBarShiftFast( string symbol, ENUM_TIMEFRAMES timeframe, datetime time) { datetime lastBar; SeriesInfoInteger (symbol, timeframe, SERIES_LASTBAR_DATE , lastBar); return ( Bars (symbol, timeframe, time, lastBar) - 1 ); }
내 측정에 따르면 CopyTime 옵션과 비교하여 속도 향상은 2배에서 7배까지입니다(입력 데이터에 따라 다름). 의견이나 버그가 있으면 작성해 주십시오.
marketeer :
관심 있는 사람이 있으면 대안을 찾았습니다.
내 측정에 따르면 CopyTime 옵션과 비교하여 속도 향상은 2배에서 7배까지입니다(입력 데이터에 따라 다름). 의견이나 버그가 있으면 작성해 주십시오.
고맙습니다. 사용하려고 합니다.
또는 다음과 같이 더 좋습니다.
int bar = Bars(0, 0, barTime_last, TimeCurrent());
Roffild :
또는 다음과 같이 더 좋습니다.
int bar = Bars(0, 0, barTime_last, TimeCurrent());
그리고 더 빠르고 정확합니다(첫 번째 매개변수는 NULL이어야 하며 0에서는 작동하지 않습니다)
int bar = Bars ( NULL , 0 , t, 32000000000 );
추가 기능을 수행하는 이유는 TimeCurrent()
32000000000은 현재 순간이 아니라 거의 3000의 순간부터
Nikolai Semko :
그리고 더 빠르고 정확합니다(첫 번째 매개변수는 NULL이어야 하며 0에서는 작동하지 않습니다)
추가 기능을 수행하는 이유는 TimeCurrent()
32000000000은 현재 순간이 아니라 거의 3000의 순간부터
하지만 -1은 어떻습니까? 중요한 포인트...
Denis :
하지만 -1은 어떻습니까? 중요한 포인트...
무슨 내용인지 이해하지 못하셨나요?하지만 -1은 어떻습니까? 중요한 포인트...
설명하다.
MT4용 iBarShift 와 유사한 기능을 간과했습니다. 방법을 알려주세요?
그리고 Time[10] 대신 CopyTime을 사용해야 한다는 것을 얼마나 이해하고 있습니까?