xxericxx88 發表於 16-6-26 11:14

Dynamic Trader Oscillator 問題

我是新人在網上找到這個Indicator,放到香港股票AB中出現 Warning 505.Division by zero. Divisor array at is equal zero.

請問:
1> 怎樣解決這個除數組有0之部份
2> 怎樣知道每個Indicator計算出來之值是什麼 ? (例如:當股票第128棒時,PeriodRSI、PeriodStoch、HHV和LLV的值是多少。)

誠心求教,感激不盡!


_SECTION_BEGIN("Dynamic Trader Oscillator");

PeriodRSI= Param("PeriodRSI", 13, 1, 250, 1);
PeriodStoch=Param("PeriodStoch", 8, 1, 250, 1);
MAType=Param("MAType", 1, 1, 2, 1);
PeriodSK=Param   ("PeriodSK", 5, 1, 250, 1);
PeriodSD=Param("PeriodSD", 3, 1, 250, 1);
Upper=Param("Upper", 70, 50, 100, 1);
Lower=Param("Lower", 30, 0, 50, 1);
StoRSI= 100*((RSI( PeriodRSI) -LLV( RSI( PeriodRSI ) , PeriodStoch ) ) / ( ( HHV( RSI( PeriodRSI) , PeriodStoch) ) - LLV(RSI(PeriodRSI), PeriodStoch ) ) );

//-------------- Warning 505.Division by zero. Divisor array at is equal zero.


if(MAType==1)
{
SK=MA(StoRSI,PeriodSK);
SD=MA(SK,PeriodSD);
}

if(MAType==2)
{
SK=EMA(StoRSI,PeriodSK);
SD=EMA(SK,PeriodSD);
}

Plot(SK,"DTOscSK",ParamColor( "ColorSK", colorBlue ),styleLine);
Plot(SD,"DTOscSD",ParamColor( "ColorSD", colorYellow ),styleDashed);
Plot(0,"ZeroLine",ParamColor( "ColorZero", colorWhite ),styleLine);
Plot(Upper,"Upper",ParamColor( "ColorUpper", colorRed ),styleLine);
Plot(Lower,"Lower",ParamColor( "ColorLower", colorGreen ),styleLine);
_SECTION_END();

chhung3 發表於 16-7-7 09:42

你將計stoRSI嘅denominator plot出唻睇就知乜事。因為你periodRSI = 13, 但PeriodStoch = 8, 咁喺第13個data point度, RSI(periodRSI)就會得一個Value, 咁within PeriodStoch, HHV就自然會=LLV, 咁咪會出divided by zero嘅error囉。

解決方法,最簡單就denominator = iif(HHV==LLV, 1, HHV-LLV)
至於第二個問題,你另外搵variable裝起你想知嘅HHV同LLV, 然後plot出唻睇。PeriodRSI同PeriodStoch係你嘅input, 你係應該set左先run你個function, 而唔係事後睇入左D乜。

wanwh 發表於 16-7-7 23:03

有沒有 公式, 我想寫 multichart 版本
頁: [1]
查看完整版本: Dynamic Trader Oscillator 問題