초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 757

 
User_mt5 :


일반적으로 "그라디언트"라는 것이 있습니다. 이것은 "가파름"(그래픽)을 특징 짓는 지표입니다. 이 산업과 관련하여 이 지표는 point/time 으로 표현될 수 있습니다. 기본적으로 속도입니다. 이 표시기는 눈금에 의존하지 않습니다. 차트에 묶여 있지 않습니다. 그라디언트를 사용하고 각도를 사용하지 마십시오.


이 기울기는 어떻게 계산됩니까?

어떻게든 아이디어를 자세히 설명할 수 있습니까? 내 질문을 게시한 포럼 스레드에 유의하십시오.

 
igorbel :

이 기울기는 어떻게 계산됩니까?

어떻게든 아이디어를 자세히 설명할 수 있습니까? 내 질문을 게시한 포럼 스레드에 유의하십시오.

생각이 없어요.

나는 간단한 수학에 대해 이야기하고 있습니다. 기울기는 속도입니다. 속도 자체는 시간이 분모에있을 때입니다. 일반적으로 이것은 km/h로 표현되는 차량의 속도입니다. 그러나 속도는 일반적으로 다릅니다. 예를 들어, 코드가 작성 되는 비율은 하루에 행으로 측정됩니다. 가격 차트와 관련하여 속도는 분당 포인트 수로 측정됩니다. 조건부로 차트의 일부 섹션에서 기울기(기울기, 상승률)가 예를 들어 100포인트/분보다 크면 이 섹션은 추세로 규정될 수 있고 더 작으면, 그럼 아파트로.

 

안녕하세요! 2017.07.07_15:55 GMT+3. 난 이해가 안 돼요. 신호가 있어야 할 것 같지만 전략 테스터 에는 없습니다. 그렇다면 당신의 자랑스러운 MT5 테스터는 MT4 테스터와 어떻게 다릅니까? 나는 표준 Moving Average.mq5 와 거의 비슷하게 작성했습니다. 그리고 데모 계정에서 나는 여전히 어드바이저를 확인할 수 있었습니다. 그는 거래를 열었지만 스스로 거래를 성사시켜야 했습니다. 폐쇄를 고쳤습니다. 그러나 그는 다른 것을 썼습니다. 고문은 다시 거래 개시를 중단했습니다. 그리고 제로 오류와 제로 경고는 아직 어드바이저의 작업 상태를 나타내는 지표가 아닙니다. 여기에서 내가 막혔습니다. 조언자가 작동하지 않는 곳이 어디인지 어떻게 알 수 있습니까? Karputov를 다시 방해하기 위해. 내가 금지 목록 전체를 받았다면 직접 했을 것입니다. 전부는 아니지만 파일을 퍼뜨리십시오. 16:06 GMT+3.

 

도와주세요!

MQL4에서 표시기 값을 얻으려면 간단한 함수로 충분합니다.

 double CMAf( int index)
  {
   return NormalizeDouble ( iMA ( Symbol (), 0 ,period_CMA, 0 , 0 , 0 ,index), Digits );
  }
MQL5의 아날로그를 얻는 방법은 무엇입니까?
 
-Aleks- :

도와주세요!

MQL4에서 표시기 값을 얻으려면 간단한 함수로 충분합니다.

MQL5의 아날로그를 얻는 방법은 무엇입니까?

iMA 도움말 을 보셨습니까?

1단계: "헤더"에서 iMA 표시기의 핸들을 저장할 변수를 선언합니다.

2단계: OnInit()에서 표시기 핸들을 만듭니다.

 //+------------------------------------------------------------------+
//|                                                       iMAGet.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//--- input parameters
input int                   ma_period= 10 ;                 // period of ma 
input int                   ma_shift= 0 ;                   // shift 
input ENUM_MA_METHOD        ma_method= MODE_SMA ;           // type of smoothing 
input ENUM_APPLIED_PRICE    applied_price= PRICE_CLOSE ;     // type of price 
input ENUM_TIMEFRAMES       period= PERIOD_CURRENT ;         // timeframe 
//---
int                         handle_iMA;                   // variable for storing the handle of the iMA indicator 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- create handle of the indicator iMA
   handle_iMA= iMA ( Symbol (),period,ma_period,ma_shift,ma_method,applied_price);
