 |
kny.lee8402
資深會員
註冊日期: Feb 2005
來 自: Taipei
文章數量: 118 |
|
求已知方塊內成份股總成交量?
請教版主:
為何用 :
//
NP:=STKCOUNT('PUT'); //Get total count of members in the PUT block
NC:=STKCOUNT('CALL'); //Get total count of members in the CALL block
VPUT:=0;
VCALL:=0;
//
For i=1 To NP Do Begin
VPUT:VPUT+STKINDI(STKFROMBLK('PUT',i),'VOL.成交張數',0,-1),ColorGREEN;
End;
//
For i=1 To NC Do Begin
VCALL:VCALL+STKINDI(STKFROMBLK('CALL',i),'VOL.成交張數',0,-1),ColorRED;
End;
//
可找出方塊成員總數, 而 用 "For .. Do.. End" 卻 得不到 正確的 個別方塊總成交量?
不了解哪裡出錯? 請幫忙... 謝謝你!
__________________
阿德
|
|
向版主報告此篇 |  |
|
2006-09-21 17:52 |
|
|
|  |
 |
kny.lee8402
資深會員
註冊日期: Feb 2005
來 自: Taipei
文章數量: 118 |
|
引用: 最初由 cgjj 發表
以 Put 修改為範例
NP:=STKCOUNT('PUT'); //Get total count of members in the PUT block
VPUT:0 ColorGREEN;
For i=1 To NP Do Begin
temp:=STKINDI(STKFROMBLK('PUT',i),'VOL.成交張數',0,-1);
if lbound(temp)>0 then VPUT:=VPUT+temp;
End;
重點在於:
1.迴圈內不要放置任何輸出語句
2.累加時應考量股票是否為有效數據
//
瞭解, 但是:
1. PUT BLOCK的總成交量 數目已經對了, 但只有三天量.
2. CALL BLOCK 的總成交量 數目, 仍然不對, 而且也只有三天量.
CALL BLOCK 的 "TXO61J 610台指C6100" 和 "TXO60J 610台指C6000" 是自 9月來 一直為未開倉,或夾雜著 "空盤", 可能有 "無效數據" 之故,
相信 CALL,PUT BLOCK 都有這樣子的問題, 請問要如何避開 "無效數據"?
3. "三天量" 好像是只要是 前 "三天" 有 "空盤" 就算不準了....
//
更正過後的公式片段如下: 請指導:
//
NP:=STKCOUNT('PUT'); //Get total count of members in the PUT block
NC:=STKCOUNT('CALL'); //Get total count of members in the CALL block
VPUT:=0;
VCALL:=0;
//
For i=1 To NP Do Begin
TempP:=STKINDI(STKFROMBLK('PUT',i),'VOL.成交張數',0,-1);
If Lbound(TempP)>0 then VPUT:=VPUT+TempP;
End;
//
For i=1 To NC Do Begin
TempC:=STKINDI(STKFROMBLK('CALL',i),'VOL.成交張數',0,-1);
If Lbound(TempC)>0 then VCall:=VCall+TempC;
End;
//
買權量:VCall;
賣權量:VPUT;
__________________
阿德
|
| 最後由 kny.lee8402 在 2006-09-21 22:24 編輯 |
向版主報告此篇 |  |
|
2006-09-21 22:07 |
|
|
|  |
 |
kny.lee8402
資深會員
註冊日期: Feb 2005
來 自: Taipei
文章數量: 118 |
|
引用: 最初由 cgjj 發表
只有三天量, 可能的原因是
該板塊中某個商品只有三天的數據
因為並非每個商品的數據長度
都和您計算當前的商品一樣長
您將所有商品直接加總
奇狐只呈現數值均有效的部份
要解決這問題必需於加總前
先處理數據有效長度的問題
方法請看以下範例:
原碼:
cc:ma(c,30); //數據自第30根開始有效
LB:=lbound(cc); //保存數據原來有效起始位置
x:=SETLBOUND(cc,1); //變更數據有效起始位置為1
cc:=if(barpos<LB or LB=0,0,cc); //將原來無效數據的部份值設為0
如此處理
即可加總到與目前觀看商品同樣的數據長度
//
瞭解, 謝謝你!
我再試看看..
__________________
阿德
|
|
向版主報告此篇 |  |
|
2006-09-22 00:39 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1891 |
|
我用自定義板塊
具體做法就是在 板塊\分類板塊\其他\新建分類板塊 當月賣權
然後到 台指選權 中選擇當月賣權的所有相關名稱加入到 當月賣權
出來的數據和實際不符合
不知該如何修正 煩請指導
謝謝您
NP:=STKCOUNT('當月賣權'); //Get total members in the PUT block
VPUT:=0;
For i=1 To NP Do Begin
tempP:=STKINDI(STKFROMBLK('PUT',i),'VOL.成交張數',0,-1),colorGREEN;
LB:=lbound(tempP); //保存數據原來有效起始位置
x:=SETLBOUND(tempP,1); //變更數據有效起始位置為1
cc:=if(barpos<LB or LB=0,0,tempP);
if lbound(cc)>0 then VPUT:=VPUT+CC;
End;
賣權量:VPUT,colorGREEN;
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2006-09-22 00:42 |
|
|
|  |
 |
