奇狐社區論壇
在這個頁面顯示本主題全部的 13 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [尋找]壓縮數組的公式 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=14915)


由 kuolung 在 2011-01-01 21:51 發表:

[尋找]壓縮數組的公式

請教大大,我有一個數組,運算完成後,中間產生很多 0 值的元素,請問有什麼涵數可以壓縮數組,把0值刪除


由 cgjj 在 2011-01-03 09:41 發表:

回覆: [尋找]壓縮數組的公式

引用:
最初由 kuolung 發表
請教大大,我有一個數組,運算完成後,中間產生很多 0 值的元素,請問有什麼涵數可以壓縮數組,把0值刪除


數組位置通常與K棒位置是相對應的
您是要如何壓縮呢? 有何用途?


由 kuolung 在 2011-01-03 13:40 發表:

因為我寫了一個程式。算出了,我想要的位置的值,其他部份都是零值,但是這個位置沒有固定的間隔,我想把這些零值移除,這樣我就可以知道數組中前一個值在那裡了,或是有什麼函數可以知道前一非零值的數組資料

這個就很像是用 ref(high,1) , 可以知道前一個週期的最高價,現在我的數組是不確定週期的,好像就不能用這個方式求出我數組中的前一個值是多少了

例我的數組是 updown

ref( updown,1) 會算出 0 ,但我想找出前一個非零值的數


由 cgjj 在 2011-01-03 13:45 發表:

引用:
最初由 kuolung 發表
因為我寫了一個程式。算出了,我想要的位置的值,其他部份都是零值,但是這個位置沒有固定的間隔,我想把這些零值移除,這樣我就可以知道數組中前一個值在那裡了,或是有什麼函數可以知道前一非零值的數組資料

這個就很像是用 ref(high,1) , 可以知道前一個週期的最高價,現在我的數組是不確定週期的,好像就不能用這個方式求出我數組中的前一個值是多少了

例我的數組是 updown

ref( updown,1) 會算出 0 ,但我想找出前一個非零值的數



ref(updown, BARSLAST(updown<>0))


由 kuolung 在 2011-01-03 13:52 發表:

謝謝,這個可以解決我的問!,但又出了一個問題,用 ref(updown, BARSLAST(updown<>0))

如何知道前一個數值,相對於那一支 k bar 的值


由 cgjj 在 2011-01-03 14:35 發表:

引用:
最初由 kuolung 發表
謝謝,這個可以解決我的問!,但又出了一個問題,用 ref(updown, BARSLAST(updown<>0))

如何知道前一個數值,相對於那一支 k bar 的值


updownsp:=BARSLAST(updown<>0);
ref(updown, updownsp);
ref(close, updownsp); //取那根收盤價


由 kuolung 在 2011-01-05 13:52 發表:

我的程式出來的數組是
HP : 高點的集合

以下是我的應用計算

AH : BARSLAST(HP<>0);

變成 AH 原來的零值,會等於前一個值
這樣我用 REF(AH,1) 就只會找到這個一個值,


由 cgjj 在 2011-01-05 14:05 發表:

引用:
最初由 kuolung 發表
我的程式出來的數組是
HP : 高點的集合

以下是我的應用計算

AH : BARSLAST(HP<>0);

變成 AH 原來的零值,會等於前一個值
這樣我用 REF(AH,1) 就只會找到這個一個值,



不太懂您的問題(請詳細描述), 看看這樣是否為您要的結果
SP:=BARSLAST(HP<>0);
XH: REF(AH,SP);


由 kuolung 在 2011-01-10 11:09 發表:

經我剛剛測試的結果,

BARSLAST(HP<>0);

是找出上一個 HP <> 0 的週期數,
如果用 REF( HP, BARSLAST(HP<>0) ; 的方式,只是把中間的零值用,上一個非零週期的值,填入中間零值的地方,這樣就不能再用下面的方式找到第二個非零值的位置

HPL := REF(HP,BARSLAST(HP<>0));
HP1 := REF(HPL,1) ;
HP2 := REF(HPL,2) ;

我想做的是,經壓縮後,還是可以和原來的k棒相關連的壓縮中間的零值位置


由 kuolung 在 2011-01-10 11:13 發表:

[求救][問題]尋找上二次條件成立的位置

請教老師
我們使用 BARSLAST(HP>0) 可以找到上次條件成立的位置,就是HP>0 的位置,
現在我們想找到前第二個 HP > 0 的位置,請問該如何寫


由 cgjj 在 2011-01-10 11:28 發表:

回覆: [求救][問題]尋找上二次條件成立的位置

引用:
最初由 kuolung 發表
請教老師
我們使用 BARSLAST(HP>0) 可以找到上次條件成立的位置,就是HP>0 的位置,
現在我們想找到前第二個 HP > 0 的位置,請問該如何寫



//看看是否為您要的
CK:=HP<>0;
HP1: REF(HP, sumbars(CK,1)-1);
HP2: REF(HP, sumbars(CK,2)-1);


由 kuolung 在 2011-01-10 11:36 發表:

回覆: 回覆: [求救][問題]尋找上二次條件成立的位置

引用:
最初由 cgjj 發表
//看看是否為您要的
CK:=HP<>0;
HP1: REF(HP, sumbars(CK,1)-1);
HP2: REF(HP, sumbars(CK,2)-1);




謝謝老師,好像可以了,那我們是不是可以以此累推要找第三個就用

HP3:REF(HP,SUMBARS(CK,3)-1);

找第4個

HP4:REF(HP,SUMBARS(CK,4)-1);

...
...


由 cgjj 在 2011-01-10 11:43 發表:

回覆: 回覆: 回覆: [求救][問題]尋找上二次條件成立的位置

引用:
最初由 kuolung 發表
謝謝老師,好像可以了,那我們是不是可以以此累推要找第三個就用

HP3:REF(HP,SUMBARS(CK,3)-1);

找第4個

HP4:REF(HP,SUMBARS(CK,4)-1);

...
...



Yes


全部時間均為台灣時間, 現在時間為16:36
在這個頁面顯示本主題全部的 13 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.