코딩 도움말 - 페이지 758

 
anees :

그러나 나는 많은 사람들이 여기에 코드를 게시한 것을 보았고 그들 모두가 그들에 의해 작성된 것은 아니라고 확신합니다.

사실, 위에 첨부한 코드는 https://www.mql5.com/en/forum/180648/page623 , Comment # 9337 스레드에서도 사용할 수 있습니다.

제발 날 좀 도와 줄 수 있니? 감사합니다.

그리고 당신은 이 게시물도 보지 못했습니다: https://www.mql5.com/en/forum/180648/page623 ? 제발 진지해...


나는 다른 사용자가 게시한 코드가 그들에 의해 코딩되었다는 것을 말하는 것이 아닙니다(사실 대부분은 그렇지 않습니다)

내가 말하고 있는 것은 내가 (나처럼 "mladen") 훔친(디컴파일된) 코드를 만지지 않을 것이라는 것입니다. . 따라서 원본 코드를 게시할 수 없다면 그런 코드로 아무 것도 하지 않을 것입니다. 좋든 싫든 그게 다야...

 
친애하는 Mladen, 확장된 가격으로 iMA 또는 iCustomMa 기능 을 사용하는 방법,
예를 들어 pr_haclose? 가장 간단한 솔루션
iMA(NULL,0,avgPeriod,0,avgType,pr_haclose,i);

iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
경고를 반환합니다.
 
wojtekpaul :
친애하는 Mladen, 확장된 가격으로 iMA 또는 iCustomMa 기능을 사용하는 방법,
예를 들어 pr_haclose? 가장 간단한 솔루션
iMA(NULL,0,avgPeriod,0,avgType,pr_haclose,i);

iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
경고를 반환합니다.
가격을 검색하기 위해 iMA()를 사용하는 대신 사용자 지정 가격 가져오기를 사용해야 합니다. 일부 최신 버전에서는 getPrice() 함수 를 얻을 수 있지만 어쨌든 다음과 같습니다.
enum enPrices
{
   pr_close,       // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,         // Low
   pr_median,     // Median
   pr_typical,     // Typical
   pr_weighted,   // Weighted
   pr_average,     // Average (high+low+open+close)/4
   pr_medianb,     // Average median body (open+close)/2
   pr_tbiased,     // Trend biased price
   pr_tbiased2,   // Trend biased (extreme) price
   pr_haclose,     // Heiken ashi close
   pr_haopen ,     // Heiken ashi open
   pr_hahigh,     // Heiken ashi high
   pr_halow,       // Heiken ashi low
   pr_hamedian,   // Heiken ashi median
   pr_hatypical,   // Heiken ashi typical
   pr_haweighted, // Heiken ashi weighted
   pr_haaverage,   // Heiken ashi average
   pr_hamedianb,   // Heiken ashi median body
   pr_hatbiased,   // Heiken ashi trend biased price
   pr_hatbiased2   // Heiken ashi trend biased (extreme) price
};

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
//

