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

 
Valeriy Yastremskiy :

Artem Trishkin은 링크(어퍼샌드)이기 때문에 어디에나 설 수 있기 때문에 저에게 같은 질문에 대답했습니다. 실험의 순수성을 위해 공백 없이 시도해야 합니다.

고마워, 발레리! 비슷한 문제가 발생하면 이 점을 확실히 염두에 두겠습니다.

메리 크리스마스!

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

 

모든 성공적인 거래와 좋은 분위기!

MQL5 프로그래밍 언어를 계속 공부하고 있습니다. 이전에 게시된 코드를 약간 수정했는데 다음과 같습니다.

 input string Symbol_Main= "EURUSD" ;           //Валютная пара, на которую ставим советник
input ENUM_TIMEFRAMES Time_Frame= PERIOD_H1 ; //Таймфрейм, на который ставим советник

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

아마도 누군가가 그것을 필요로 할 것입니다.

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

 

좋은 하루와 좋은 분위기 모두!

약간의 자유 시간이 있었고 독학을 계속하기로 결정했습니다. 그런데 갑자기 문제가 생겼습니다. 이전에 Trailing_Stop_(v.2).mq5 Expert Advisor에서 거래 서버에 다음 요청을 보냈습니다.

   /*  Создадим запрос на сервер и получим ответ с результатом */
   MqlTradeRequest request= { 0 };
   MqlTradeResult result= { 0 };

코드를 컴파일하는 데 문제가 없었습니다. 이제 컴파일러에서 다음 오류가 발생합니다.

0을 열거형 ' ENUM_TRADE_REQUEST_ACTIONS ' Trailing_Stop_(v.2).mq5 411 30으로 변환할 수 없습니다.

중괄호로 요청한 후 0을 제거하면

   /*  Создадим запрос на сервер и получим ответ с результатом */
   MqlTradeRequest request= {};
   MqlTradeResult result= { 0 };

그러면 컴파일러에서 오류가 발생하지 않습니다. 무엇을 연결할 수 있는지 이해하도록 도와주세요.

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

 
MrBrooklin :

좋은 하루와 좋은 분위기 모두!

약간의 자유 시간이 있었고 독학을 계속하기로 결정했습니다. 그런데 갑자기 문제가 생겼습니다. 이전에 Expert Advisor Trailing_Stop_(v.2).mq5에서 그는 거래 서버에 다음 요청을 했습니다.

코드를 컴파일하는 데 문제가 없었습니다. 이제 컴파일러에서 다음 오류가 발생합니다.

0을 열거형 ' ENUM_TRADE_REQUEST_ACTIONS ' Trailing_Stop_(v.2).mq5 411 30으로 변환할 수 없습니다.

중괄호로 요청한 후 0을 제거하면

그러면 컴파일러에서 오류가 발생하지 않습니다. 무엇을 연결할 수 있는지 이해하도록 도와주세요.

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

예, 이제 영점 조정을 위해 영점을 쓰지 마십시오.

ENUM_TRADE_REQUEST_ACTIONS , 값 "0"이 누락된 열거형

cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS'


다음과 같이 정확할 것입니다.

 MqlTradeRequest request={};

 
Vladimir Karputov :

예, 이제 영점 조정을 위해 영점을 쓰지 마십시오.

블라디미르 감사합니다!

살고 배우십시오! MQL5 Reference 의 개발자들만이 모든 곳에서 이것을 수정할 수 있다면 좋을 것입니다!

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

 

모두 안녕하십니까!

계속해서 MQL5 프로그래밍 언어를 독학하고 있습니다. ZigZag 표시기에서 신호를 받는 함수를 작성하기로 했습니다. 나는 그것을 철저히 연구하기 시작했고 즉시 질문이 생겼습니다. 표시기의 입력 매개변수는 다음과 같습니다.

 input int Depth      = 12 ;   // Depth
input int Deviation  = 5 ;   // Deviation
input int Backstep   = 3 ;   // Backstep

저는 영어에 약해서 구글 번역기를 사용해야 합니다. 가장 순수한 형태로 번역을 제공하는 것:

 Depth - глубина
 Deviation - отклонение
 Backstep - шаг назад

질문:

  1. 깊이라면 무엇의 깊이?
  2. 편차라면 무엇으로부터, 어떤 매개변수 또는 값으로부터의 편차입니까?
  3. 한 발 물러서면 왜 한 발 물러나겠습니까? 그는 앞으로 나아가고 있지 않습니까?

친애하는 전문가, 이해를 도와주세요!

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

 
MrBrooklin :

모두 안녕하십니까!

계속해서 MQL5 프로그래밍 언어를 독학하고 있습니다. ZigZag 표시기에서 신호를 받는 함수를 작성하기로 했습니다. 나는 그것을 철저히 연구하기 시작했고 즉시 질문이 생겼습니다. 표시기의 입력 매개변수는 다음과 같습니다.