kny.lee8402
資深會員
註冊日期: Feb 2005
來 自: Taipei
文章數量: 118 |
|
引用: 最初由 peter109 發表
我用自定義板塊
具體做法就是在 板塊\分類板塊\其他\新建分類板塊 當月賣權
然後到 台指選權 中選擇當月賣權的所有相關名稱加入到 當月賣權
出來的數據和實際不符合
不知該如何修正 煩請指導
謝謝您
NP:=STKCOUNT('當月賣權'); //Get total members in the PUT block
VPUT:=0;
For i=1 To NP Do Begin
tempP:=STKINDI(STKFROMBLK('PUT',i),'VOL.成交張數',0,-1),colorGREEN;
LB:=lbound(tempP); //保存數據原來有效起始位置
x:=SETLBOUND(tempP,1); //變更數據有效起始位置為1
cc:=if(barpos<LB or LB=0,0,tempP);
if lbound(cc)>0 then VPUT:=VPUT+CC;
End;
賣權量:VPUT,colorGREEN;
//
你的 "當月賣權' 板塊 也就是 相當於 我用的 "PUT" 板塊,
請把:
tempP:=STKINDI(STKFROMBLK('PUT',i),'VOL.成交張數',0,-1);
改為:
tempP:=STKINDI(STKFROMBLK('當月賣權'',i),'VOL.成交張數',0,-1);
再看看, 我還沒試 版主 建議的 方法ㄝ.. 太晚了 明天再試.. Bye!
__________________
阿德
|
|
向版主報告此篇 |  |
|
2006-09-22 01:02 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1891 |
|
多謝提醒遺漏處
盤後再看
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2006-09-22 11:34 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1891 |
|
Hummm .....
計算出來的值 ( 今日買權量99015 ) 還是和實際總量 ( 98663 ) 不符合
版大
幫忙看一下 問題出在哪裡
附圖是 當月買權板塊 內容
peter109 附帶上了此圖片:
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2006-09-22 14:12 |
|
|
|  |
 |
kny.lee8402
資深會員
註冊日期: Feb 2005
來 自: Taipei
文章數量: 118 |
|
引用: 最初由 peter109 發表
Hummm .....
計算出來的值 ( 今日買權量99015 ) 還是和實際總量 ( 98663 ) 不符合
版大
幫忙看一下 問題出在哪裡
附圖是 當月買權板塊 內容
//
Peter109兄,
如果你手動刪掉 "空盤" (當日無量) 的買賣權商品後, 資料應該就會正確. 以 10月 6000call 為例, 至今應該都是空盤, 但是它卻會造成誤算, 要如何靠公式解決, 還在努力中.
//
NP:=STKCOUNT('PUT'); //Get total count of members in the PUT block
NC:=STKCOUNT('CALL'); //Get total count of members in the CALL block
VPUT:=0;
VCALL:=0;
//
For i=1 To NP Do Begin
TempP:=STKINDI(STKFROMBLK('PUT',i),'VOL.成交張數',0,-1);
LB:=lbound(tempP); //保存數據原來有效起始位置
XP:=SETLBOUND(tempP,1); //變更數據有效起始位置為1
CC:=if(barpos<LB or LB=0,0,tempP);
if lbound(cc)>0 then VPUT:=VPUT+CC;
End;
//
For i=1 To NC Do Begin
TempC:=STKINDI(STKFROMBLK('CALL',i),'VOL.成交張數',0,-1);
LB:=lbound(tempC); //保存數據原來有效起始位置
XC:=SETLBOUND(tempC,1); //變更數據有效起始位置為1
CC:=if(barpos<LB or LB=0,0,tempC);
if lbound(cc)>0 then VCall:=VCall+CC;
End;
//
買權量:VCall,ColorRED,LineThick1;
賣權量:VPUT,ColorGREEN,LineThick1;
//
在 For ..End loop 內,
TempP:=STKINDI(STKFROMBLK('PUT',i),'VOL.成交張數',0,-1);
TempC:=STKINDI(STKFROMBLK('CALL',i),'VOL.成交張數',0,-1);
由於還沒想到正確的方法.只加總相同時間的
的 'VOL.成交張數' 造成 商品的資料檔, 若是空盤, 或 時間不連續.
加總時無法判斷, 而把它們當做是連續的資料以致於 結果'錯誤.
請問版主, 你有沒有更好的方法?
kny.lee8402 附帶上了此圖片:
__________________
阿德
|
| 最後由 kny.lee8402 在 2006-09-22 19:33 編輯 |
向版主報告此篇 |  |
|
2006-09-22 16:21 |
|
|
|  |
 |
kny.lee8402
資深會員
註冊日期: Feb 2005
來 自: Taipei
文章數量: 118 |
|
引用: 最初由 cgjj 發表
以 611台指C6600來說
它有日K但只到 2006/09/18
該天成交張數量為 1
若於加權指數去引用它(611台指C6600)
因加權指數日K到 2006/09/22 (今日)
引用時會自動延伸 2006/09/18 的數據到最今日
技術上
您可於加總時加入日期判斷
只加總該商品數據日期同加權指數日期的總張
如: VPUT:=VPUT+CC * (Date1=Date2);
//
只加總該商品數據日期同加權指數日期的總張,
是應該改為以 "台指期貨" 為準, 否則 開收盤 時間又不同步, 公式不能用在 SUB DAY 的情況下?
//
很簡單的 時間 "引用" 的問題, 請教版主: 你如何在 LOOP 內, 得到
同步於 大盤 K棒 的 日期&時間 序號? 如果這問題可以解決, 那麼 我會有很多好點子可以使奇狐公式更好用(More powerfully).
//
所謂 "同步於 大盤 K棒 的 日期&時間 序號" 就是當你把 mouse cursor
停留在 大盤 任一 K 棒時, 畫面上顯示的 方塊資料, 如何可以被 公式引用?
//
__________________
阿德
|
| 最後由 kny.lee8402 在 2006-09-22 20:37 編輯 |
向版主報告此篇 |  |
|
2006-09-22 19:48 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18258 |
|
只加總該商品數據日期同加權指數日期的總張,
是應該改為以 "台指期貨" 為準, 否則 開收盤 時間又不同步, 公式不能用在 SUB DAY 的情況下?
我舉的例子不太好(以日線為思考)
對於日線上, 公式於加權指數跑或台指期貨跑
是沒有差別的, 都會得到該日的總張
若您於分鐘線就該換為 "台當月"
很簡單的 時間 "引用" 的問題, 請教版主: 你如何在 LOOP 內, 得到
同步於 大盤 K棒 的 日期&時間 序號? 如果這問題可以解決, 那麼 我會有很多好點子可以使奇狐公式更好用(More powerfully).
所謂 "同步於 大盤 K棒 的 日期&時間 序號" 就是當你把 mouse cursor
停留在 大盤 任一 K 棒時, 畫面上顯示的 方塊資料, 如何可以被 公式引用?
關鍵就在 Date1 和 Date2 喔
一是子公式取得的K棒日期(選權商品)
一是母公式本身的K棒日期(台當月)
分鐘線則改取 Time 比較即可
建議您寫一小公式體會一下:
用 "台當月" 跑子公式去引用 "611台指C6600" 商品的數據日期
再與 "台當月" 本身的數據日期比較
去觀察尾端 "611台指C6600" 沒數據的情況
這樣您就會利用該特質來做判斷了 
|
|
向版主報告此篇 |  |
|
2006-09-22 23:42 |
|
|
|  |
 |
kny.lee8402
資深會員
註冊日期: Feb 2005
來 自: Taipei
文章數量: 118 |
|
了解, 謝謝版主!
__________________
阿德
|
|
向版主報告此篇 |  |
|
2006-09-23 00:06 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|