Ich vermisse die Funktionalität ähnlich wie bei iBarShift für MT4. Können Sie mir sagen, wie man das macht?
Und soweit ich weiß, sollten Sie CopyTime anstelle von Time[10] verwenden?
Das Analogon von ibarshift:
int iBarOnTime( string symbol, ENUM_TIMEFRAMES timeframe, datetime time, bool exact=false )
analog zu Time[]:
Time( int i )
Es gibt noch viel mehr, das sich als nützlich erweisen wird:
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)
Falls jemand daran interessiert ist, habe ich eine Alternative gefunden.
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); }
Nach meinen Messungen beträgt die Beschleunigung im Vergleich zur CopyTime-Variante das 2- bis 7-fache (je nach Eingabedaten). Wenn Sie Kommentare oder Fehler haben, schreiben Sie uns bitte.
Falls jemand daran interessiert ist, habe ich eine Alternative gefunden.
Nach meinen Messungen beträgt die Beschleunigung im Vergleich zur CopyTime-Variante das 2- bis 7-fache (je nach Eingabedaten). Wenn Sie Kommentare oder Fehler haben, schreiben Sie uns bitte.
Ich danke Ihnen. Ich werde es versuchen.
Oder vielleicht ist dies der richtige Weg, es jetzt zu tun:
Oder vielleicht ist das jetzt eher richtig:
Und noch schneller und korrekter (der erste Parameter muss NULL sein, mit Null funktioniert es nicht)
int bar = Bars(NULL, 0, t, 32000000000);
Da die FunktionTimeCurrent() nicht unnötig ausgeführt werden muss
32000000000 ist nicht aus dem aktuellen Moment, sondern fast aus dem Moment von 3000
Und noch schneller und korrekter (der erste Parameter muss NULL sein, mit Null funktioniert es nicht)
Da die FunktionTimeCurrent() nicht unnötig ausgeführt werden muss
32000000000 ist nicht aus dem aktuellen Moment, sondern fast aus dem Moment von 3000
Und was ist mit -1? Dies ist ein wichtiger Moment...
Was ist mit -1? Das ist ein wichtiger Punkt...
Ich bin mir nicht sicher, worum es hier geht?
Die Funktion Balken gibt die Anzahl der Balken zurück. Wenn wir den Index eines Balkens mit dem Index 9 (entschuldigen Sie die Tautologie) abfragen wollen, wird 10 zurückgegeben, da der Index des ersten Balkens 0 ist.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Ich vermisse die Funktionalität ähnlich wie bei iBarShift für MT4. Können Sie mir sagen, wie man das macht?
Und soweit ich weiß, sollten Sie CopyTime anstelle von Time[10] verwenden?