MQL5 언어를 처음부터 자가 학습 - 페이지 76

 
브루클린 씨 : .
 if (Symbol_Main== _Symbol )
현재 차트 의 심볼 에 대한 직접적인 요청 이 있으면 왜 춤 을 춰야 합니까 .
 
Konstantin Nikitin :
브루클린 씨 : . 현재 차트 의 심볼 에 대한 직접적인 요청 이 있으면 왜 춤 을 춰야 합니까 .

안녕하세요 콘스탄틴입니다! 입력 매개변수에 지정된 기호와 어드바이저를 설치하려는 기호를 비교해야 했습니다.

제안한 코드도 작동하지 않습니다.

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin :

안녕하세요 콘스탄틴입니다! 입력 매개변수에 지정된 기호와 어드바이저를 설치하려는 기호를 비교해야 했습니다.

제안한 코드도 작동하지 않습니다.

안부 인사를 전합니다. 블라디미르.

귀하의 설정에서

 input string Symbol_Main= "GBPUSDrfd" ;   //Валютная пара, на которую ставим советник

_상징

_Symbol 변수에는 현재 차트의 기호 이름이 포함됩니다.

따라서 현재 차트에 따른 기호 검사를 통과해야 합니다.

 if (Symbol_Main== _Symbol )
 
Konstantin Nikitin :

귀하의 설정에서

_상징

_Symbol 변수에는 현재 차트의 기호 이름이 포함됩니다.

따라서 현재 차트에 따른 기호 검사를 통과해야 합니다.

콘스탄틴 감사합니다! 모든 것이 작동했습니다! 코드를 편집하는 동안 실수를 했습니다. 이제 모든 것이 수정되고 획득됩니다. 하나님께서 당신에게 건강과 번영을 주시기를 빕니다!

모두 새해 복 많이 받으세요!

안부 인사를 전합니다. 블라디미르.

 

코드는 다음과 같아야 합니다.

 input string Symbol_Main= "GBPUSDrfd" ;   //Валютная пара, на которую ставим советник

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   /* Определим график валютной пары, на который будем устанавливать советник*/
   if (Symbol_Main== _Symbol ) //если график валютной пары совпадает со входным параметром
     {
       /* выводим окно сообщений на торговом терминале и продолжаем работу советника */
       MessageBox ( "Работа советника на данной валютной паре разрешена!" );
       return ( INIT_SUCCEEDED ); //возвращаем для функции OnInit значение означающее "удачная инициализация"
     }
   else //в противном случае, если график валютной пары не совпадает со входным параметром
     {
       /* выводим окно сообщений на торговом терминале и закрываем советник */
       MessageBox ( "Работа советника на данной валютной паре запрещена! Выходим!" );
       return ( INIT_FAILED ); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
     }
  }

참고: Symbol_Main 입력 매개변수에서 외환 딜러에 등록된 통화 쌍의 이름을 지정해야 합니다. 제 경우에는 GBPUSD 기호의 끝이 rfd 입니다.

조심하세요!

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin :

코드는 다음과 같아야 합니다.

참고: 입력 매개변수 Symbol_Main 에서 외환 딜러에 등록된 통화 쌍의 이름을 지정해야 합니다. 제 경우에는 GBPUSD 기호의 끝이 rfd 입니다.

조심하세요!

안부 인사를 전합니다. 블라디미르.

 void OnStart ()
  {
     Print (CheckSymbol( "eurus" ));
  }
//+------------------------------------------------------------------+
string CheckSymbol( const string _symboll)
  {
   string symbol = _symboll;
   if (! StringToUpper (symbol))
       return NULL ;
//---
   for ( int i= 0 ; i< SymbolsTotal ( false ); i++)
     {
       string s = SymbolName (i, false );
       if (! StringToUpper (s))
         continue ;
       if (s == symbol || StringFind (symbol, s, 0 ) >= 0 || StringFind (s, symbol, 0 ) >= 0 )
         if ( SymbolSelect (symbol, true ))
             return SymbolName (i, false );
     }
//---
   return NULL ;
  }

그리고 인생을 즐기십시오))) 나는 완전히 작성된 문자와 대소문자도 중요하지 않음을 요청합니다.

 
Konstantin Nikitin :

그리고 인생을 즐기십시오))) 나는 완전히 작성된 문자와 대소문자도 중요하지 않음을 요청합니다.

훌륭한 팁을 주신 Konstantin님, 정말 감사합니다! 내 Expert Advisor에서 확실히 사용할 것입니다. MQL5 프로그래밍 언어 를 배우는 다른 초보자들도 이 기능이 유용할 것이라고 생각합니다.

나는 베이징으로 기어가는 것처럼 당분간 당신의 지식 수준에 달려 있습니다!

안부 인사를 전합니다. 블라디미르.

 
Konstantin Nikitin :

그리고 인생을 즐기십시오))) 나는 완전히 작성된 문자와 대소문자도 중요하지 않음을 요청합니다.

그러면 연약한 마음을 비웃는 이유는 무엇입니까? 귀하의 코드는 절대적으로 요구 사항에 맞지 않습니다. 입력 매개변수에 "eu" 또는 "eur"만 입력하면 조건의 이 부분이

|| StringFind (s, symbol, 0 ) >= 0 )

이름에 "EU"가 포함된 쌍에 관계없이 실행되며 EUR이 기본 통화 인지 인용된 통화인지는 중요하지 않습니다. 원하는 기호를 찾기 위해 SymbolName MarketWatch를 검색하는 이유는 무엇입니까?¿?

 
Alexey Viktorov :

그러면 연약한 마음을 비웃는 이유는 무엇입니까? 귀하의 코드는 절대적으로 요구 사항에 맞지 않습니다. 입력 매개변수에 "eu" 또는 "eur"만 입력하면 조건의 이 부분이

이름에 "EU"가 포함된 쌍에 관계없이 실행되며 EUR이 기본 통화 인지 인용된 통화인지는 중요하지 않습니다. 원하는 기호를 찾기 위해 SymbolName MarketWatch를 검색하는 이유는 무엇입니까?¿?

안녕하세요 알렉세이입니다! 저는 솔직히 프로그래밍을 잘 못해서 믿음이 많이 갑니다. Konstantin에서 제공한 코드를 마무리해야 한다는 것이 밝혀졌습니다.

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin :

코드는 다음과 같아야 합니다.

참고: 입력 매개변수 Symbol_Main 에서 외환 딜러에 등록된 통화 쌍의 이름을 지정해야 합니다. 제 경우에는 GBPUSD 기호의 끝이 rfd 입니다.

조심하세요!

안부 인사를 전합니다. 블라디미르.

나는 그렇게 할 것이다

 input string Symbol_Main= "GBPUSD" ;   //Валютная пара, на которую ставим советник

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   /* Определим график валютной пары, на который будем устанавливать советник*/
   if ( StringFind ( _Symbol , Symbol_Main, 0 ) == 0 ) //если график валютной пары содержит входной параметр
     {
       /* выводим окно сообщений на торговом терминале и продолжаем работу советника */
       MessageBox ( "Работа советника на данной валютной паре разрешена!" );
       return ( INIT_SUCCEEDED ); //возвращаем для функции OnInit значение означающее "удачная инициализация"
     }
   else //в противном случае, если график валютной пары не совпадает со входным параметром
     {
       /* выводим окно сообщений на торговом терминале и закрываем советник */
       MessageBox ( "Работа советника на данной валютной паре запрещена! Выходим!" );
       return ( INIT_FAILED ); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
     }
  }