MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 277

 
mila.com :
안녕하세요.
첫 번째 막대의 MA 가격과 이전 네 막대의 MA 가격을 비교하는 데 도움을 주세요. 가격이 상승하고 차이가 N보다 크면 버퍼를 채웁니다. 이런 노력

어떤 가격이 인상되었습니까? - MA? 각 후속 막대(막대 값)와 관련하여 증가했습니까? 아니면 4개 중 하나와 관련하여 증가했습니까?

 
Aleksey Vyazmikin :

어떤 가격이 인상되었습니까? - MA? 각 후속 막대(막대 값)와 관련하여 증가 했습니까? 아니면 4개 중 하나와 관련하여 증가했습니까?

예, 누구에게나.

조건: 첫 번째 막대의 MA 라인 값이 이전 네 막대의 MA 값에 비해 N만큼 증가하면 버퍼입니다.

MA 값이 "N"핍만큼 증가했다는 것을 알아야 합니다. 그리고 얼마나 오래 걸리든 상관없이 제한된 수의 막대 에서 비교하는 것 외에는 아무 것도 생각해내지 못했습니다.

 
mila.com :

예, 누구에게나.

조건: 첫 번째 막대의 MA 라인 값이 이전 네 막대의 MA 값에 비해 N만큼 증가하면 버퍼입니다.

MA 값이 "N"핍만큼 증가했다는 것을 알아야 합니다. 그리고 얼마나 오래 걸리든 상관없이 제한된 수의 막대 에서 비교하는 것 외에는 아무 것도 생각해내지 못했습니다.


따라서 다른 MA 값에서 하나의 MA 값을 빼서 델타를 살펴보십시오. 최소값과 비교하십시오. 왜 이러한 사이클이 있습니까?

 
Aleksey Vyazmikin :

따라서 다른 MA 값에서 하나의 MA 값을 빼서 델타를 살펴보십시오. 최소값과 비교하십시오. 왜 이러한 사이클이 있습니까?

가격은 다섯 번째에 (조건부로) 1핍만큼 여러 막대에 걸쳐 천천히 변경할 수 있습니다. 원하는 변경 사항이 있을 것입니다.

 
mila.com :

가격은 여러 막대에 걸쳐 천천히 변경될 수 있습니다.


그러니 4바 전의 지표값과 현재의 값을 비교해보세요 - 평균화 기간이 너무 짧지 않다면 성장이 원활합니다...

 

아니면 다른 설정의 표시기가 있습니까?

 
Aleksey Vyazmikin :

그러니 4바 전의 지표값과 현재의 값을 비교해보세요 - 평균화 기간이 너무 짧지 않다면 성장이 원활합니다...

원하는 차이가 두 번째 막대에 있을 수 있지만 첫 번째 막대와 네 번째 막대를 비교하는 것이 좋습니다.

 
mila.com :

원하는 차이가 두 번째 막대에 있을 수 있지만 첫 번째 막대와 네 번째 막대를 비교하는 것이 좋습니다.


MA의 평균 기간은 얼마입니까? 방금 재미있어졌습니다. 정말로 휴식이 필요합니까?

 
mila.com :

하나의 MA 표시기. 주기를 도와줄 수 있습니까?


원하는 것을 올바르게 이해했다면 여기에 스크립트가 있습니다. 처리하십시오.

 #property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int period_iMA= 16 ;
input double N_= 0.005 ;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   double DeltaMA= 0.0 ;
   int Nbar= 0 ;
   for ( int i= 1 ;i< 5 ;i++)
     {
      DeltaMA=iMAf( 1 )-iMAf(i);
       if (DeltaMA< 0 )DeltaMA=DeltaMA*(- 1 );
       if (N_-DeltaMA< 0 ) {Nbar=i; break ;}
     }
   Print ( "Бар привышения - " ,Nbar);

  }
//+------------------------------------------------------------------+
double iMAf( int index)
  {
   return NormalizeDouble ( iMA ( Symbol (), 0 ,period_iMA, 0 , 0 , 0 ,index), Digits );
  }
//+------------------------------------------------------------------+

나는 델타를 양수 값으로 만들고 + 또는 - 를 고려하여 정의해야 하는 경우 줄을 제거합니다. if (DeltaMA< 0 )DeltaMA=DeltaMA*(- 1 ); 비교를 위해 상수를 별도로 고려합니다(- 및 + 포함).

 
Aleksey Vyazmikin : 여기에 대본 이 있습니다 .
감사해요