如下 今日7/6查詢選股的日期為7/3,區間漲幅為20.93
如果要查7/4的區間漲幅,該如何?

在選股中心,你貼圖的第二行「最新」按鈕的右邊向右按鈕「>」按一下,就會顯示7月4日的數據。
這樣顯示的是7/4-7/5號的區間漲幅
而想要的是7/3-7/4的,增加次日的區間漲幅
因為有可能新策略測試時,要選先前日期如7/1 ,7/1-7/2的區間漲幅 or 7/1-7/3的區間漲幅的觀察
你用手動的方式,在編輯選股策略的視窗中,選擇近N日漲幅,例如近3日漲幅大於5趴,則7/5選出的股票是7/3到7/5符合條件的股票。你切換到7/3的選股結果,代表選出的股票是7/1-7/3漲幅超過5%的股票,切換到7/4,選出的是7/2-7/4的股票。若你希望同時具備其他條件的選股,例如上述情況下,同時顯示近2日的漲幅,則需要撰寫程式處理。
程式如何撰寫?
從今天往前一日可用[1],但從選擇的日期->往日後,不知該如何下筆!
outputField1(rateOfChange(c,1),"最近一日漲幅");
RateOfChange = ( 當期價格 / N期前價格 - 1 ) * 100
以3072為例,7/3收盤價90.3、7/4=93.7、7/5=92.6、7/2=83.5
最近一日漲幅=8.14,(90.3/83.5-1)*100=8.14===>7/2-7/3(選股前一日漲幅)計算不符合所需
次日漲幅=(93.7/90.3-1)*100=3.76 ==>7/3-7/4這是想要的資訊

就7/3而言,7/4是未來的資料(雖然從7/5來看,已是歷史資料)。XQ無法計算未來資料。
那有最新成交日(也算是歷史資料)的區間漲幅是如何執行出來的?
是否有相關函數可以來修改
找了一個函數修改
input:price(numeric);
input:startday(numeric);
input:endday(numeric);
value1=getbaroffset(startday);
value2=getbaroffset(endday);
value3=(price[value2]/price[value1])-1 ;
rateofchangeA=value3*100;
選股腳本,
1.選股日=起始日,執行後為何漲幅=0 ?
2.選股日 > 起始日,執行後則有漲幅,但好像也非指定期間
觀察好像 (起始價=起始日,結束價=選股日)
input:startday(20240702,"區間起始日");
input:endday(20240705,"區間結束日");
if condition2
//and condition3
and (condition3 or condition4)
then ret=1;
outputfield1(rateofchangeA(close,startday,endday),"區間漲跌幅");
outputField2(close[getbaroffset(startday)],"起始日價");
outputField3(close[getbaroffset(endday)],"結束日價");

---

翻了自己選股也有計算區間漲跌幅 但好像寫錯的語法 但會顯示 要不試試看??
input:startday(20240702,"區間起始日");
input:endday(20240705,"區間結束日");
value11=rangechange(close,startday,endday);
outputfield1(value11,"區間漲跌幅");
11 評論