//--- if the handle is not created 
   if (handle_iMA== INVALID_HANDLE )
     {
       //--- tell about the failure and output the error code 
       PrintFormat ( "Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d" ,
                   Symbol (),
                   EnumToString ( Period ()),
                   GetLastError ());
       //--- the indicator is stopped early 
       return ( INIT_FAILED );
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   double ma_0=iMAGet( 0 );
   double ma_1=iMAGet( 1 );

   Comment ( "MA #0: " , DoubleToString (ma_0, Digits ()+ 1 ), "\n" ,
           "MA #1: " , DoubleToString (ma_1, Digits ()+ 1 ));
  }
//+------------------------------------------------------------------+
//| Get value of buffers for the iMA                                 |
//+------------------------------------------------------------------+
double iMAGet( const int index)
  {
   double MA[ 1 ];
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iMABuffer array with values from the indicator buffer that has 0 index 
   if ( CopyBuffer (handle_iMA, 0 ,index, 1 ,MA)< 0 )
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the iMA indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( 0.0 );
     }
   return (MA[ 0 ]);
  }
//+------------------------------------------------------------------+


결과(스크린샷의 십자선은 막대 #1로 설정됨):

아이마겟

파일:
iMAGet.mq5  7 kb
 
Vladimir Karputov :

iMA 도움말 을 보셨습니까?

1단계: "헤더"에서 iMA 표시기의 핸들을 저장할 변수를 선언합니다.

2단계: OnInit()에서 표시기 핸들을 만듭니다.

결과(스크린샷의 십자선은 막대 #1로 설정됨):

답변 해주셔서 감사합니다.

MQL4에서는 모든 것이 함수에서 선언되므로 Expert Advisor 설정에 따라 활성화되는 함수 세트가 있습니다. 내가 틀리지 않았다면 귀하의 경우 메모리는 TS가 사용하도록 허용하는 수십 가지 다른 표시기에 할당됩니다. 이는 합리적이지 않습니까? 아니면 메모리가 할당되지 않습니까?

 

이 클래스의 특정 객체 없이 클래스 함수를 호출 할 수 있습니까? 다음과 같이 하려면:

 class test
  {
public :
                     test( void );
                    ~test( void );
   public : void PrintInfo (){ Print ( "Class test" );}
  };
//---
void OnStart ()
  {
      test.PrintInfo() ;
  }

아니면 객체를 생성해야 합니까? 이 함수가 인스턴스보다 클래스 자체의 정의를 더 많이 참조하더라도.

 

함수가클래스 변수에 액세스할 필요가 없으면 정적으로 만드십시오.

 class test
{
public :
   test();
   ~test();

   static void PrintInfo()
   {
       Print ( "Class test" );
   }
};

void OnStart ()
{
   test::PrintInfo();
}
 
Koldun Zloy :

함수가 클래스 변수에 액세스할 필요가 없으면 정적으로 만드십시오.

감사합니다. 그게 바로 당신이 필요로 하는 것입니다.
 

오류가 발생합니다. 무엇이 잘못되었나요? MQL4에서는 작동합니다...


   double arrFibo[ 17 ]=
     {
       0 ,
       0.236 ,
       0.382 ,
       0.5 ,
       0.618 ,
       0.764 ,
       1 ,
       1.236 ,
       1.382 ,
       1.5 ,
       1.618 ,
       2.0 ,
       2.236 ,
       2.382 ,
       2.5 ,
       2.618 ,
       2.764 ,
       3          //Всего уровней 17 + 0
     };
'{' - 초기화 프로그램이 너무 많습니다. TZ_Sky_and_Ground_V_04.mq5 2484 6
사유: