거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
11
평가:
(4)
게시됨:
\MQL5\Include\fxsaber\Input_Struct\
System.mqh (0.48 KB) 조회
Example.mqh (0.46 KB) 조회
\MQL5\Experts\
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

이 라이브러리는 입력 매개변수로 작업할 때 일상적인 작업을 줄여줍니다.



사용 예로 트레이딩 어드바이저를 예로 들어 보겠습니다. 거래 로직을 작성할 때 OOP 접근 방식을 사용하는 것이 더 복잡한 시스템에 EA를 더 쉽게 포함시킬 수 있기 때문에 합리적입니다.


구조적으로 테스터용 OOP 어드바이저는 다음과 같습니다.

    class SYSTEM
    {
    public:
      virtual void OnTick() {}
    
      // 입력 데이터가 문자열로 출력됩니다.
      virtual string ToString( void ) const = NULL;
      
      // 입력 데이터는 문자열로 지정됩니다.
      virtual int FromString( const string Str ) = NULL;
    };
    
    SYSTEM* System = NULL;
    
    void OnInit()
    {
      System = new SYSTEM;
    }
    
    void OnTick()
    {
      System.OnTick();
    }
    
    void OnDeinit( const int )
    {
      delete System;
    }

    이 EA는 아무것도 하지 않습니다. 그러나 거래 로직이 아니라 입력 매개 변수로만 작업 할 때 코드가 심각하게 증가하여 가독성이 악화되고 오류 확률이 높아집니다. 사실, 불쾌한 일상적인 작업을 수행해야합니다.


    모든 입력 매개 변수를 문자열로.
    .

    코드에서 강조 표시된 줄로 조금 전환 해 봅시다.

    거래 관행에 따르면 입력 매개 변수를 문자열 형식으로 저장 / 읽는 것이 편리하므로 관심있는 입력 매개 변수 집합을 빠르고 명확하게 볼 수 있습니다 (발견).

    Amount = 1, Count = 2, Period = 3, Koef = 4.5, Log = 6.7, Flag = true
    Amount = 2, Count = 3, Period = 4, Koef = 4.56, Log = 7.89, Flag = false

    예를 들어 위 텍스트에는 두 개의 입력 매개변수 세트가 있습니다.


    입력 매개변수 작업의 OOP 고전.

    input int inAmount = 1;
    input int inCount = 2;
    input int inPeriod = 3;
      
    input double inKoef = 4.56;
    input double inLog = 7.89;
      
    input bool inFlag = true;
    
    struct INPUT_STRUCT
    {
      int Amount;
      int Count;
      int Period;
      
      double Koef;
      double Log;
      
      bool Flag;
      
      string ToString( void ) const
      {
        string Str = NULL;
    
      #define  TOSTRING(A) Str += (::StringLen(Str) ? ", " : NULL ) + #A + " = " + (string)(this.A);
        TOSTRING(Amount);
        TOSTRING(Count);
        TOSTRING(Period);
    
        TOSTRING(Koef);
        TOSTRING(Log);
        
        TOSTRING(Flag);
      #undef  TOSTRING
        
        return(Str);
      }
      
      // 쓰기를 시작하지 않았습니다.
      int FromString( const string Str )
      {
        return(0);
      }  
    } inInputs = {inAmount, inCount, inPeriod, inKoef, inLog, inFlag};
    
    #include <fxsaber\Input_Struct\Example_OnTick.mqh>
    
    void EXAMPLE::OnTick( void )
    {
      // 시스템 코드...
     // this.Inputs에는 입력 매개변수가 포함됩니다.
    }

    위의 번거로운 코드는 동일한 빈 EA이지만 입력 매개 변수로 작업하는 추가 (강조 표시된 텍스트)만 있습니다. 이 코드는 불쾌하며 중요한 INPUT_STRUCT::FromString 메서드를 구현하지 않아도 됩니다.

    하나의 입력 매개 변수를 추가/제거하려면 이 코드의 다섯 곳에서 해당 변경을 수행해야 합니다. 매번 그렇습니다!


    입력 매개변수 작업의 OOP 대안
    .

    #include <fxsaber\Input_Struct\Input_Struct.mqh> // 입력 파라미터의 구조.
    INPUT_STRUCT inInputs;
    
    MACROS_INPUT(int, Amount, 1);
    MACROS_INPUT(int, Count, 2);
    MACROS_INPUT(int, Period, 3);
    
    MACROS_INPUT(double, Koef, 4.56);
    MACROS_INPUT(double, Log, 7.89);
    
    MACROS_INPUT(bool, Flag, true);
    
    #include <fxsaber\Input_Struct\Example_OnTick.mqh>
    
    void EXAMPLE::OnTick( void )
    {
      // 시스템 코드...
     // this.Inputs에는 입력 매개변수가 포함됩니다.
    }

    눈에 띄게 강조 표시된 텍스트가 적습니다. 동시에 모든 메소드가 구현됩니다.


    사용 시나리오.
    .

    • 입력 매개변수 집합을 변경할 때 시간 및 오류 확률 최소화.
    • 기술적 기능보다는 트레이딩 로직에 더 많은 시간을 할애.
    • 문자열을 통한 입력 매개변수 세트 저장/읽기.
    • 복잡한 시스템(포트폴리오 등) 작성의 대폭 간소화.
    • 사용자 지정 최적화 알고리즘의 손쉬운 연결.

    OOP 접근 방식을 사용하면 위의 두 예에서와 같이 많은 반복적인 텍스트를 mqh 파일에 숨길 수 있습니다. OOP는 간결할 수도 있습니다.


    특징.

    • 제안된 입력 매개변수 구조는 간단하여 적용 가능성을 크게 확장합니다.
    • "수정된" 구조는 할당 연산자를 통해 서로 전달할 수 있습니다. 그리고 항상 동일한 크기를 갖습니다.
    • 라이브러리는 크로스 플랫폼입니다.

    MetaQuotes Ltd에서 러시아어로 번역함.
    원본 코드: https://www.mql5.com/ru/code/47932

    Sec-WebSocket-Key Generator Sec-WebSocket-Key Generator

    Sec-WebSocket-Key 생성기

    RSI HTF RSI HTF

    RSI 기술 지표의 고전적인 변형으로, 지표 주기를 차트 주기와 다른 값으로 고정하여 찾을 수 있습니다.

    ExtObjects ExtObjects

    Dedicated functions to read and write object properties.

    Momentum Color Fill Momentum Color Fill

    The Momentum Technical Indicator measures the change of price of a financial instrument over a given time span.