저는 영어에 약해서 구글 번역기를 사용해야 합니다. 가장 순수한 형태로 번역을 제공하는 것:

질문:

  1. 깊이라면 무엇의 깊이인가?
  2. 편차라면 무엇으로부터, 어떤 매개변수 또는 값으로부터의 편차입니까?
  3. 한 발 물러서면 왜 한 발 물러나겠습니까? 그는 앞으로 나아가고 있지 않습니까?

친애하는 전문가, 이해를 도와주세요!

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

초등 - 도움을 구하십시오, "그가 앞으로 나아가고 있지 않습니까?" - 여기 전체 이야기가 뒤로 가고 있습니다 !!! :-)

https://www.mql5.com/ru/code/7796


깊이는 이전 것보다 편차 핍에 의해 더 적은(더) 두 번째 최대(최소)가 없는 막대의 최소 수입니다. 즉, 지그재그는 항상 발산할 수 있지만 편차보다 수렴(또는 완전히 이동할 수 있음) 지그재그는 깊이 막대 뒤에만 가능합니다. 백스텝은 고점(저점) 사이의 최소 막대 수입니다.


검색 창에 입력하십시오. 예를 들어 지그재그 매개변수, https://www.mql5.com/en/search#!keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0% B0 %D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&페이지=2</b > </p>

PS 기본템...

ZigZag
ZigZag
  • www.mql5.com
ZigZag отслеживает и соединяет между собой крайние точки графика отстоящие друг от друга не менее чем на заданный процент по шкале цены.
 
Roman Shiredchenko :

초등 - 도움을 구하십시오, "그가 앞으로 나아가고 있지 않습니까?" - 여기 전체 이야기가 뒤로 가고 있습니다 !!! :-)

https://www.mql5.com/ru/code/7796


깊이는 이전 것보다 편차 핍에 의해 더 적은(더) 두 번째 최대(최소)가 없는 막대의 최소 수입니다. 즉, 지그재그는 항상 발산할 수 있지만 편차보다 수렴(또는 완전히 이동할 수 있음) 지그재그는 깊이 막대 뒤에만 가능합니다. 백스텝은 고점(저점) 사이의 최소 막대 수입니다.


검색 창에 입력: 예를 들어 지그재그 매개변수, https://www.mql5.com/en/search#!keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0% B0 %D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&페이지=2</b > </p>

PS 기본템...

고마워, 로만! 가장 간결하면서도 이해하기 쉬운 설명을 하셨습니다.

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

 
MrBrooklin :

고마워, 로만! 가장 간결하면서도 이해하기 쉬운 설명을 하셨습니다.

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

ATP, 그들이 그것을 확인했다, 나는 친절하고 비밀리에 농담을하지 않습니다! 거기에 미소로!
 

모두 좋은 하루!

한 고문을 테스트할 때 문제가 발생했습니다. 다음과 같은 EA 초기화 기능 코드가 있습니다.

 //+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- достаточно ли количество баров для работы
   if ( Bars ( _Symbol , _Period )< 60 ) // общее количество баров на графике меньше 60?
     {
       Alert ( "На графике меньше 60 баров, советник не будет работать!!" );
       return (- 1 );
     }
//--- получить хэндл индикатора Bollinger Bands и DEMA
   BolBandsHandle= iBands ( NULL , PERIOD_M30 ,bands_period,bands_shift,deviation, PRICE_CLOSE );
   demaHandle= iDEMA ( NULL , PERIOD_D1 ,dema_period, 0 , PRICE_CLOSE );
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if ((BolBandsHandle< 0 ) || (demaHandle< 0 ))
     {
       Alert ( "Ошибка при создании индикаторов - номер ошибки: " , GetLastError (), "!!" );
       return (- 1 );
     }

   return ( 0 );
  }

Expert Advisor를 테스트 하는 동안 로그에 다음 메시지가 나타납니다.

 2021.10 . 31 13 : 19 : 25.752 Core 2   genetic pass ( 0 , 288 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 26.835 Core 2   genetic pass ( 0 , 298 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 26.921 Core 1   genetic pass ( 0 , 42 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 27.847 Core 2   genetic pass ( 0 , 318 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 27.848 Core 2   genetic pass ( 0 , 326 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 29.907 Core 2   genetic pass ( 0 , 359 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 29.907 Core 2   genetic pass ( 0 , 371 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 30.009 Core 1   genetic pass ( 0 , 102 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 30.009 Core 1   genetic pass ( 0 , 105 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 31.044 Core 1   genetic pass ( 0 , 122 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000

и т.д.

Bollinger BandsDEMA 표시기의 핸들을 확인하는 데 문제가 있다는 것을 알았습니다. 이와 관련하여 문제가 발생했습니다. 이러한 오류는 무엇에 영향을 미칠 수 있으며 오류를 제거하기 위해 코드에서 변경해야 하는 것은 무엇입니까?

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

사유: