기고글 토론 "MQL5 소개: 간단한 전문가 자문 및 사용자 지정 지표 작성 방법" - 페이지 4

 

이 ExpertAdvisor는 적어도 저에게는 MT5 빌드 712에서 작동하지 않습니다.

"인디케이터 버퍼를 복사할 수 없습니다"라는 오류 메시지가 표시됩니다.

또한 인디케이터가 경고 없이 컴파일되지 않습니다,

53번째 줄에" 유형 변환으로 인한데이터 손실 가능성 ",

54줄의 "초기화되지 않은 변수 'day_n'에서 사용 가능"

62 줄의 "초기화되지 않은 변수 'h_day'에서 사용 가능"

63 줄의 "초기화되지 않은 변수 'l_day'에서 사용 가능"


이 문제를 수정해 주실 수 있나요?

그렇지 않으면 MT5가 아닌 다른 소프트웨어에 대한 배경 지식이 있는 저희에게는 좋은 예입니다.

 
5개의 매도 스탑과 5개의 매수 스탑 대기 주문을 설정하고 그 사이에 10핍의 간격을 두고 싶습니다. 어떻게 해야 하나요?
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

이것은 초보자와 mql4에서 온 사람들을위한 훌륭한 기사이며, 좋은 거래 전략의 예입니다.

코드에 몇 가지 사소한 결함이 있지만 (오류 검사가 항상 구현되지는 않음) 작성자가 권장하는대로 단위로 사용하면 EA가 매우 잘 작동합니다. 인디케이터를 컴파일할 때 표시되는 경고는 경고일 뿐이며 인디케이터와 EA 사용을 방해하지 않습니다.

감사합니다.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Chart Constants / Chart Timeframes
  • www.mql5.com
Standard Constants, Enumerations and Structures / Chart Constants / Chart Timeframes - Documentation on MQL5
 

MQL5를 사람들에게 설명하는 것은 쉬운 일이 아닙니다. (초심자가 이해할 수 있는 기회가 없었던 것처럼!) 프로그래밍 책과 마찬가지로 90%의 사람들이 어떻게 시작해야 할지 모릅니다. 예를 들어 C 프로그래밍에 대해 이 책을 펼치면 첫 번째 '쉬운 예제'는 작은 글꼴로 쓰여진 한 페이지에 걸쳐 길게 나와 있습니다. 저는 평생 누구에게나 프로그래밍을 가르칠 수 있는 좋은 프로그래밍 책을 단 한 권만 읽었습니다. 그 이유는 아마도 훌륭한 프로그래머가 저술했지만 불행히도 매우 나쁜 교사가 저술했기 때문입니다. 프로그래밍은 정말 쉬울 수 있으며 지금보다 시간이 조금 더 있으면 MQL4 프로그래밍 언어에 대한 간단한 튜토리얼을 만들어 여러분에게 증명할 것입니다. 모든 사람 - 심지어 완전 초보자도 마찬가지입니다. 가장 큰 실수는 사람들에게 언어에 대한 세부 사항을 가르치는 것입니다. 대부분의 작업은 ctrl + C와 ctrl + v를 사용하고 명령에 Google을 사용하고 가장 중요한 것은 모든 것을 매우 간단하게 유지해야합니다. 저는 10 개 이상의 프로그래밍 언어를 알고 있으며 (7 살 때부터 프로그래밍을했습니다) 11KB (!!!)의이 "쉬운 예제"가 설명되는 방식에 여전히 겁이납니다. 이 예제에서 MQL5를 배운 실제 프로그래밍 초보자가 있는지 알고 싶습니다. 나는 그것을 의심하고 만약 있다면 당신은이 사람들을 한 손으로 셀 수 있습니다.

Fast Dive into MQL5
  • 2012.08.02
  • MetaQuotes Software Corp.
  • www.mql5.com
You have decided to study MQL5 trading strategies' programming language, but you know nothing about it? We have tried to examine MQL5 and MetaTrader 5 terminal from the newcomers' point of view and have written this short introductory article. In this article, you can find a brief idea of the possibilities of the language, as well as some tips on working with MetaEditor 5 and the terminal.
 
angreeee:

MQL5를 사람들에게 설명하는 것은 쉬운 일이 아닙니다. (초심자가 이해할 수 있는 기회가 없었던 것처럼!) 프로그래밍 책과 마찬가지로 90%의 사람들이 어떻게 시작해야 할지 모릅니다. 예를 들어 C 프로그래밍에 대해 이 책을 펼치면 첫 번째 '쉬운 예제'는 작은 글꼴로 쓰여진 한 페이지에 걸쳐 길게 나와 있습니다. 저는 평생 누구에게나 프로그래밍을 가르칠 수 있는 좋은 프로그래밍 책을 단 한 권만 읽었습니다. 그 이유는 아마도 훌륭한 프로그래머가 저술했지만 불행히도 매우 나쁜 교사가 저술했기 때문입니다. 프로그래밍은 정말 쉬울 수 있으며 지금보다 시간이 조금 더 있으면 MQL4 프로그래밍 언어에 대한 간단한 튜토리얼을 만들어 여러분에게 증명할 것입니다. 모든 사람 - 심지어 완전 초보자도 마찬가지입니다. 가장 큰 실수는 사람들에게 언어에 대한 세부 사항을 가르치는 것입니다. 대부분의 작업은 ctrl + C와 ctrl + v를 사용하고 명령에 Google을 사용하고 가장 중요한 것은 모든 것을 매우 간단하게 유지해야합니다. 저는 10 개 이상의 프로그래밍 언어를 알고 있으며 (7 살 때부터 프로그래밍을했습니다) 11KB (!!!)의이 "쉬운 예제"가 설명되는 방식에 여전히 겁이납니다. 이 예제에서 MQL5를 배운 실제 프로그래밍 초보자가 있는지 알고 싶습니다. 나는 그것을 의심하고 만약 있다면 당신은이 사람들을 한 손으로 셀 수 있습니다.

