Opener의 서버 버전 - 페이지 13

 
prostotrader :

구리에 대한 또 다른 옵션이 있습니다(2와 5가 있는 것 같습니다).

기타 모든 선물 또는 3개월 또는 1개월

월을 자동으로 대체할 수 있습니다.

글쎄, 그렇다면 복용하는 것이 더 나을 수 있습니다.

 TimeToString ( SymbolInfoInteger ( _Symbol , SYMBOL_EXPIRATION_TIME ), TIME_DATE )

이 날짜에서 연도와 월을 추출합니다.+3(1)

또는 이 날짜를 구조로 밀어 넣고 거기에서 월과 연도를 가져옵니다. 그런 다음 기호의 이름 을 붙입니다. 이제 구조를 살펴보겠습니다.

 

그리고 나는 그것이 구조를 통해 어떻게 밝혀 졌는지 좋아했습니다 ...

 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 :

그리고 나는 그것이 구조를 통해 어떻게 밝혀 졌는지 좋아했습니다 ...

그리고 지금 선물 XXXX-12.20을 위해 노력하십시오

XXXX-3.21이어야 합니다.

추가됨

그런 다음 다음 미래가 아니라 미래를 통해 시도하십시오(NtxFutMonth = 6).

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

그리고 지금 선물 XXXX-12.20을 위해 노력하십시오

XXXX-3.21이어야 합니다.

영형! 바로 그거죠. 다음 단계입니다. 이제 끝내겠습니다.

 
Alexey Viktorov :

영형! 바로 그거죠. 다음 단계입니다. 이제 끝내겠습니다.

:)

의미? 내가 당신에게 준 기능은 몇 년 동안 작동했습니다 ...

 
prostotrader :

그리고 지금 선물 XXXX-12.20을 위해 노력하십시오

XXXX-3.21이어야 합니다.

추가됨

그런 다음 다음 미래가 아니라 미래를 통해 시도하십시오(NtxFutMonth = 6).

뭔가 너무 쉽습니다. 확인하시기 바랍니다.

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

나는 가지고있다

newFutures( "RTS-12.19" )
반환된 RTS-3.20
 
prostotrader :

:)

의미? 내가 당신에게 준 기능은 몇 년 동안 작동했습니다 ...

쉬운 방법이 있을 것 같아서 여쭤봤습니다. 나는 당신의 기능이 작동한다는 데 의심의 여지가 없지만 내 관점에서는 내가 한 것보다 조금 더 복잡합니다.
 
Alexey Viktorov :
쉬운 방법이 있을 것 같아서 여쭤봤습니다. 나는 당신의 기능이 작동한다는 데 의심의 여지가 없지만 내 관점에서는 내가 한 것보다 조금 더 복잡합니다.

알겠습니다. 질문이 아닙니다.

XXXX-12.20 선물을 NtxFutMonth = 6으로 대체

 
prostotrader :

알겠습니다. 질문이 아닙니다.

XXXX-12.20 선물을 NtxFutMonth = 6으로 대체

나는 RTS-12.19에 내기

newFutures( "RTS-12.19" , 6 )

RTS-6.20을 얻었습니다.

나는 단지 약간의 미묘함을 놓친 것이 두렵습니다. 그래서 확인을 부탁드린 것입니다.

 
Alexey Viktorov :

나는 RTS-12.19에 내기

RTS-6.20을 얻었습니다.

나는 단지 약간의 미묘함을 놓친 것이 두렵습니다. 그래서 확인을 부탁드린 것입니다.

이 옵션을 사용해 보세요

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