成本問題

  •   193 
  • 最後發表   ha  2024 一月 04
ha 發文於   2023/12/02

我想用240日的前15大主力平均買超成本來進行選股,

我想要找到的是目前價格在240日的前15大主力平均買超成本,正負10%內的股票

這邊是我的程式碼:

input:period(240);

 

value1 = GetField("主力平均買超成本");

value2 = average(value1,period);

value3 = value1* 0.9;

value4 = value1* 1.1;

Value5 = GetField("Close");

 

if value3 < value5

and value5 < value4

then ret = 1;

我用這段程式碼進行選股,但是選出來的股票數為0,想知道我的程式碼哪邊出了錯誤。

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/12/18

Hello, ha.

目前主力相關欄位,技術人員正在調整,所以太早跑選股可能會取到0的值,所以要麻煩您晚一點跑選股,

 

然後因為系統預設只有10筆資料,所以建議您SetTotalBar(240);這樣可以確保您計算240日平均資料是足夠的,

SetTotalBar(240);

input:period(240);

value1 = GetField("主力平均買超成本");
value2 = average(value1,period);
value3 = value1* 0.9;
value4 = value1* 1.1;
Value5 = GetField("Close");

if 
    value3 < value5
    and value5 < value4
then 
    ret = 1;

outputField1(value1 , 2, "主力平均買超成本");
outputField2(value2 , 2, "主力平均買超成本240均");
outputField3(value3 , 2, "0.9");
outputField4(value4 , 2, "1.1");

或者請您改寫成如下,也可以得到一樣的結果,謝謝。

value2 = average(GetField("主力平均買超成本"),period);

 

ha 發文於   2023/12/22

value2 = average(GetField("主力平均買超成本"),period);

想請問一下,上面value2得出的值跟主力進出得出來的值不太一樣,想問一下如果我要得到相同的值要麼做?

還是GetField("主力平均買超成本")得出來的本來就不是主力進出的值,如果不是的話,

要用什麼語法才能得到主力進出中的平均買超成本

 

XQ小幫手 發文於   2024/01/04

 Hello, ha.

這個問題我覺得要計算成一樣是有困難的,

首先,近240日前15大買超券商,XS並無法取得

再來是,平均問題 average(GetField("主力平均買超成本"),period);

這個是取每天的主力平均買超成本,去計算240天的平均,所以每天的權重都是1去計算1/240,

但是實際狀況是有可能今天買超的張數假設是1.3萬張,昨天僅9千張,這樣平均起來會有點落差,

 

所以小幫手想到利用"主力平均買超成本" * "主力買賣超張數"去計算,

 

input:period(10);

value1 = GetField("主力平均買超成本");
value2 = average(GetField("主力平均買超成本"),period);
value3 = value1* 0.9;
value4 = value1* 1.1;
Value5 = GetField("Close");

value6 = GetField("主力買賣超張數");
if 
    value3 < value5
    and value5 < value4
then
    ret = 1;

for value999 = 0 to (240-1)
Begin
    value11 = value11 + (value1[value999] * value6[value999]);
    value12 = value12 + value6[value999];
end;


outputField1(value1 , 2, "主力平均買超成本");
outputField2(value2 , 2, "主力平均買超成本240均");
outputField3(value3 , 2, "0.9");
outputField4(value4 , 2, "1.1");
outputField5(GetField("主力平均買超成本") , 2, "主力平均買超成本_GetField()");
outputField6(GetFieldDate("主力平均買超成本") , 0, "主力平均買超成本_Date");
outputField7(value11 / value12 , 2, "真實主力平均買超成本");

但是得到結果也是有落差,

這部分,小幫手會再跟相關人員反映,看後續有沒有更好的計算方式,

 

謝謝。

發表回覆
Close