#define priceInstances 1
double workHa[][priceInstances* 4 ];
double getPrice( int tprice, const double & open[], const double & close[], const double & high[], const double & low[], int i, int instanceNo= 0 )
{
   if (tprice>=pr_haclose)
   {
       if ( ArrayRange (workHa, 0 )!= Bars ) ArrayResize (workHa, Bars ); instanceNo*= 4 ;
         int r = Bars -i- 1 ;
        
         //
         //
         //
         //
         //
        
         double haOpen;
         if (r> 0 )
                haOpen  = (workHa[r- 1 ][instanceNo+ 2 ] + workHa[r- 1 ][instanceNo+ 3 ])/ 2.0 ;
         else    haOpen  = (open[i]+close[i])/ 2 ;
         double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0 ;
         double haHigh  = MathMax (high[i], MathMax (haOpen,haClose));
         double haLow   = MathMin (low[i] , MathMin (haOpen,haClose));

         if (haOpen  <haClose) { workHa[r][instanceNo+ 0 ] = haLow;  workHa[r][instanceNo+ 1 ] = haHigh; }
         else                  { workHa[r][instanceNo+ 0 ] = haHigh; workHa[r][instanceNo+ 1 ] = haLow;  }
                                workHa[r][instanceNo+ 2 ] = haOpen;
                                workHa[r][instanceNo+ 3 ] = haClose;
         //
         //
         //
         //
         //
        
         switch (tprice)
         {
             case pr_haclose:     return (haClose);
             case pr_haopen:       return (haOpen);
             case pr_hahigh:       return (haHigh);
             case pr_halow:       return (haLow);
             case pr_hamedian:     return ((haHigh+haLow)/ 2.0 );
             case pr_hamedianb:   return ((haOpen+haClose)/ 2.0 );
             case pr_hatypical:   return ((haHigh+haLow+haClose)/ 3.0 );
             case pr_haweighted:   return ((haHigh+haLow+haClose+haClose)/ 4.0 );
             case pr_haaverage:   return ((haHigh+haLow+haClose+haOpen)/ 4.0 );
             case pr_hatbiased:
               if (haClose>haOpen)
                     return ((haHigh+haClose)/ 2.0 );
               else    return ((haLow+haClose)/ 2.0 );        
             case pr_hatbiased2:
               if (haClose>haOpen)   return (haHigh);
               if (haClose<haOpen)   return (haLow);
                                     return (haClose);        
         }
   }
  
   //
   //
   //
   //
   //
  
   switch (tprice)
   {
       case pr_close:     return (close[i]);
       case pr_open:       return (open[i]);
       case pr_high:       return (high[i]);
       case pr_low:       return (low[i]);
       case pr_median:     return ((high[i]+low[i])/ 2.0 );
       case pr_medianb:   return ((open[i]+close[i])/ 2.0 );
       case pr_typical:   return ((high[i]+low[i]+close[i])/ 3.0 );
       case pr_weighted:   return ((high[i]+low[i]+close[i]+close[i])/ 4.0 );
       case pr_average:   return ((high[i]+low[i]+close[i]+open[i])/ 4.0 );
       case pr_tbiased:  
               if (close[i]>open[i])
                     return ((high[i]+close[i])/ 2.0 );
               else    return ((low[i]+close[i])/ 2.0 );        
       case pr_tbiased2:  
               if (close[i]>open[i]) return (high[i]);
               if (close[i]<open[i]) return (low[i]);
                                     return (close[i]);        
   }
   return ( 0 );
}  
 

안녕하세요 믈라덴입니다.

모든 다른 색상에 대해 버퍼를 추가할 수 있습니까?

감사해요!

 
mladen :

가격을 검색하기 위해 iMA()를 사용하는 대신 사용자 지정 가격 가져오기를 사용해야 합니다. 일부 최신 버전에서는 getPrice() 함수를 얻을 수 있습니다.

그래서, 그 공식
iCustomMa(avgType,getPrice(pr_haclose,pr_open,pr_close,pr_high,pr_low,i),avgPeriod,i,0);
맞을까?
 
wojtekpaul :
그래서, 그 공식
iCustomMa(avgType,getPrice(pr_haclose,pr_open,pr_close,pr_high,pr_low,i),avgPeriod,i,0);
맞을까?
아니요

이와 같이 :

iCustomMa(avgType,getPrice(pr_haclose, Open , Close , High , Low ,i),avgPeriod,i, 0 );
 
mladen :
이와 같이 :

... Open , Close , High , Low ,...

그 4가지 양은 다음을 가리킨다.

   pr_close,       // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,         // Low

?
 
wojtekpaul :

그 4가지 양은 다음을 가리킨다.

   pr_close,       // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,         // Low

?
아니요. 함수 를 살펴보면 4개의 매개변수는 시가, 종가, 고가 및 저가 값을 포함하는 4개의 배열을 참조합니다. 함수에서 예상되는 배열 대신 상수 정수 값을 사용하려고 합니다. 게시 된대로 사용하십시오. 그러면 작동합니다.
 

알겠습니다. 도와주셔서 정말 감사합니다! :)

(1월 31일 이후에는 무엇을 할까요?) :(

 
친애하는 믈라덴,

mt4 표시기에 대해 이것을 코딩할 수 있습니까 .... Amibroker AFL 코딩에서 ... 감사합니다.



_SECTION_BEGIN("시장 동향");
SetChartOptions(0,chartShowArrows|chartShowDates);

함수 예측 사이클( arg1, arg2 )
{
로컬 var1, var2;

결과 = arg1 + arg2;

반환 결과;
}

예측=0;
P = ParamField("가격 필드",-1);
기간 = Param("기간", 15, 2, 300, 1, 10 );
예측 = PredictCycle(C, 기간);

매수 = 예측>참조(예측,-1);
매도 = 예측<Ref(예측,-1);

매수 = ExRem(매수, 매도);
매도 = ExRem(매도, 매수);

Plot(예측,"예측",colorWhite,styleLine | styleThick);

PlotShapes(IIf(구매, shapeUpArrow, shapeNone),colorGreen, 0,L, 오프셋=-5);
PlotShapes(IIf(판매, shapeDownArrow, shapeNone),colorRed, 0,H, 오프셋=-5);

_SECTION_END();