Versione del server in Opener - pagina 13

 
prostotrader:

C'è un'altra opzione, per il rame (sembra che ce ne siano 2 e 5),

tutti gli altri futures sono a 3 o 1 mese.

Potete sostituire automaticamente un mese.

Beh, se è così, forse è meglio prendere

TimeToString(SymbolInfoInteger(_Symbol, SYMBOL_EXPIRATION_TIME), TIME_DATE)

ed estrarre l'anno e il mese+3(1) da quella data.

O infilare questa data in una struttura e prendere il mese e l'anno da lì. E poi incollare il nome del personaggio. Ora proverò la struttura.

 

Mi è piaciuto il modo in cui è venuto fuori attraverso la struttura...

string newFutures(const string aSymbol, int month = 3)
 {
  MqlDateTime mqlDateTime;
  TimeToStruct(SymbolInfoInteger(aSymbol, SYMBOL_EXPIRATION_TIME), mqlDateTime);    // Заполнили структуру датой экспирации фьючерса
  string symb = StringSubstr(aSymbol, 0, StringFind(_Symbol, "-")+1);               // Вытащили имя символа вместе с дефисом
  return(symb+(string)(mqlDateTime.mon+month)+"."+(string)(mqlDateTime.year%1000)); // Вернули составленное имя следующего фьючерса
 }
 
Alexey Viktorov:

Mi è piaciuto il modo in cui ha lavorato attraverso la struttura...

Ora prova per i futures XXX-12.20

Questo dovrebbe risultare in XXXX-3.21

Aggiunto da

E poi provate se volete non i prossimi futures, ma attraverso i futures (NtxFutMonth = 6)

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
 
prostotrader:

Ora prova per i futures XXXX-12.20

Dovreste ottenere XXXX-3.21.

Oh! Giusto. Questa è la prossima fase. Lo finirò e basta.

 
Alexey Viktorov:

Oh! Giusto. Questo è il prossimo passo. Me ne occuperò subito.

:)

Qual è il punto? La funzione che ti ho dato funziona da anni...

 
prostotrader:

Ora prova per i futures XXX-12.20

Sarebbe XXXX-3.21

Aggiunto

E poi provate se volete non i prossimi futures, ma attraverso i futures (NtxFutMonth = 6)

Qualcosa è uscito troppo facilmente. Controllate per favore.

string newFutures(const string aSymbol, int month = 3) // Сюда можно вставить и 1 и 6
 {
  MqlDateTime mqlDateTime;
  TimeToStruct(SymbolInfoInteger(aSymbol, SYMBOL_EXPIRATION_TIME)+month*PeriodSeconds(PERIOD_MN1), mqlDateTime);// Получилось время экспирации следующего фьючерса
  string symb = StringSubstr(aSymbol, 0, StringFind(_Symbol, "-")+1);
  return(symb+(string)(mqlDateTime.mon)+"."+(string)(mqlDateTime.year%1000));
 }

L'ho fatto.

newFutures("RTS-12.19")
ha riportato l'RTS-3.20
 
prostotrader:

:)

Qual è il punto? La funzione che ti ho dato funziona da anni...

L'ho chiesto perché pensavo che ci fosse un'opzione semplice. Non dubito affatto della tua funzione, ma dal mio punto di vista è un po' più complicato.
 
Alexey Viktorov:
L'ho chiesto perché pensavo che ci fosse un'opzione semplice. Non dubito affatto della funzionalità della tua funzione, ma dal mio punto di vista è un po' più complicato di quello che ho fatto.

OK, nessun problema.

PutNtxFutMonth = 6 su futures XXXX-12.20

 
prostotrader:

OK, nessun problema.

PutNtxFutMonth = 6 su futures XXXX-12.20

Mettilo su RTS-12.19.

newFutures("RTS-12.19", 6)

e ha ottenuto RTS-6.20.

Ho solo paura di essermi perso qualche sottigliezza. Ecco perché vi ho chiesto di controllare.

 
Alexey Viktorov:

Mettilo su RTS-12.19

e ha ottenuto RTS-6.20

Ho solo paura di essermi perso qualche sottigliezza. Ecco perché vi ho chiesto di controllare.

Prova questo.

Current Next Futures
Current Next Futures
  • www.mql5.com
Cкрипт с тремя независимыми функциями для определения текущего (ближайшего) фьючерса рынка FORTS. В параметрах вводится короткое наименование фьючерса, например br (можно мелким шрифтом). На выходе полное...
Motivazione: