漲跌停默認似乎只能靠動態函數,那么歷史圖表數據就錯誤了。
我搜索論壇發覺有個寫法,于是我拿來用了下,在歷史數據下是可以的。
公式如下:
以下內容為程序代碼:
1 INPUT:DDD(6,4,20,1);
2 結算價:TRIMPRICE(AMOUNT/VOL/MULTIPLIER);//日周期下有效
3 前結算價:ref(結算價,1);//日周期下有效
4 當日漲停:INTPART((1+DDD/100)*前結算價);
5 當日跌停:INTPART((1-DDD/100)*前結算價);
以上是對應白銀6%幅度
然后我通過在交易公式調用
以下內容為程序代碼:
1 漲停:STKINDIEX(STKLABEL,'前結.當日漲停',0,6,0,0),NODRAW;
2 跌停:STKINDIEX(STKLABEL,'前結.當日跌停',0,6,0,0),NODRAW;
3
ok ,完美獲得 漲跌停計算模式。 交易所亂放開縮小日子畢竟是少數,可以覆蓋多數周期測試。
看上去它是如此完善。。。
"注意這是北京時間模式下"
21:00開盤我觀察了下于是就悲劇了
在21:00之后 依據交易所規矩這是第二天的開盤價,也就是夜盤21:00開始的漲跌停新的才對。
于是在公式調用就會出現一會是昨日(下午3:00收盤時刻漲跌停), 一會是今日21:00后得到新數據。
這在歷史數據時刻是可以發現的, 一直持續到 0:00分 漲跌停數據才穩定住成新的。
當然我知道這一問題是夜盤時間關系。
我是來尋求改善寫法。
所有非日線時刻之下 5,15,30,60 分 在 21:00-23:59 歷史數據都是"調用前一天" 盤中則數據閃爍。
在 0:00 則立即穩定 到 15:00
北京時間問題?
你這邊調用當天日線,今天晚上去調用當天日線的話自然還是今天了(雖然交易所把晚上的日算到明天了)
所以程序化建議用金字塔時區,你這個恰好也是用北京時區情況下會出現的意外。
你這邊調用當天日線,今天晚上去調用當天日線的話自然還是今天了(雖然交易所把晚上的日算到明天了)
所以程序化建議用金字塔時區,你這個恰好也是用北京時區情況下會出現的意外。
有可能在“北京時區”把這問題解決嗎? 我跑不是一個,改時區要把別跑程序也改過,這出bug概率就大大增加了
我試圖去解決問題
以下內容為程序代碼:
1 時間:=time>=210500 and time<=235500;
2 ZZ1:=漲停1<>ref(漲停1,1) and 時間;
3 DD1:=跌停1<>ref(跌停1,1) and 時間;
4 漲停:if(ZZ1,漲停1,ref(漲停1,1)),NODRAW;
5 跌停:if(DD1,跌停1,ref(跌停1,1)),NODRAW;
定義時間區間,之后我考慮用IF判斷。 上述代碼沒有實現目標。
這樣看下呢,晚上的引用日線向后便宜一位
if 時間:=time>=210500 and time<=235500 THEN
begin
漲停:=STKINDIEX(STKLABEL,'前結.當日漲停',0,6,1,0),NODRAW;
跌停:=STKINDIEX(STKLABEL,'前結.當日跌停',0,6,1,0),NODRAW;
end
else
begin
漲停:=STKINDIEX(STKLABEL,'前結.當日漲停',0,6,0,0),NODRAW;
跌停:=STKINDIEX(STKLABEL,'前結.當日跌停',0,6,0,0),NODRAW;
end