Hi 大大們好,
我有一個盤後選股策略是日頻率執行, 我想要盤中監控價格是否有突破100天的最高收盤價
請問要如何做呢?因為盤中監控的話就會改成是分鐘頻率, Highest期數欄位會變成分鐘K的, 抓不到100天的資料
請問這種情況要如何做呢?
Hi 大大們好,
我有一個盤後選股策略是日頻率執行, 我想要盤中監控價格是否有突破100天的最高收盤價
請問要如何做呢?因為盤中監控的話就會改成是分鐘頻率, Highest期數欄位會變成分鐘K的, 抓不到100天的資料
請問這種情況要如何做呢?
Hi 許教授,
感謝提供資訊
但想請教一下 highest 後面的參數不是期數嗎? 如果用5分鐘頻率去跑的話, 不會拿到近期100根5分k的最高價嗎?
Hi 許教授,
input:period(200, "計算天數");
setBackBar(period, "D");
if position=0 and filled=0 and date<>date[1] then begin
condition1=currentTime>132500 and close>=Highest(getField("收盤價","D"), period) and volume>300;
condition2=closeD(1)>=Highest(getField("收盤價","D"), period) and getField("成交量","D")[1]>300;
if condition1 or condition2 then setposition(1, MARKET);
end;
if position=1 and filled=1 then begin
if DateDiff(date, filledrecordDate(filledrecordCount)) >= 28
then setposition(0, MARKET);
end;
這是我目前的交易腳本, 在回測交易紀錄下面發現有些股票不會被篩到, 像是附件這張圖
我用選股策略回測的結果, 均豪在2024/3/5的收盤價已經是近200天最高收盤價了,
但是沒有被我的交易腳本選到, 是不是哪邊有甚麼bug我忽略掉了呢?
將Highest(getField("收盤價","D"), period) 改成 Highest(getField("收盤價","D")[1], period) 看看
改成這樣好像就完全抓不到了, 不知道 highest 的判斷邏輯是甚麼
另外我是有觀察到沒選到的都有一條上引線
不知道是不是 highest 的比價是拿所有價格來比較而不是用收盤價
均豪3/5的condition1及condition2都是false,並沒有高於200天的最高價。
setTotalBar(5000);
input:period(200, "計算天數");
setBackBar(period, "D");
condition1=currentTime>132500 and close>=Highest(getField("收盤價","D"), period) and volume>300;
condition2=closeD(1)>=Highest(getField("收盤價","D"), period) and getField("成交量","D")[1]>300;
print(date,time,condition1,condition2);
Hi 許教授,
感謝資訊,這正好符合我想問的
請問有其他函數可以比較最高收盤價而不是最高價嗎?
Highest(getField("收盤價","D"), period)傳回的就是最高的收盤價。
Highest(getField("最高價","D"), period)才是傳回最高的最高價。
Hello Jeffrey,
小編補充,highest 函數是使用節省效能的方式撰寫,並不支援跨頻率運算。
您可以使用 simplehighest 來取代。
感謝 虎科大許教授 的熱心回覆。
10 評論