Version du serveur dans Opener - page 13

 
prostotrader:

Il existe une autre option, pour le cuivre (il semble y avoir 2 et 5),

tous les autres contrats à terme sont à 3 ou 1 mois.

Vous pouvez substituer automatiquement un mois.

Eh bien, si c'est le cas, peut-être que c'est mieux de prendre

TimeToString(SymbolInfoInteger(_Symbol, SYMBOL_EXPIRATION_TIME), TIME_DATE)

et extraire l'année et le mois + 3(1) de cette date.

Vous pouvez aussi placer cette date dans une structure et en déduire le mois et l'année. Et ensuite coller le nom du personnage. Je vais essayer la structure maintenant.

 

J'ai aimé la façon dont ça a tourné à travers la structure...

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:

J'ai aimé la façon dont il a travaillé sur la structure...

Maintenant essayez pour les futures XXX-12.20

Cela devrait donner XXXX-3.21.

Ajouté par

Et ensuite, essayez si vous voulez non pas des next futures, mais des through futures (NtxFutMonth = 6)

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

Maintenant, essayez les contrats à terme XXXX-12.20

Vous devriez obtenir XXXX-3.21.

Oh ! C'est vrai. C'est la prochaine étape. Je vais juste le finir.

 
Alexey Viktorov:

Oh ! C'est vrai. C'est la prochaine étape. Je vais m'en occuper.

:)

Quel est l'intérêt ? La fonction que je t'ai donnée fonctionne depuis des années...

 
prostotrader:

Maintenant essayez pour les futures XXX-12.20

Ce serait XXXX-3.21

Ajouté

Et ensuite, essayez si vous voulez non pas des next futures, mais des through futures (NtxFutMonth = 6)

Quelque chose est sorti trop facilement. Vérifiez-le, s'il vous plaît.

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));
 }

Je l'ai fait.

newFutures("RTS-12.19")
a ramené la RTS-3.20
 
prostotrader:

:)

Quel est l'intérêt ? La fonction que je t'ai donnée fonctionne depuis des années...

J'ai demandé parce que je pensais qu'il y avait une option simple. Je ne doute pas du tout de votre fonction, mais de mon point de vue, c'est un peu plus compliqué que ce que je pensais.
 
Alexey Viktorov:
J'ai demandé parce que je pensais qu'il y avait une option simple. Je ne doute pas du tout de la fonctionnalité de votre fonction, mais de mon point de vue, c'est un peu plus compliqué que ce que j'avais prévu.

OK, pas de problème.

PutNtxFutMonth = 6 sur futures XXXX-12.20

 
prostotrader:

OK, pas de problème.

PutNtxFutMonth = 6 sur futures XXXX-12.20

Mettez-le sur RTS-12.19.

newFutures("RTS-12.19", 6)

et j'ai obtenu RTS-6.20.

J'ai juste peur d'avoir manqué certaines subtilités. C'est pourquoi je vous ai demandé de vérifier.

 
Alexey Viktorov:

Mettez-le sur RTS-12.19

et a obtenu RTS-6.20

J'ai juste peur d'avoir manqué certaines subtilités. C'est pourquoi je vous ai demandé de vérifier.

Essaie celle-là.

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