MT4 için iBarShift'e benzer işlevleri gözden kaçırdım. Bana nasıl yapacağımı söyle?
Ve Time[10] yerine CopyTime kullanmak gerektiğini ne kadar anlıyorum?
ibarshift'e benzer:
int iBarOnTime( string symbol, ENUM_TIMEFRAMES timeframe, datetime time, bool exact=false )
Zamanın analogu[]:
Time( int i )
Yararlı olacak daha pek çok şey var:
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)
teşekkür etmek! kullanışlı şey
standarttan daha mantıklı bir şey yoksa, kütüphanedeki algoritmaları kullanacağım
İlgilenen varsa, bir alternatif buldum.
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 ); }
Ölçümlerime göre, CopyTime seçeneğine kıyasla hızlanma 2 ila 7 kat arasında (giriş verilerine bağlı olarak). Yorumlarınız veya hatalarınız varsa, lütfen yazın.
İlgilenen varsa, bir alternatif buldum.
Ölçümlerime göre, CopyTime seçeneğine kıyasla hızlanma 2 ila 7 kat arasında (giriş verilerine bağlı olarak). Yorumlarınız veya hatalarınız varsa, lütfen yazın.
Teşekkür ederim. kullanmaya çalışacağım.
Ya da belki böylesi daha iyidir:
Ya da belki böylesi daha iyidir:
Ve daha da hızlı ve daha doğru (ilk parametre NULL olmalıdır, sıfırla çalışmaz)
int bar = Bars ( NULL , 0 , t, 32000000000 );
Neden ekstra bir işlev TimeCurrent () gerçekleştirin?
32000000000 şimdiki andan değil, neredeyse 3000 andan itibaren
Ve daha da hızlı ve daha doğru (ilk parametre NULL olmalıdır, sıfırla çalışmaz)
Neden ekstra bir işlev TimeCurrent () gerçekleştirin?
32000000000 şimdiki andan değil, neredeyse 3000 andan itibaren
Peki ya -1? Önemli bir nokta...
Peki ya -1? Önemli bir nokta...
Ne hakkında olduğunu anlamadın mı?
Çubuklar işlevi , çubukların sayısını döndürür. 9 indeksli çubuğun indeksini almamız gerektiğinde (totoloji için üzgünüm), 10 dönecektir, çünkü ilk çubuğun indeksi 0'dır.
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
MT4 için iBarShift'e benzer işlevleri gözden kaçırdım. Bana nasıl yapacağımı söyle?
Ve Time[10] yerine CopyTime kullanmak gerektiğini ne kadar anlıyorum?