COCO研究院

 找回密碼
 註冊
搜索
查看: 6016|回復: 12

關於時間序列資料固定區間之語法

[複製鏈接]
發表於 16-3-2 17:20 | 顯示全部樓層 |閱讀模式
大家好:

小弟近日在嘗試進行一個語法

目標是 把時間序列資料 變成每個固定區間 資料不重覆引入指標

一開始是想抓 每100個時間序列內之最高價  

假設 資料是1到10000 共1萬筆

一般highest(h,100)是把h[0]到h[99]中最高者抓出

就如同是把1-100抓出 然後隨時間推出又抓2-101  

但小弟希望的是

1-100
101-200
201-300

這個模式  目前所想到是

vi=0 to 99
xi=0 to 99

f[vi]=maxlist[h[[xi]+(100*[vi])]]

如此之下

fv0=maxlist[h[0],[1],[2],[3]...[99]]
fv1=maxlist[h[100],h[101],[102]...h[199]]

不知道是否有其他寫法呢?

請大家不吝指教

Max

 樓主| 發表於 16-3-4 09:08 | 顯示全部樓層
TrendRover哥  小弟確實是想要您說的那樣 但也很感謝大家指導
還在思考怎麼寫比較接近中 感謝
回復 支持 0 反對 1

使用道具 舉報

發表於 16-3-3 08:49 | 顯示全部樓層
Arrays: RangeHigh[10](0) ,RangeLow[10](0);
vars:Counter(1),StepGap(100),LookBack(100) ;

For Counter = 0 to 9 Begin
   Value1 = Counter*StepGap;
   RangeHigh[Counter] = Highest(High,LookBack)[Value1] ;
end ;

這樣子迴圈完成後 ,陣列內 RangeHigh[0] ~ RangeHigh[9] 內就會存每隔 100根K棒位置的100根K棒的最高價



評分

參與人數 1金錢 +5 收起 理由
TrendRover + 5 太強了

查看全部評分

 樓主| 發表於 16-3-3 13:43 | 顯示全部樓層
謝謝 easytrader788哥  晚點來研究研究
發表於 16-3-4 03:53 | 顯示全部樓層
本帖最後由 TrendRover 於 16-3-4 04:01 編輯
easytrader788 發表於 16-3-3 08:49
Arrays: RangeHigh[10](0) ,RangeLow[10](0);
vars:Counter(1),StepGap(100),LookBack(100) ;

版主要得應該是 BarNumber 0-99 一直推進.
(但版主舉 High[0] High[1] 根本和他想要的不一樣---因為 High[0] 永遠是the last bar非 BarNumber first )

你寫得這個會隨最後一根 bar位置變動一直調整 10個array 值 ,
不知我有想錯嗎?




發表於 16-3-4 04:46 | 顯示全部樓層
本帖最後由 TrendRover 於 16-3-4 04:48 編輯

版大想要的就把當今的時間 X100當做  data2 (例如  1K圖 加 data2 是 100K )  

然後去取
    High of data2[0]   data2 [1] .............
這樣就排的整齊對準 每100跟,然後不滿100跟的還會一值update



 樓主| 發表於 16-3-4 10:15 | 顯示全部樓層
小弟主要是在想處理   HighD(1)這語法  他是去找昨日最高  

但小弟想找的是 前100個區間最高 比方h[100]-h[199]找出最高是h[123]=value1

然後隨著時間序列不停推進 當滿100個資料點後 再從前100個資料內找出最高



發表於 16-3-4 21:16 | 顯示全部樓層
maxhamax 發表於 16-3-4 09:08
TrendRover哥  小弟確實是想要您說的那樣 但也很感謝大家指導
還在思考怎麼寫比較接近中 感謝 ...

原本可以用BarNumber 來寫絕對的bar 0~99  100~199 ,但我門設定圖時是5000 bar back fill historical or 5 day backfilled 這都表示昨天的5000 bar 和今天的5000bar 的絕對bar 0 不一樣.
所以為一精準的試時間:用時間做定位 :chart 1 sec ===> 把每次 sec 0 bar 對準 20160304 00:00 這樣然後 bar 0 ~99 改成 bar 0~59
每60跟 .
這樣就有絕對的座標 而非每天圖都在變得相對座標---回測才不回變來變去~

發表於 16-3-5 17:08 | 顯示全部樓層
easytrader788 發表於 16-3-3 08:49
Arrays: RangeHigh[10](0) ,RangeLow[10](0);
vars:Counter(1),StepGap(100),LookBack(100) ;

迴圈解析

Counter = 0
Value1 = Counter*StepGap = 0 * 100 = 0
RangeHigh[Counter] = Highest(High,LookBack)[Value1] --> RangeHigh[0] = Highest(High,100)[0]  {最近 100根}


Counter = 1
Value1 = Counter*StepGap = 1 * 100 = 100
RangeHigh[Counter] = Highest(High,LookBack)[Value1] --> RangeHigh[1] = Highest(High,100)[100] {往前100根K棒位置的最近 100根內最高價}



Counter = 2
Value1 = Counter*StepGap = 2 * 100 = 200
RangeHigh[Counter] = Highest(High,LookBack)[Value1] --> RangeHigh[1] = Highest(High,100)[200] {往前200根K棒位置的最近 100根內最高價}


同理 .....


Counter = 9
Value1 = Counter*StepGap = 9 * 100 = 900
RangeHigh[Counter] = Highest(High,LookBack)[Value1] --> RangeHigh[1] = Highest(High,100)[900] {往前900根K棒位置的最近 100根內最高價}


這樣就取得從目前位置開始 ,每間隔 100根位置 ,區間100根K棒的最高價 ,然後BarNumber每次變動 ,就會重新再計算一次


如果在特定時間K棒記錄後 ,就固定下來 ,不要再隨著 BarNumber移動而變動 Ex 30分K  , 2016/3/1 , 11:45 當根作基準
if date = 1160301 and time = 1145 then begin
For Counter = 0 to 9 Begin
   Value1 = Counter*StepGap;
   RangeHigh[Counter] = Highest(High,LookBack)[Value1] ;
end ;
end ;


那麼 2016/3/1 11:45 以後的K棒 ,都可以從陣列中取得相同的區間最高價




 樓主| 發表於 16-3-5 23:12 來自手機 | 顯示全部樓層
感恩easytrader788哥 小弟來試試 謝謝
 樓主| 發表於 16-3-10 23:50 | 顯示全部樓層
小弟跑起來 好像沒資料

Arrays: RangeHigh[10](0) ,RangeLow[10](0);
vars:Counter(1),StepGap(100),LookBack(100) ;

if date = 1160309 and time = 0845 then begin
For Counter = 0 to 9 Begin
    Value1 = Counter*StepGap;
    RangeHigh[Counter] = Highest(High,LookBack)[Value1] ;
end ;
end ;

plot1(RangeHigh[1]);

不知是否哪裡有誤?

發表於 16-12-14 19:57 | 顯示全部樓層
一分K的起始K 時間為 0846 , 五分K的起始K棒時間是 0850
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-22 22:59

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |