이 기사를 사용하여 나만의 프로그램을 만들려고했지만 간단한 목적에 비해 너무 복잡합니다. 여기에서는 간단한 프로그램을 만들려고 했지만 컴파일러에서 오류가 하나만 발견되었습니다: "유형이 없는" 클래스입니다. 그리고 클래스 "유형" 또는 "이름"으로 무엇을 입력해도 변경 사항이 없었습니다.
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 전문가 객체 초기화 | //+------------------------------------------------------------------
//---- 인디케이터의 핸들 int RSI_handle = 0;// 인디케이터 iRSI의 핸들 intADX_handle = 0; // 인디케이터 iADX의 핸들 intForce_handle = 0; // 인디케이터 iForce의 핸들 int AD_handle = 0;// 인디케이터 iAD의 핸들 int Close_handle = 0; intHigh_handle = 0; int Low_handle = 0; int VTick_handle = 0; int VReal_handle = 0; int sig =0;
double MqlParams[]; // 인디케이터 파라미터 저장용 배열
//+------------------------------------------------------------------+ //| 전문가 초기화 함수 RSI| //+------------------------------------------------------------------+
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
먼저 이 글을 작성한 분들께 감사의 말씀을 드립니다. 저는 메타트레이더, MQL5 및 외환 거래가 처음이라 이 글이 정말 유용합니다!
이 EA를 테스트 할 때 롱 포지션을 청산 할 때 두 배의 랏 크기로 매도 신호를 보내는 것을 알았습니다. 왜 내 롱 포지션을 청산 할뿐만 아니라 동일한 신호에 바로 숏 포지션을 입력합니까? 모든 프로그래밍을 이해하기위한 첫 번째 테스트로서 롱만 가고 싶으므로 마감 / 매도 신호에 매도 포지션을 입력하지 않고 롱 포지션 만 열고 닫고 싶습니다.
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
저는 (아직) MQL로 프로그래밍 한 경험이 없지만 다른 언어로 프로그래밍 한 경험은 있습니다. 프로그래밍에서 가장 쉬운 오류 중 하나는 (제 특정 수업은 C ++와 스타일이 매우 유사하고 분명히 MQL 인 Java였습니다) 중괄호를 제대로 닫지 않는 것입니다. 그것은 가장 쉬운 오류 중 하나이며 반대로 찾기 어려운 오류 중 하나이기도합니다.KJG, 롱을 마감하고 바로 숏으로 향하는 것은 아마도이 스타일의 EA가 설계된 것일 것입니다. 나는 그런 유형의 설정을 가진 많은 거래 스타일을 보았고, 분 단위 차트에서 일어날 수있는 것과 같이 변동성이 많고 항상 큰 가격 변동이 발생하는 시장을 위해 설계되었다고 믿습니다.
이 기사를 사용하여 나만의 프로그램을 만들려고했지만 간단한 목적에 비해 너무 복잡합니다. 여기에서는 간단한 프로그램을 만들려고 했지만 컴파일러에서 오류가 하나만 발견되었습니다: "유형이 없는" 클래스입니다. 그리고 클래스 "유형" 또는 "이름"으로 무엇을 입력해도 변경 사항이 없었습니다.
여기 시작입니다. 내가 뭘 잘못하고 있는 걸까요?
//|KaufVerkauf.mq5 |
//|Copyright ....2012 |//|http://www.mql5.com |
//+------------------------------------------------------------------+
#재산 저작권 "저작권 ..... 2012"
#프로퍼티 링크"http://www.mql5.com"
#프로퍼티 버전 "1.00"
//+------------------------------------------------------------------+
//| 포함|
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| 전문가 객체 초기화 |
//+------------------------------------------------------------------
//---- 인디케이터의 핸들
int RSI_handle = 0;// 인디케이터 iRSI의 핸들
intADX_handle = 0; // 인디케이터 iADX의 핸들
intForce_handle = 0; // 인디케이터 iForce의 핸들
int AD_handle = 0;// 인디케이터 iAD의 핸들
int Close_handle = 0;
intHigh_handle = 0;
int Low_handle = 0;
int VTick_handle = 0;
int VReal_handle = 0;
int sig =0;
double MqlParams[]; // 인디케이터 파라미터 저장용 배열
//+------------------------------------------------------------------+
//| 전문가 초기화 함수 RSI|
//+------------------------------------------------------------------+
Class CExpertSignal
{
private:
int OnInit()
//--- 인디케이터 iRSI 생성...........
정말 감사합니다.
테스트를 해보겠습니다:
- 코드를 다운로드하고 MQL5에 복사하고 컴파일했습니다: 오류 없이 성공했습니다.
- 하지만 EA가 실행되지 않고 아래와 같은 오류가 발생합니다:
이 매개 변수에 무엇이 잘못되었는지 도와주세요:
다시 한번 감사드립니다.
먼저 이 글을 작성한 분들께 감사의 말씀을 드립니다.
저는 메타트레이더, MQL5 및 외환 거래가 처음이라 이 글이 정말 유용합니다!
이 EA를 테스트 할 때 롱 포지션을 청산 할 때 두 배의 랏 크기로 매도 신호를 보내는 것을 알았습니다.
왜 내 롱 포지션을 청산 할뿐만 아니라 동일한 신호에 바로 숏 포지션을 입력합니까?
모든 프로그래밍을 이해하기위한 첫 번째 테스트로서 롱만 가고 싶으므로 마감 / 매도 신호에 매도 포지션을 입력하지 않고 롱
포지션 만 열고 닫고 싶습니다.
미리 감사드립니다.
안녕하세요,
MQL5 마법사를 기반으로 작성되고 다음을 통해 포지션이 개설되는 Expert Advisor에서 포지션을 늘리는 (충전) 방법을 알려주십시오.
가상 int LongCondition();
가상 int ShortCondition();
나는 기사의 권장 사항에 따라 로봇을 작성했습니다.
https://www.mql5.com/ko/articles/367 "6 단계로 거래 로봇 만들기"는 잘 작동하지만 포지션 크기에 영향을 미치려고 시도합니다 (증가 또는 감소 여부에 관계없이).
(증가 또는 감소 여부에 관계없이) 조건의 반복 생성을 통해 (증가 또는 감소 여부에 관계없이) 예를 들어
LongCondition();
는 아무 결과도 가져오지 않으며 이미 열려 있는 포지션은 변경되지 않으며 닫기 조건을 실행하거나 sl , tp를 트리거해야만 삭제할 수 있습니다.
MQL5 마법사가 마음에 들었습니다. 다중 지표 전문가 조언자를 쉽고 빠르게 "빌드"하고, sl 추적 모듈을 변경하고, 자금 관리 모듈을 변경할 수 있습니다.
그러나 하나의 지표에 의해 조건이 형성되면 최소 포지션을 열고 다른 지표에 의해 추세가 확인되면 포지션을 증가 (채우는) 전문가 조언자를 작성하려고 시도했습니다.
위에서 설명한 문제를 발견했습니다. 이미 열린 포지션은 다시 열라는 신호가 LongCondition ()을 통해 발행 될 때 변경되지 않습니다;
감사합니다.
MT5 전략 테스터에서 이 예제를 실행하고 자산을 펙스로 선택하면 오류가 발생합니다. Vale5, 유전 알고리즘, d1, ohlc 1분, 최대 잔고, 오류가 발생합니다!
외환 쌍에서 실행하면 동일한 최적화가 완료되는 것 같습니다 (로컬 에이전트에서는 너무 오래 걸리기 때문에 예상하지 못했습니다).
테스터의 일기에 표시되는 오류(이 경우 Vale5)는 OnInit과 관련이 있습니다. 같은 문제를 발견한 사람이 있나요? 그렇다면 해결책 및/또는 결론에 도달하셨나요?
도움을 주시면 감사하겠습니다!
MT5 전략 테스터에서 이 예제를 실행하고 자산을 펙스로 선택하면 오류가 발생합니다. Vale5, 유전 알고리즘, d1, ohlc 1분, 최대 잔고, 오류가 발생합니다!
외환 쌍에서 실행하면 동일한 최적화가 완료되는 것 같습니다 (로컬 에이전트에서는 너무 오래 걸리기 때문에 예상하지 못했습니다).
테스터의 일기에 표시되는 오류(이 경우 Vale5)는 OnInit과 관련이 있습니다. 같은 문제를 발견한 사람이 있나요? 그렇다면 해결책 및/또는 결론에 도달하셨나요?
도움을 주시면 감사하겠습니다!
안녕하세요, 오류 로그나 스크린샷과 같은 추가 정보를 제공해 주시면 문제를 더 잘 분석할 수 있도록 도와드리겠습니다.
위에 제공하신 것과 같은 간단한 설명으로는 문제를 파악하는 데 큰 도움이 되지 않습니다.
감사합니다,
말라카른
저는 (아직) MQL로 프로그래밍 한 경험이 없지만 다른 언어로 프로그래밍 한 경험은 있습니다. 프로그래밍에서 가장 쉬운 오류 중 하나는 (제 특정 수업은 C ++와 스타일이 매우 유사하고 분명히 MQL 인 Java였습니다) 중괄호를 제대로 닫지 않는 것입니다. 그것은 가장 쉬운 오류 중 하나이며 반대로 찾기 어려운 오류 중 하나이기도합니다.KJG, 롱을 마감하고 바로 숏으로 향하는 것은 아마도이 스타일의 EA가 설계된 것일 것입니다. 나는 그런 유형의 설정을 가진 많은 거래 스타일을 보았고, 분 단위 차트에서 일어날 수있는 것과 같이 변동성이 많고 항상 큰 가격 변동이 발생하는 시장을 위해 설계되었다고 믿습니다.
좋은 글입니다. 이 글과 다른 많은 글도 꼭 활용하겠습니다.
안녕하세요,
로봇을 테스트하려고 할 때 다음과 같은 오류가 발생했습니다.
2017.07.04 18:20:27.404 OnInit 실패로 인해 테스터가 중지되었습니다.
제가 뭔가 잘못하고 있나요 아니면 로봇에서 설정해야 할 것이 있나요?
Cheers
Carlos F.
다양한 구성 단계가 잘 설명되어 있습니다. 특히 로봇을 개발해 본 적이 없는 분들에게도 명확하고 유용한 작업입니다. 감사합니다.