選股腳本數值計算

  •   123 
  • 最後發表   小苯  2026 九月 04
小苯 發文於   2026/09/02

各位好

想詢問同樣公式在選股、指標腳本當中計算出來的值不相同

有嘗試在選股腳本加入SetTotalBar(500);讓數值計算與指標腳本看現股圖時數值一致
公式取14天認為500這已足夠滿足數據,這是先前大大分享的漩渦指標。

 

// --- 參數設定 ---

 

input: VI_Length(14, "VI 天數");

// --- 變數宣告 ---

Variable: VM_Plus(0), VM_Minus(0);

Variable: Sum_VM_Plus(0), Sum_VM_Minus(0), Sum_TR(0);

Variable: VI_Plus(0), VI_Minus(0);

Variable: TR(0);

 

SetTotalBar(500);

VM_Plus = AbsValue(High - Low[1]);

VM_Minus = AbsValue(Low - High[1]);

TR = TrueRange; 

 

Sum_VM_Plus = Summation(VM_Plus, VI_Length);

Sum_VM_Minus = Summation(VM_Minus, VI_Length);

Sum_TR = Summation(TR, VI_Length);

if Sum_TR <> 0 then begin

VI_Plus = Sum_VM_Plus / Sum_TR;

VI_Minus = Sum_VM_Minus / Sum_TR;

end;

排序方式: 標準 | 最新
虎科大許教授 發文於   2026/09/02

我這邊測試,指標腳本與選股腳本結果一樣。

小苯 發文於   2026/09/03

謝謝教授回答

我測完發現真的一樣,是因為SetTotalBar(500) ?
我發現我問了一個錯誤題目,二邊腳本放入相同公式確實是一致

底下指標腳本才是我問題根源,我因為選股腳本與指標腳本數值不一致,而發問選股腳本問題

但我是想依據指標腳本為正解,我認為二邊腳本差異在SetTotalBar我該如何讓選股腳本與指標腳本一致

 

// 指標名稱:Vortex Indicator (VI)

// 發表年份:2010

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

Input: Length(14, "計算週期");

Variable: VM_Plus(0), VM_Minus(0);

Variable: Sum_VM_Plus(0), Sum_VM_Minus(0), Sum_TR(0);

Variable: VI_Plus(0), VI_Minus(0);

Variable: TR(0);

 

// 1. 計算單根 K 線的漩渦移動量 (Vortex Movement)

// 邏輯:今天的高點離昨天的低點有多遠 (多頭力道)

VM_Plus = AbsValue(High - Low[1]);

 

// 邏輯:今天的低點離昨天的高點有多遠 (空頭力道)

VM_Minus = AbsValue(Low - High[1]);

 

// 2. 計算真實波幅 (True Range)

// 這是為了將波動率標準化,讓不同價位的股票可以比較

TR = TrueRange; 

// 註:若 XQ 版本較舊不支援 TrueRange,可用以下公式取代:

// TR = MaxList(High - Low, AbsValue(High - Close[1]), AbsValue(Low - Close[1]));

 

// 3. 進行週期累加 (Summation)

// 這裡將過去 N 天的力道總和起來

Sum_VM_Plus = Summation(VM_Plus, Length);

Sum_VM_Minus = Summation(VM_Minus, Length);

Sum_TR = Summation(TR, Length);

 

// 4. 計算最終指標數值 (歸一化)

if Sum_TR <> 0 then begin

VI_Plus = Sum_VM_Plus / Sum_TR;

VI_Minus = Sum_VM_Minus / Sum_TR;

end;

 

// 5. 繪圖輸出

Plot1(VI_Plus, "VI+ (多頭)");

Plot2(VI_Minus, "VI- (空頭)");

Plot3(VI_Plus-VI_Minus,"差額");

 

附加文件

虎科大許教授 發文於   2026/09/03

根據你提供的指標腳本,技術指標算出來的VI+應該是0.95,與選股結果相同,而非你圖片展示的0.99,你是否使用不同的公式計算指標?

由於選股腳本預設只有讀取10筆資料,而你指標計算的期數是14期,因此選股腳本要與指標腳本一致,至少要setTotalBar(14)。

小苯 發文於   2026/09/04

感謝教授回答

我找到答案了,setTotalBar確實就能解決,以前也有人跟我這樣說

但我的問題不止一個,我還有從設定UI去變動期數,腳本保持14期數,導致沒看出來。

附加文件

發表回覆
Close