기고글 토론 "초보자를 위한 MQL5 Expert Advisor 코드 작성 가이드" - 페이지 7

 
Renat:

초기화되지 않은 (또는 불완전한) 변수(특히 구조체)를 사용하는 것은 프로그래밍에서 매우 흔한 실수입니다.

이런, 이것은 (1) 세뇌당하고 (2) 감사함을 느끼는 유일한 러시아어 자료입니다 :))

1.5 년 동안 변수를 초기화해야한다는 것을 알고 1.5 년 동안 의도적으로 "구조 유형 변수"라는 문구를 사용했지만 참조 매뉴얼에 " 각 거래 작업에 대해 필수 필드를 지정해야한다 "고 명시되어 있기 때문에 Mqltraderequest 유형 변수의 별도 (필수) 필드에만 값을 할당 해 왔습니다 .....

 
papaklass:
Renat 님, "메모리와 변수로 작업하기"에 대한 기사 또는 일련의 기사를 게시해 주시면 좋을 것 같습니다. 일반적으로 메모리와 변수로 작업하는 올바른 방법은 무엇인가요? 메모리 사용량이 많다는 이유로 챔피언십에서 여러 EA가 실격 처리된 후 이러한 기사가 적절할 것입니다. Rosh가 어떤 스레드에서 사용자가 관심있는 기사를 주문해야한다고 썼지만이 스레드를 찾지 못해서 여기에 글을 쓰고 있습니다.
예,이 주제에 대한 기사를 읽는 것은 흥미로울 것입니다. 챔피언십에서 일부 참가자가 왜 그렇게 많은 메모리를 사용하는 전문가가 있었고 그러한 상황을 피할 수있는 방법은 매우 흥미 롭습니다. 나는 그런 문제가 없었지만 모두 무작위입니다. 왜 나에게 이런 일이 일어나지 않는지 모르겠지만 만약 그런 일이 발생하면 어떻게해야하는지 알고 싶습니다.
 
우선 메모리 소비는 인디케이터 호출과 관련이 있습니다. 서로 다른 심볼/타이밍 프레임에 수십 개의 인디케이터 핸들을 만들기 전에 어떤 비용을 지불할지 생각해 보세요. 보조 인디케이터의 메모리 소모량 줄이기 문서를 추천하고 실격 참가자 중 한 명인 야마나카 아츠시(alohafx) 의 인터뷰를 읽어볼 수 있습니다.
Интервью с Ацуси Яманака (alohafx) - Automated Trading Championship 2011
  • championship.mql5.com
Что общего между трейдингом, скайдайвингом, фьючерсами, Гавайями, переводами и шпионами? Мы тоже не знали, пока не пообщались с дисквалифицированным участником Ацуси Яманака (alohafx). Его кредо - ''Life is Good! - Жизнь прекрасна!'', и с этим трудно не согласиться. Было интересно узнать, что расстояние между разными континентами - не помеха в общении участников нашего Чемпионата.
 

S/L을 5로 조이는 이유(5핍이어야 함)

다음과 같은 문제가 있습니다.

파일:
Capture.PNG  8 kb
 
statarb:

S/L을 5로 조이는 이유(5핍이어야 함)

다음과 같은 문제가 있습니다.

거래 요청을 보내기 전에 기호에 대한 스톱 레벨(SYMBOL_TRADE_STOPS_LEVEL)을 확인해야 합니다. SL/TP가 현재 가격에서 이 거리보다 가까워야 청산할 수 있습니다. 이 속성을 얻기 위한 샘플입니다:

int StopLevel_Distance=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
double SL=... // 계산을 통해 새 SL 가져오기
//--- 현재 계산된 손절매 수준 확인
if(SL>SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point) 
   SL=SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point;
//... 위치에 대한 SL 수정
 

고맙지만 내 SL이나 TP가 수행되지 않습니다. 컴파일러 "터미널"에서 "0.00"또는 "0.0"으로 나열됩니다. 어쨌든 모든 주문에 대해 일반적인 손절매를 제공하는 것은 불가능합니다. 그리고 저는 아직 "외부"에서, 즉 편집기에서 코드를 변경하지 않고 매개 변수 값을 변경하는 데 성공하지 못했습니다.

그 외에는 잘 작동하고 있습니다! 그리고 댓글은 큰 도움이 됩니다!

다시 한번 감사드립니다,

로칸 BBS

.locan.BBS:

 

안녕하세요 Olowsam입니다,

이 단계별 가이드에 감사드립니다. 몇 가지 질문이 있는데 도와주셨으면 좋겠습니다.

귀하의 지침을 문자까지 따랐지만 원하는 결과를 얻지 못했습니다. 우선, 저는 최신 버전의 메타 트레이더 5.00, 빌드 6.55(2012년 6월 6일)로 작업하고 있습니다. 몇 가지 차이점을 발견했는데, 첫 번째는 MQL5 마법사 템플릿에 추가 옵션이 있고, 메모에 표시된 내용입니다. 어쨌든 프로그램이 설명하신 것과 정확히 일치하는지 확인했습니다. 컴파일했습니다. 문제 없습니다. 오류도 없습니다. OnTick 서브루틴의 메모에서 제안한 대로 5개의 디버그 중단점을 모두 삽입했습니다. 녹색 실행 버튼을 클릭해도 아무 일도 일어나지 않습니다. 프로그램 실행이 이 지점에 도달하지 않습니다. 왜 그럴까요? 무슨 일인가요? OnInit 서브의 시작 부분에 디버그 중단점(예: adzHandle=iADX9Null,0,ADX_Period) 줄을 삽입하면 정상입니다. 디버그 STEP 탭에 불이 켜지고 이 컨트롤을 OnInit 하위의 끝까지 한 단계씩 밟을 수 있습니다. 그러나 그 이후에는 다시 아무것도 없습니다. 요컨대, OnTick 하위에 도달할 수 없습니다. 무슨 일이 일어나고 있으며 그 이유는 무엇인가요? 메타 트레이더 시스템 작동에 알려진 버그인가요? 이 문제를 해결하고 계속 진행하려면 어떻게 해야 하나요?

위의 내용이 제가 겪은 문제를 설명해 주셨기를 바라며, 무슨 일이 일어나고 있는지 확인하고 도움을 드릴 수 있기를 바랍니다.

감사합니다.

안부 인사

Kishor

 

안녕하세요 좋은 기사입니다,

내가 진행하면서 모든 코드를 입력했고 마지막에 컴파일 오류가 발생하지 않았으므로 잘 설명되어야합니다. 메타트레이더5/mql5 시스템을 처음 사용하는 분들을 위한 좋은 설명입니다.

그래프가 위쪽 방향으로 이동하도록 약간의 최적화가 필요할 수 있습니다.

감사합니다!!!

Mike

 

안녕하세요,

이 글의 코딩 스타일이 정말 마음에 들었고, 읽고 따라하기 매우 쉬웠습니다. 괜찮다면 이 샘플로 후행 중지를 구현하는 방법에 대한 예제도 제공해 주시겠습니까?

정말 감사합니다!

 
훌륭한 가이드를 제공해 주셔서 대단히 감사합니다!