가격을 검색하기 위해 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 };
그러나 나는 많은 사람들이 여기에 코드를 게시한 것을 보았고 그들 모두가 그들에 의해 작성된 것은 아니라고 확신합니다.
사실, 위에 첨부한 코드는 https://www.mql5.com/en/forum/180648/page623 , Comment # 9337 스레드에서도 사용할 수 있습니다.
제발 날 좀 도와 줄 수 있니? 감사합니다.
그리고 당신은 이 게시물도 보지 못했습니다: https://www.mql5.com/en/forum/180648/page623 ? 제발 진지해...
나는 다른 사용자가 게시한 코드가 그들에 의해 코딩되었다는 것을 말하는 것이 아닙니다(사실 대부분은 그렇지 않습니다)
내가 말하고 있는 것은 내가 (나처럼 "mladen") 훔친(디컴파일된) 코드를 만지지 않을 것이라는 것입니다. . 따라서 원본 코드를 게시할 수 없다면 그런 코드로 아무 것도 하지 않을 것입니다. 좋든 싫든 그게 다야...
예를 들어 pr_haclose? 가장 간단한 솔루션
iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
친애하는 Mladen, 확장된 가격으로 iMA 또는 iCustomMa 기능을 사용하는 방법,
예를 들어 pr_haclose? 가장 간단한 솔루션
iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
{
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 );
}
안녕하세요 믈라덴입니다.
모든 다른 색상에 대해 버퍼를 추가할 수 있습니까?
감사해요!
가격을 검색하기 위해 iMA()를 사용하는 대신 사용자 지정 가격 가져오기를 사용해야 합니다. 일부 최신 버전에서는 getPrice() 함수를 얻을 수 있습니다.
그래서, 그 공식
이와 같이 :
이와 같이 :
그 4가지 양은 다음을 가리킨다.
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
그 4가지 양은 다음을 가리킨다.
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
알겠습니다. 도와주셔서 정말 감사합니다! :)
(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();