프로그래머가 일반적으로 좋은 교사가 아니라는 것은 맞습니다.

그러나 10 개 이상의 언어를 실험 해본 프로그래머에게 mql5가 배우기가 너무 어렵다고 말한 것에 동의하지 않습니다.

 
실제로 이것은 저와 같은 mql5 프로그래밍 초보자에게 훌륭한 기사입니다. angevoyageur는 그것에 대해 올바르게 말합니다.
 

실제로 제가 기억하는 한, 값이 변경되지 않은 레벨이 SYMBOL_TRADE_STOPS_LEVEL 매개 변수에 지정된 것보다 현재 가격에 가까운 경우에도 다른 레벨은 변경하지 않고 포지션의 레벨 중 하나(SL 또는 TP)를 변경할 수 있습니다. 프로그램을 만들 때 새 포지션 파라미터(레벨)가 포지션 데이터의 정확성 확인 요건을 충족하지 않는 방식으로 포지션 파라미터(레벨)를 변경하는 것은 문서화되지 않은 상황이며 향후 다른 결과를 얻을 수 있으므로 권장하지 않습니다.

 
전문가 어드바이저를 복사하여 붙여넣고 전략 테스터로 테스트하려고 합니다. 그러나 거래가 이루어지지 않습니다. MQL5와 프로그래밍이 처음이라서 어리석은 실수를 한 것일 수도 있습니다. 오류 없이 컴파일되었습니다. 전략이 정말 마음에 듭니다! 누구든지 전략 테스터에서 실행되지 않는 이유를 알고 있습니까?
 

안녕하세요, 여러분!

다음과 같은 경우에만 모든 것이 정상적으로 작동합니다.

request.type_filling = 주문_채우기_IOC;

request.type_time = ORDER_TIME_DAY;

https://www.mql5.com/ru/forum/1156/page9#comment_2359257 와 비슷한 상황

내 브로커 FxPro의 특이한 점인가요?

Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих"
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих"
  • www.mql5.com
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих". - Страница 9 - Категория: статьи и техническая библиотека по автоматическому трейдингу
 

mql5 프로그래밍을 처음 접했습니다.


이 예제를 통해 배우려고했지만 지표 빌드 끝 부분의 루프에서 약간 길을 잃었습니다. DAY_N 변수에 정확히 어디에 값을 할당했나요?


루프가 day_n<day_t를 확인하기 때문입니다. 프로그램이 day_n 값을 어떻게 알 수 있을까요?


for(i=prev_calculated;i<rates_total;i++)
     {
      day_t=time[i]/PeriodSeconds(ATRtimeframe);
      if(day_n<day_t)
        {
         day_n=day_t;
         h_day=high[i];
         l_day=low[i];
        }
        else
        {
         if(high[i]>h_day) h_day=high[i];
         if(low[i]<l_day) l_day=low[i];
        }
      bu[i]=l_day+atr[1];
      bd[i]=h_day-atr[1];
     }


그리고 어떻게 계산할까요? rate_total = 10이고 아직 계산된 막대가 없다고 가정해 봅시다. 따라서 prev_calculated = 0


day_t=time[0] (오늘! 거꾸로 계산되므로)/PeriodSeconds... 1970년부터 카운트를 시작하므로 10일 전부터 카운트를 시작한다고 가정해 보겠습니다. 따라서 10이 나와야 하겠죠?

따라서 day_t=10입니다. 이제 dayt > dayn인지 확인합니다. dayn은 모르지만 dayt=10은 알고 있습니다. 값이 없으므로 dayn이 0이라고 가정하겠습니다.

그러면 dayn도 10이 됩니다. 알겠습니다.

루프의 두 번째 롤입니다. prev_calculated + 1= 1.

DayT=time[1] (어제)/기간... 10일 전부터 계산을 시작하지만 지금은 어제까지만 계산합니다. 9라는 값이 나와야 하죠?

하지만 이제 dayN < dayT는 거짓입니다. 그런 다음 else 표현식을 수행하기 시작합니다. 알았어요. 이해했어요.


그러면 모든 bu[] 및 bd[]를 계산합니다. 알겠습니다. prev < total rate가 거짓이면 루프가 종료됩니다.

하지만 새로운 막대가 도착하고 다시 참이되면 다시 0에서 시작하나요? 아니면 10에서 시작하여 다른 부분으로 바로 이동합니까?


고마워!!!!