초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 929

 
Juer :

코드

이 결과를 제공합니다:

내가 무엇을 잘못하고 있지?

열거형의 모든 멤버를 반복하지 않습니다. 내장 열거형은 배열처럼 탐색할 수 없습니다(예: "0"에서 "끝"까지). 내장 열거형에 액세스하려면 열거형의 각 멤버에 올바르게 액세스해야 합니다. 예를 들면 다음과 같습니다.

 //+------------------------------------------------------------------+
//|                                              ENUM_TIMEFRAMES.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   Print ( "PERIOD_CURRENT " , PERIOD_M1 , "\n" ,
         "PERIOD_M2 " , PERIOD_M2 , "\n" ,
         "PERIOD_M3 " , PERIOD_M3 , "\n" ,
         "PERIOD_M4 " , PERIOD_M4 , "\n" ,
         "PERIOD_M5 " , PERIOD_M5 , "\n" ,
         "PERIOD_M6 " , PERIOD_M6 , "\n" ,
         "PERIOD_M10 " , PERIOD_M10 , "\n" ,
         "PERIOD_M12 " , PERIOD_M12 , "\n" ,
         "PERIOD_M15 " , PERIOD_M15 , "\n" ,
         "PERIOD_M20 " , PERIOD_M20 , "\n" ,
         "PERIOD_M30 " , PERIOD_M30 , "\n" ,
         "PERIOD_H1 " , PERIOD_H1 , "\n" ,
         "PERIOD_H2 " , PERIOD_H2 , "\n" ,
         "PERIOD_H3 " , PERIOD_H3 , "\n" ,
         "PERIOD_H4 " , PERIOD_H4 , "\n" ,
         "PERIOD_H6 " , PERIOD_H6 , "\n" ,
         "PERIOD_H8 " , PERIOD_H8 , "\n" ,
         "PERIOD_H12 " , PERIOD_H12 , "\n" ,
         "PERIOD_D1 " , PERIOD_D1 , "\n" ,
         "PERIOD_W1 " , PERIOD_W1 , "\n" ,
         "PERIOD_MN1 " , PERIOD_MN1 , "\n" );
  }
//+------------------------------------------------------------------+
파일:
 
Vladimir Karputov :

열거형의 모든 멤버를 반복하지 않습니다. 내장 열거형은 배열처럼 탐색할 수 없습니다(예: "0"에서 "끝"까지). 내장 열거형에 액세스하려면 열거형의 각 멤버에 올바르게 액세스해야 합니다. 예를 들면 다음과 같습니다.

누가 이런일이 일어날 거라고 생각 했 겠어...
 
int val=( int ) PERIOD_H1 ;

이 식에서 val은 16385와 같습니다. 이 값은 무엇입니까?

나는 항상 int와 enum이 서로 쉽게 변환될 수 있다고 생각했습니다 :(

 
Juer :
누가 이런일이 일어날 거라고 생각 했 겠어...

배열로 표준 열거형에 액세스해야 하는 경우 이러한 배열 을 먼저 선언하고 직접 채워야 합니다.

 //--- variant 2
   ENUM_TIMEFRAMES timeframes_array [ 21 ]=
     {
       PERIOD_M1 , PERIOD_M2 , PERIOD_M3 ,
       PERIOD_M4 , PERIOD_M5 , PERIOD_M6 ,
       PERIOD_M10 , PERIOD_M12 , PERIOD_M15 ,
       PERIOD_M20 , PERIOD_M30 , PERIOD_H1 ,
       PERIOD_H2 , PERIOD_H3 , PERIOD_H4 ,
       PERIOD_H6 , PERIOD_H8 , PERIOD_H12 ,
       PERIOD_D1 , PERIOD_W1 , PERIOD_MN1
     };
   int size= ArraySize ( timeframes_array );
   for ( int i= 0 ;i<size;i++)
       Print (i, ": " , EnumToString ( timeframes_array [i]), " " , timeframes_array [i]);
 
Juer :

이 식에서 val 은 16385와 같습니다. 이 값은 무엇입니까?

나는 항상 int와 enum이 서로 쉽게 변환될 수 있다고 생각했습니다 :(

위의 내 예(   ): 재생 및 숫자 보기

 

ftp 파일 전송 을 설정하려고 합니다.

Service-Settings-FTP에서 Test 버튼을 누르면 파일 전송됩니다. 암호와 경로가 정확합니다.

프로그래밍 방식으로 파일 보내기 가 작동하지 않습니다 . 실행 중 스크립트로 파일을 보낼 때 SendFTP("File_1.txt", "/ftp_failes"); 터미널이 멈춥니다. File_1.txt 파일은 Files 디렉토리에 있습니다.

질문 . 내 스크립트의 TerminalInfoInteger(TERMINAL_FTP_ENABLED) = 0. 일반적으로 구성되는 위치와 방법을 찾을 수 없습니다. 알려주세요.

그리고 내가 놓친 다른 것을 말해 줄 수 있습니까?
Использование облачных хранилищ для обмена данными между терминалами
Использование облачных хранилищ для обмена данными между терминалами
  • www.mql5.com
Все большее распространение в современном мире получают облачные технологии. Мы можем использовать хранилища разного объема, как платные, так и бесплатные. Можем ли мы их использовать в практическом трейдинге? В этой статье предлагается технология для обмена данными между терминалами, через облачные хранилища. Вы спросите: зачем для этого...
 
User_mt5 :

ftp 파일 전송 을 설정하려고 합니다.

Service-Settings-FTP에서 Test 버튼을 누르면 파일 전송됩니다. 암호와 경로가 정확합니다.

프로그래밍 방식으로 파일 보내기 가 작동하지 않습니다 . 실행 중 스크립트로 파일을 보낼 때 SendFTP("File_1.txt", "/ftp_failes"); 터미널이 멈춥니다. File_1.txt 파일은 Files 디렉토리에 있습니다.

질문 . 내 스크립트의 TerminalInfoInteger(TERMINAL_FTP_ENABLED) = 0. 일반적으로 구성되는 위치와 방법을 찾을 수 없습니다. 알려주세요.

그리고 내가 놓친 다른 것을 말해 줄 수 있습니까?
그 이유는 파일 이름을 러시아 문자로 지정할 수 없기 때문입니다.
질문이 삭제되었습니다.
 

파일에서 한 줄을 읽으려고 합니다.

 #include <Files\FileTxt.mqh>
CFileTxt          m_file_txt;
m_file_handle=m_file_txt. Open (m_file_name, FILE_CSV | FILE_READ | FILE_COMMON | FILE_ANSI , 10 );
m_file_txt.Seek( 0 , SEEK_SET );
string str=m_file_txt.ReadString();

파일의 첫 번째 줄은 다음과 같습니다.

,1,1,1,21,0,일치하지 않는 수, CRLF 무시

str에서는 문자 ","만 얻습니다.

 
FILE_UNICODE

도움이 되었지만 이 경우 한자를 읽습니다.

ANSI가 필요하면 어떻게 합니까? FILE_ANSI 플래그가 설정된 경우 전체 행을 읽을 수 없는 이유는 무엇입니까?

 
가능한가요?
   int cur_bars= Bars ( _Symbol , PERIOD_CURRENT );

로 교체되다:

   int cur_bars= Bars ( _Symbol , _Period );
사유: