기고글 토론 "MQL5 마법사: EA가 모든 가격으로 보류 중인 주문을 열도록 가르치는 방법" - 페이지 2

 

안녕하세요 블라디미르,


나는이 기사를 좋아합니다, 다른 지표를 사용하여 보류중인 주문 만 사용하여 거래를 시작하는 EA를 작성할 수 있습니까? 예를 들어 가격이 한 방향으로 5만큼 움직이면 상관없이 매수 또는 매도를 트리거합니다.

 
Tafadzwa Nyamwanza :

안녕하세요 블라디미르,


다른 지표를 사용하여 보류중인 주문 만 사용하여 거래를 시작하는 EA를 작성할 수 있습니까? 예를 들어 가격이 한 방향으로 5만큼 움직이면 상관없이 매수 또는 매도를 트리거합니다.

질문이 MQL5 마법사: 어떤 가격에서든 지정가 주문을 열도록 EA를 가르치는 방법 문서와 관련된 질문이 맞습니까?

 
안녕하세요 블라디미르.

이 문서가 지정가 주문에 관한 내용인 것을 알고 있는데, 시장가 주문을 열도록 EA를 어떻게 프로그래밍하나요?

 
Ayanda Mhlauli:
안녕하세요 블라디미르.

이 문서가 지정가 주문에 관한 내용인 것을 알고 있는데, 시장가 주문을 열도록 EA를 어떻게 프로그래밍하나요?

input double             Signal_PriceLevel         =0.0;         // 거래 체결을 위한 가격 수준
 
시그널 생성기 내부에서 직접 PriceLevel()을 호출하면 충분하지 않을까요, 왜 굳이 *신호 포인터를 시그널 생성기에 전달해야 하나요?
 

안녕하세요 블라디미르 카르푸토프님, 매우 유익한 기사였습니다!

저는 개인적으로 전문가, 신호, 필터, 지표, 위험 관리자 등을 나타내는 객체를 구성하여 봇을 구축하는 데 MQL5의 이 OOP 프레임워크가 매우 흥미롭다고 생각합니다 - 제 생각에는 코드 재사용과 확장성을 선호하면서 많은 성능을 희생하지 않는 매우 우아한 접근 방식이지만 복잡성으로 인해 학습 곡선이 상당히 가파른 것 같습니다.

어쨌든 저는 MQL5로 독점적으로 전환하고 있고 OOP 개념 / 언어에 대한 좋은 경험을 가지고 있기 때문에 새로운 거래 아이디어를 프로토 타이핑하고 거래 시스템을 연구하는 데 사용하기 위해이를 적용하고 싶습니다. 라이브러리 코드를 공부하고 사용해봤는데 다음과 같은 모범 사례에 대해 권장하는 접근 방식이 궁금합니다:

질문: 전문가에서 수신한 신호에 대한 추세 필터를 어떻게 통합하나요?

라이브러리에는 CExpertBase::m_trend_type 속성이 포함되어 있지만 안타깝게도 플랫폼과 함께 제공되는 예제 어디에서도 실제로 사용되지 않습니다. 두 가지 디자인 가능성 사이에서 고민 중입니다... 트렌드 필터링 객체 트렌드 필터링 객체 를 직접 추가하는 것(아래 코드 스니펫 참조)으로 전문가 수준에서 거래 결정을 내릴 때 더 많은 제어 기능을 제공할 수 있습니다. 이 문제를 해결하는 또 다른 방법은 기본 신호 객체의 필터를 조작하고 추세를 계산하여 CSignalExpert의 서브 클래스 내부(예: CSignalWithTrendFilter::Direction() 내부)에서 결정을 내리는 것일 수 있습니다. 아직 한 가지 방법과 다른 방법의 장단점이 무엇인지, 그리고 어떤 방법이 향후 프로젝트의 요구 사항에 대해 더 많은 유연성을 제공 할 것인지, 즉 복잡한 코드 재사용과 기본 클래스의 조정이 줄어드는 등 어떤 방법이 더 유연 할 것인지 아직 확실하지 않습니다.

class CExpertWithTrendFilter : public CExpert
{
protected:
   CExpertSignal    *m_trend;   // CExpert::m_signal과 병렬로 작동하여 생성하는 신호를 필터링합니다.
// ...
   virtual bool      Processing(void);
   virtual bool      CheckOpen(void);
// ...
};

bool CExpertWithTrendFilter::Processing(void)
{
   CExpertBase::m_trend_type = (ENUM_TYPE_TREND) m_trend.Direction();   // CExpertSignal에서 파생된 특수 객체를 기반으로 현재 추세를 결정합니다.
   
   m_signal.TrendType(m_trend_type);             // 추세 유형/강도를 m_signal에 입력으로 전달하고, CExpertSignal에서 서브 클래스화합니다.
   m_signal.SetDirection();                      // 옵션 #1 >>> 위에서 설정한 추세를 고려하여 신호 방향을 계산합니다(또는 그렇지 않을 수도 있음).

// ...

   if(CheckOpen())                               // 옵션 #2 >>> 또는 전문가가 롱 또는 숏 오픈 전에 추세 유형/강도를 확인할 수 있습니다.
      return(true);

   retun(false);                                 // 아무런 작업 없이 반환
}

bool CExpertWithTrendFilter::CheckOpen(void)
{
   if(m_trend_type > TYPE_TREND_FLAT && CheckOpenLong())    // 트렌드 필터 방향이 일치하는 경우에만 롱 오픈 허용
      return(true);
   if(m_trend_type < TYPE_TREND_FLAT && CheckOpenShort())   // 트렌드 필터 방향이 일치하는 경우에만 숏 오픈 허용
      return(true);

   return(false);                                // 아무런 작업 없이 반환
}

도움과 추천에 미리 감사드립니다.

 
오래 전에 트레이딩 엔진으로 전환했습니다 . EA 생성자 개발 시도 - 더 유연합니다.
An attempt at developing an EA constructor
An attempt at developing an EA constructor
  • www.mql5.com
In this article, I offer my set of trading functions in the form of a ready-made EA. This method allows getting multiple trading strategies by simply adding indicators and changing inputs.
 
Vladimir Karputov #:
나는 오래 전에 내 거래 엔진으로 전환했습니다 EA 생성자를 개발하려는 시도 - 더 유연합니다.

알겠습니다. 기사를 읽고 첨부 된 코드를 살펴 보겠습니다... 어쨌든 괜찮다면 위의 질문에 대한 귀하의 의견 / 의견을 보내 주시면 감사하겠습니다. 감사합니다!

 
Dima Diall # :

알겠습니다. 기사를 읽고 첨부된 코드를 살펴볼게요... 어쨌든 위의 질문에 대한 의견이나 의견을 괜찮으시다면 남겨주시면 감사하겠습니다. 감사합니다!

전문가 신호는 과거입니다. 댓글이 없습니다.

 
Vladimir Karputov #:

씨엑스퍼트시그널은 과거입니다. 댓글이 없습니다.

:-)