我想要把全市場上市不足40日跟超過40日的股票用程式分開來,採用PT,日線2015/1/1~今天,程式如下
左邊策略:
A股票上市已久(自2015前就有),B股票近期上市不到40日,主要問題在函數closed抓取的問題上,
A股票的closed應為正數,B股票的closed應等於-1,但實際用PT去跑,結果兩支股票的closed都是-1
似乎抓取期間是以K棒數較少的股票為準?
或是有其他建議的寫法?
謝謝
對於行情的K棒而言,開始有K棒才會有計算
所以前 40根日K,都是0
之後才會是你要的,新商品,是有K棒40天後才不會是 1
而且closeD是從程式開始計算才開始,所以是 最大策略K棒數 + 40 天之後,才會變成 1
因為如果input設定40,最大K也至少要設40,但不滿40天的股票會無法執行
所以我才改放在variable裡,最大K設定為1,這樣就能執行
但你的意思是即便放在variable裡,可以執行,但在運算上,仍會在40根K棒後才計算是嗎?
我把A商品放strategy1,B放strategy2,個別執行都沒問題,
A從2015年起的第40根開始print,closed有值,B從2017/0208開始print(因B商品02/07上市,最大K設1),closed=-1
但若strategy1、strategy2一起執行,print出來的結果只顯示2017/02/08後的資料
B商品的closed都是-1我沒有疑慮,我好奇的是A商品在02/08以前的資料PT都沒有運算?
所以我才以為PT的運算是否依,股票池中K棒數最少的商品來決定資料計算的起始點?
print的結果如下
只執行strategy1 (只有A商品)
date symbol closed stay
只執行strategy2 (只有B商品)