請問我該如何做成 除權息五天內 當日漲幅有4%以上

  •   54 
  • 最後發表   交易玩家  2025 七月 30
交易玩家 發文於   2025/07/29

var:ma(0);

var:ma1(0);

var:ma2(0);

var:ma3(0);

ma=average(close,5);

ma1=average(close,10);

ma2=average(close,20);

ma3=average(close,60);

 

Value1 = GetField("除權息日期");

value2 = GetBarOffset(Value1);

value3=((close-close[1])/close[1])*100;

 

if Value1 >= 20250101 and Value1 <= date then 

begin 

 

if 

IF  close >= close[value2]  and  volume > 500 and close > 15 

 

then ret=1;

end;

 

 

outputfield1(Value1,2,"除權息日期");

outputfield2(date  ,2,"當天日期");

outputfield3(close  ,2,"收盤");

outputfield4(close[value2] ,2,"除權息收盤");

 

目前想針對除權息五天內 當日漲幅有4%以上來去測試 

請問這邊該如何操作,還有如果想要回測不限於今年的話可以怎麼改寫

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/07/29

//參考以下的寫法,再根據自己需求修改
if barfreq<>"D" then raiseRunTimeError("限用日頻率");
var: myBar(0);
if date=GetField("除權息日期") then myBar=currentBar;
value1=currentBar-myBar;
if value1<5 and value1>=0 then
    begin
        value2=100*(c/GetField("參考價")-1);
        {if value2>=4 then} print(date,value2);
    end;

交易玩家 發文於   2025/07/30

我可以理解程式碼內的大致上內容 但沒有辦法抓出個股

currentBar-myBar 這段減掉的意思為何?

但好像沒這有辦法抓出個股

虎科大許教授 發文於   2025/07/30

要抓出個股,必須當下的K棒符合條件才行。

交易玩家 發文於   2025/07/30

請問這部分是用在選股地方還是交易位置 目前主要都是用選股部分

虎科大許教授 發文於   2025/07/30

交易與選股都相同。在選股時,商品必須今天是在除權息5天內,且漲跌幅超過4%,才會被選出來。

交易玩家 發文於   2025/07/30

感謝回覆 但我這邊有嘗試過好比說6/30日 金像電在除權息後再帶量走強 反而沒有被篩出來  

虎科大許教授 發文於   2025/07/30

若你執行以下選股策略,回到6/30那天,你會發覺2368金像電會被選出來,因為當天漲了6.88%。

setBarFreq("D");
var: myBar(0);
if date=GetField("除權息日期") then myBar=currentBar;
value1=currentBar-myBar;
if value1<5 and value1>=0 then
    begin
        value2=100*(c/GetField("參考價")-1);
        if Symbol ="2368.TW" then ret=1;
        outputField1(GetField("漲跌幅", "D"),"漲跌幅");
    end;

發表回覆
Close