Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
//+------------------------------------------------------------------+//| Long position open or limit/stop order set |//+------------------------------------------------------------------+bool CExpert::OpenLong( double price, double sl, double tp)
{
if (price== EMPTY_VALUE ) return ( false );
//--- get lot for opendouble lot=LotOpenLong(price,sl);
//--- check lot for openif (lot== 0.0 ) return ( false );
//---return (m_trade.Buy(lot,price,sl,tp));
}
//+------------------------------------------------------------------+//| Short position open or limit/stop order set |//+------------------------------------------------------------------+bool CExpert::OpenShort( double price, double sl, double tp)
{
if (price== EMPTY_VALUE ) return ( false );
//--- get lot for opendouble lot=LotOpenShort(price,sl);
//--- check lot for openif (lot== 0.0 ) return ( false );
//---return (m_trade.Sell(lot,price,sl,tp));
}
felidae :
Нет, всё в порядке, просто я дал случайно свою ссылку. Ваша должна быть по идее такая: https://www.mql5.com/ru/users/vik1991/accounting/chooseout
답변 감사합니다. 수입을 늘릴 수 있는 방법이 있습니까? 또는 수요가 증가할 때까지 기다리십시오.
MQL5 Wizard를 기반으로 작성된 Expert Advisor의 포지션 증가(탑업) 방법과 포지션 개설 방법을 알려주세요.
가상 정수 LongCondition();
가상 int ShortCondition();
기사의 권장 사항에 따라 로봇을 작성했습니다.
https://www.mql5.com/en/articles/367 "6단계로 거래 로봇 만들기" 잘 작동하지만 위치 크기에 영향을 미치려고 시도합니다.
(증가 또는 감소는 중요하지 않음) , 예를 들어 에서 조건의 반복 생성을 통해
LongCondition();
아무 것도 발생하지 않고 이미 열려 있는 위치는 변경되지 않습니다. 닫는 조건을 충족하거나 sl , tp를 트리거함으로써만 삭제할 수 있습니다.
MQL5 마법사가 마음에 듭니다. 다중 표시기 Expert Advisor를 쉽고 빠르게 "조립"하고, sl 추적 모듈을 변경하고, 자금 관리 모듈을 변경할 수 있습니다.
그러나 하나의 지표에서 조건이 형성되면 최소 포지션을 열고 다른 지표에 의해 추세가 확인되면 포지션을 증가(탑업)하는 Expert Advisor를 작성하려고 합니다.
위에서 설명한 문제가 발생했습니다. 다시 열라는 신호가 발행될 때 이미 열려 있는 위치가 변경되지 않습니다. 예: LongCondition();
나는 시장에 도구를 외환 시장에만 남겨두고 싶습니다. 코드는 잘 작동합니다.
하지만 테스터에서 시작하자마자 그러한 악기에 대한 기록을 로드하고 로드할 수 없습니다. 테스터에 대해 비활성화하려면 어떻게 해야 하나요????????
2013.04.04 14:09:21 Core 1 GBOTEURUSD17DEC2012: 히스토리 동기화 시작
MQL5 Wizard를 기반으로 작성된 Expert Advisor의 포지션 증가(탑업) 방법과 포지션 개설 방법을 알려주세요.
불행히도, 귀하가 설명한 사례는 여기(포럼에서) "파일로 끝내기"라고 말하는 범주에 속합니다.
문제를 해결하려면 전문가의 행동을 바꿔야 합니다. 이를 위해:
1. CExpert 클래스 에서 상속된 새 클래스(예: CMyExpert)를 만듭니다.
2. Processing 메서드를 오버로드하여 동작을 변경합니다.
3. 전문가의 소스 코드에서 포함된 파일을 (손으로) 교체합니다.
#include <Expert\Expert.mqh>
에
#include <Expert\MyExpert.mqh>
4. 전문가의 소스 코드에서 클래스 이름을 (손으로) 바꿉니다.
에
예제 클래스를 첨부합니다. 열린 위치가 있고 이에 대한 작업이 없는 경우 메서드 종료는 주석 처리됩니다(53행).
마법사에서 전문가 고문의 "재생"이 끝날 때마다 항목 3과 4를 따르는 것을 잊지 마십시오.
PS 궁금한 사항이 있으시면 연락주세요.
불행히도, 귀하가 설명한 사례는 여기(포럼에서) "파일로 끝내기"라고 말하는 범주에 속합니다.
문제를 해결하려면 전문가의 행동을 바꿔야 합니다. 이를 위해:
1. CExpert 클래스 에서 상속된 새 클래스(예: CMyExpert)를 만듭니다.
2. Processing 메서드를 오버로드하여 동작을 변경합니다.
3. 전문가의 소스 코드에서 포함된 파일을 (손으로) 교체합니다.
에
4. 전문가의 소스 코드에서 클래스 이름을 (손으로) 바꿉니다.
에
예제 클래스를 첨부합니다. 열린 위치가 있고 이에 대한 작업이 없는 경우 메서드 종료는 주석 처리됩니다(53행).
마법사에서 전문가 고문의 "재생"이 끝날 때마다 항목 3과 4를 따르는 것을 잊지 마십시오.
PS 궁금한 사항이 있으시면 연락주세요.
감사합니다. 모든 것이 작동했습니다! 다른 지표에 의해 추세가 확인되면 동일한 볼륨을 추가합니다.
이제 또 다른 질문이 생겼습니다. "토핑"의 크기를 변경할 수 있습니까? 예를 들어, 자금 관리 모듈의 표준 위치 크기는 0.1 이고 전문가(변수)가 계산한 ("탑업") 0.3 또는 0.35 등을 추가하고 싶습니다.
LongCondition() 서브루틴에서 "토핑" 크기를 거래 모듈로 전달하는 방법은 무엇입니까?
감사합니다. 모든 것이 작동했습니다! 다른 지표에 의해 추세가 확인되면 동일한 볼륨을 추가합니다.
이제 또 다른 질문이 생겼습니다. "토핑"의 크기를 변경할 수 있습니까? 예를 들어, 자금 관리 모듈의 표준 위치 크기는 0.1 이고 전문가(변수)가 계산한 ("탑업") 0.3 또는 0.35 등을 추가하고 싶습니다.
LongCondition() 서브루틴에서 "토핑" 크기를 거래 모듈로 전달하는 방법은 무엇입니까?
CExpert 클래스 에는 다음과 같은 메서드가 있습니다.
클래스에 과부하(Processing과 유사) 및 로트 결정 알고리즘을 변경합니다.
CExpert 클래스 에는 다음과 같은 메서드가 있습니다.
클래스에 과부하(Processing과 유사) 및 로트 결정 알고리즘을 변경합니다.
시가에서 작동 한다고 표시되는 지표가 있습니다
코드