XQ小編今天在FB分享了Cybernetic Oscillato指標,我試著將其複製到我的XScript環境,並順利在XQ技術分析頁籤繪出指標,謝謝XQ。
我想把其應用到XS選股: (自昨天起算,前7天有5天以上Cybernetic Oscillato指標小於0,但今日為正值) 。選股選出的結果,跟XS程式預期的不符合。
XS程式如下:(我完全copy XQ小編在FB的程式,只有plot刪除,並增加最後一段選股XS程式)
例如長榮航太(2645)被選出,但是XQ技術分析頁籤顯示:Cybernetic Oscillato指標前7天都大於0。XS選股程式outputfield顯示4.8,而XQ畫面技術頁籤顯示2.51。請問我的XS程式錯誤在哪裡?
// 名稱:Cybernetic Oscillator (Ehlers 2025)
// -----------------------------------------------------------
Input: HPLen(30, "高通週期"), LPLen(20, "平滑週期"), RMSLen(50, "標準化窗口");
Variable: a1(0), b1(0), c1(0), c2(0), c3(0), x1(0);
Variable: HP(0), LP(0), RMS(0), CyberOsc(0);
// 1. 初始化高通濾波係數
Once begin
a1 = Expvalue(-1.414 * 3.14159 / HPLen);
b1 = 2 * a1 * Cos(1.414 * 3.14159 / HPLen);
c1 = -a1 * a1;
x1 = (1 + b1 - c1) / 4;
end;
// 2. 高通濾波 (去除趨勢)
if CurrentBar > 2 then
HP = x1 * (Close - 2 * Close[1] + Close[2]) + b1 * HP[1] + c1 * HP[2]
else
HP = 0;
// 3. 超級平滑濾波 (去除噪音 - 係數複用)
// 這裡使用簡化的二階平滑邏輯
LP = Average(HP, LPLen);
// 4. RMS 歸一化
RMS = SquareRoot(Summation(Power(LP, 2), RMSLen) / RMSLen);
if RMS <> 0 then
CyberOsc = LP / RMS
else
CyberOsc = 0;
{
// 5. 繪圖
Plot1(CyberOsc, "Cybernetic Oscillator");
Plot2(0, "零軸");
}
if countIf(CyberOsc[1]<0,7)>=5 and CyberOsc>0
then ret=1;
outputfield1(CyberOsc,"Cybernetic Oscillator");


6 評論