Açıcı'da sunucu sürümü - sayfa 13

 
prostotrader :

Bakır için başka bir seçenek daha var (2 ve 5 gibi görünüyor),

diğer tüm vadeli işlemler veya 3 veya 1 ay

Ayı otomatik olarak değiştirebilirsiniz

Eğer öyleyse, almak daha iyi olabilir

 TimeToString ( SymbolInfoInteger ( _Symbol , SYMBOL_EXPIRATION_TIME ), TIME_DATE )

ve bu tarihten itibaren yılı ve ayı çıkarın+3(1)

Veya bu tarihi yapıya sokmak ve oradan ay ve yıl almak. Ardından sembolün adını yapıştırın. Şimdi yapıyı deneyeceğim.

 

Ve yapının içinden nasıl çıktığını beğendim ...

 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 :

Ve yapının içinden nasıl çıktığını beğendim ...

Ve şimdi XXXX-12.20 vadeli işlemleri deneyin

XXXX-3.21 olmalıdır

Katma

Ve sonra bir sonraki geleceği değil, geleceği istiyorsanız deneyin (NtxFutMonth = 6)

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

Ve şimdi XXXX-12.20 vadeli işlemleri deneyin

XXXX-3.21 olmalıdır

Ö! kesinlikle. Bu bir sonraki adım. Şimdi bitireceğim.

 
Alexey Viktorov :

Ö! kesinlikle. Bu bir sonraki adım. Şimdi bitireceğim.

:)

Anlam? Sana verdiğim fonksiyon yıllardır çalışıyor...

 
prostotrader :

Ve şimdi XXXX-12.20 vadeli işlemleri deneyin

XXXX-3.21 olmalıdır

Katma

Ve sonra bir sonraki geleceği değil, geleceği istiyorsanız deneyin (NtxFutMonth = 6)

Çok kolay bir şey. Hesap Lütfen.

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

Sahibim

newFutures( "RTS-12.19" )
döndürülen RTS-3.20
 
prostotrader :

:)

Anlam? Sana verdiğim fonksiyon yıllardır çalışıyor...

Sordum çünkü kolay bir yolu olduğunu düşündüm. İşlevinizin çalıştığından şüphem yok ama benim açımdan benim yaptığımdan biraz daha karmaşık.
 
Alexey Viktorov :
Kolay bir yolu olduğunu düşündüğüm için sordum. İşlevinizin çalıştığından şüphem yok ama benim açımdan benim yaptığımdan biraz daha karmaşık.

Tamam, soru değil.

XXXX-12.20 vadeli işlemler için NtxFutMonth = 6 yerine

 
prostotrader :

Tamam, soru değil.

XXXX-12.20 vadeli işlemler için NtxFutMonth = 6 yerine

RTS-12.19'a bahse girerim

newFutures( "RTS-12.19" , 6 )

ve RTS-6.20 aldı

Korkarım bazı incelikleri kaçırdım. Bu yüzden kontrol etmeni istedim.

 
Alexey Viktorov :

RTS-12.19'a bahse girerim

ve RTS-6.20 aldı

Korkarım ki bazı incelikleri kaçırdım. Bu yüzden kontrol etmeni istedim.

Bu seçeneği deneyin

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