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

 
Vladimir Baskakov :

감사합니다. 작동합니다. 한 가지 조건만 충족됩니다.

그리고 나는 필요하다

그리고 어떤 이유로 그는 그와 직책을 열지 않습니다.

 int barfrup_1 = GetLastFractals( 1 ,MODE_UPPER);
int barfrup_2 = GetLastFractals(barfrup_1+ 1 ,MODE_UPPER);
int barfrdn_1 = GetLastFractals( 1 ,MODE_LOWER);
int barfrdn_2 = GetLastFractals(barfrdn_1+ 1 ,MODE_LOWER);

if (High[barfrup_1] < High[barfrup_2] && Low[barfrdn_1] < Low[barfrdn_2] )
if(High[barfrup_1] < High[barfrup_2] && Low[barfrdn_1] > Low[barfrdn_2] )
 
Igor Makanu :

작동하지만 조건이 아닌 원하는 위치에서 위치를 엽니다 .

 
Vladimir Baskakov :

작동하지만 조건이 아닌 원하는 위치에서 위치를 엽니다 .

내 코드는 간단하고 지그재그와 같은 프랙탈은 화살표가있는 막대에서만 중요합니다. 루프에서 화살표가 나타날 때까지 표시기 값을 살펴보고 루프를 종료하고 반환합니다. 프랙탈이 있는 막대의 번호

얼마 전에 프랙탈에 대한 Expert Advisor를 만들었습니다. 코드가 확인되었으며 테스트 중에 1 번 막대의 프랙탈이 다시 그릴 수 있음이 밝혀졌습니다. 테스터의 시각화 모드를 켜고 프랙탈 표시기를 추가하십시오.

 
Igor Makanu :

내 코드는 간단하고 지그재그와 같은 프랙탈은 화살표가있는 막대에서만 중요합니다. 루프에서 화살표가 나타날 때까지 표시기 값을 살펴보고 루프를 종료하고 반환합니다. 프랙탈이 있는 막대의 번호

얼마 전에 프랙탈에 대한 Expert Advisor를 만들었습니다. 코드가 확인되었으며 테스트 중에 1 번 막대의 프랙탈이 다시 그릴 수 있음이 밝혀졌습니다. 테스터의 시각화 모드를 켜고 프랙탈 표시기를 추가하십시오.

결과가 0 또는 빈 값인지 확인해야 할 수도 있습니다.
 
Aleksei Beliakov :
결과가 0 또는 빈 값인지 확인해야 할 수도 있습니다.

빈 값에 0이 있습니다. 음, 0이 _Point와 비교하는 가장 좋은 방법이 아닌 것 같습니다.

모든 것이 작동합니다. 증명하고 싶지는 않지만 프랙탈 표시기 의 값을 업로드하는 것은 이 코드 섹션을 사용하여 작동해야 합니다.

추신: 다시 한 번, 어떤 이유로 내 코드에 대해 논의하고 있습니다. .... 코드가 더 많이 작동할수록 다른 참가자의 코드가 보이지 않습니다. 결국 누가 그것을 필요로 하는지 명확하지 않습니까? ))))


추신 : 질문이 휴식을주지 않는다는 것을 알고 있기 때문에 모든 것이 작동하고 코드가 빠릅니다.

 #property copyright "IgorM"
#property link        "https://www.mql5.com/ru/users/igorm"
#property version    "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots    2
//--- plot Label1
#property indicator_label1    "Label1"
#property indicator_type1    DRAW_ARROW
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- plot Label2
#property indicator_label2    "Label2"
#property indicator_type2    DRAW_ARROW
#property indicator_color2    clrBlue
#property indicator_style2    STYLE_SOLID
#property indicator_width2    1
//--- indicator buffers
double          Label1Buffer[];
double          Label2Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,Label1Buffer);
   SetIndexBuffer ( 1 ,Label2Buffer);
   SetIndexArrow( 0 ,SYMBOL_ARROWUP);
   SetIndexArrow( 1 ,SYMBOL_ARROWDOWN);
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//--
   static int limit= 0 ;   
   if (limit>= 10 ) return (rates_total);
   int b_up = 0 , b_dn = 0 ;
   while (limit<= 10 )
     {
      b_up = GetLastFractals(b_up,MODE_UPPER);
      Label1Buffer[b_up] = high[b_up];
      b_up++;
      b_dn = GetLastFractals(b_dn,MODE_LOWER);
      Label2Buffer[b_dn] = low[b_dn];
      b_dn++;
      limit++;
      }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//_______________________________________________________________________
int GetLastFractals( int bar, int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал
  {
   int i=bar; 
   while (i< Bars && iFractals ( NULL , 0 ,mode,i)< _Point ) i++;
   return (i);
  }
//_______________________________________________________________________

결과


 
Artyom Trishkin :

표시기 버퍼의 경우 ArraySetAsSeries(true)입니다.

했다. 설명서대로 했어요
 
Igor Makanu :

내 코드는 간단하고 지그재그와 같은 프랙탈은 화살표가있는 막대에서만 중요합니다. 루프에서 화살표가 나타날 때까지 표시기 값을 살펴보고 루프를 종료하고 반환합니다. 프랙탈이 있는 막대의 번호

얼마 전에 프랙탈에 대한 Expert Advisor를 만들었습니다. 코드가 확인되었으며 테스트 중에 막대 1의 프랙탈이 다시 그릴 수 있음이 밝혀졌습니다. 테스터의 시각화 모드를 켜고 fractacene 표시기를 추가하십시오.

아니요, 그것은 저에게 자리를 열어줍니다. 예상대로 세 번째 막대에 프랙탈이 있습니다. 그러나 더 나쁘다. 내 조건에 따라 (fr1_up<fr_2 && fr1_down>fr2_down) 찾을 수 없습니다. 결론은 두 개의 프랙탈로 찾은 가격의 압축입니다.
 

내가 얻은 것 같아!

999

파일:
IgorM.mq5  17 kb
 
Aleksandr Klapatyuk :

내가 얻은 것 같아!

정확히 무엇?
 
Vladimir Baskakov :
정확히 무엇?

iFractals에서 개체 이름 이동