![]() |
在這個頁面顯示本主題全部的 13 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 自定義K棒 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=22733)
自定義K棒
想由分筆盤差數據自定義K棒(一分鐘線)
KLINE(盤差O,盤差H,盤差L,盤差C,1)
盤差:=SUM(buyvol,0)-SUM(sellvol,0);
ck:=MINUTE<>ref(MINUTE,1) or barpos=1;
SP:=barslast(ck)+1;
盤差H:hhv(盤差,SP);
盤差L:LLv(盤差,SP);
請教版主 盤差O跟盤差C 怎麼寫?
謝謝
回覆: 自定義K棒
引用:
最初由 ryan 發表
想由分筆盤差數據自定義K棒(一分鐘線)
KLINE(盤差O,盤差H,盤差L,盤差C,1)
盤差:=SUM(buyvol,0)-SUM(sellvol,0);
ck:=MINUTE<>ref(MINUTE,1) or barpos=1;
SP:=barslast(ck)+1;
盤差H:hhv(盤差,SP);
盤差L:LLv(盤差,SP);
請教版主 盤差O跟盤差C 怎麼寫?
謝謝
是這樣子嗎
盤差:=SUM(buyvol,0)-SUM(sellvol,0);
ck:=MINUTE<>ref(MINUTE,1) or barpos=1;
SP:=barslast(ck)+1;
盤差O:ref(盤差,SP-1);
盤差H:hhv(盤差,SP);
盤差L:LLv(盤差,SP);
盤差C:盤差
..................................
引用於一分線
盤差O:=STKINDI('','FB.盤差O',0,0);
盤差H:=STKINDI('','FB.盤差H',0,0);
盤差L:=STKINDI('','FB.盤差L',0,0);
盤差C:=STKINDI('','FB.盤差C',0,0);
KLINE(盤差O,盤差H,盤差L,盤差C,0)
(圖形所示,如同版主所說的 切割的方式不對
一堆的缺口)
回覆: 回覆: 自定義K棒
引用:
最初由 cgjj 發表
盤差O 就是該分第一值,也就是 ref(盤差,SP-1);
盤差C 就是當前的盤差值
用分筆成交算的東西,僅當日有數據可看唷
且計算量非常龐大,不建議如此用!
另外, 奇狐的分線也不是如此切割
它是切到 00 秒結束(00 秒最後一筆)
詳見:
http://www.chiefox.com.tw/help/v52/KHandleData.html
故不能單純用 MINUTE<>ref(MINUTE,1) 去判斷切割!
回覆: 回覆: 回覆: 自定義K棒
引用:
最初由 ryan 發表
那一分鐘的線是如何生成?
改成60秒會比較完美切割嗎?
http://www.chiefox.com.tw/bbs/showt...ht=%A4%C0%B5%A7
KT:=FLOOR(T0TOTIME(TIME0-1)/100);
LT:KT<>ref(KT,1) or barpos=1; //首
RT:refx(LT,1) or barpos=datacount; //末
這是5分鐘嗎?
可以用這個方式取第1筆跟最後1筆嗎?
Thanks
謝謝總版主的指導
下圖是今天早盤前15分鐘的分筆成交圖
以一分鐘盤差L跟盤差H為支撐壓力的階梯線
對於使用tick做當沖有不錯的幫助
想請教的是 五分鐘的盤差L跟盤差H 要如何寫
再次謝謝
回覆: Thanks
引用:
最初由 ryan 發表
謝謝總版主的指導
下圖是今天早盤前15分鐘的分筆成交圖
以一分鐘盤差L跟盤差H為支撐壓力的階梯線
對於使用tick做當沖有不錯的幫助
想請教的是 五分鐘的盤差L跟盤差H 要如何寫
再次謝謝
再次請教
謝謝總版主先前的指導
誠如總版主所說的 分筆的量非常的大
在開盤的當下指標是跑不動的
所以 以下的指標只是研究及好奇而已
無任何實戰之義意
先設引用指標FB:
盤差:SUM(buyvol,0)-SUM(sellvol,0),colorwhite,linethick2;
NN1:=60; //設60秒(1分)
FK:=barpos=1 or IsRegularFbar;
FS:=TIME0=ref(TIME0,barslast(FK));
KT:=FLOOR((TIME0-1+FS)/NN1);
LT:=KT<>ref(KT,1) or barpos=1; //K棒首筆
LTSP:=barslast(LT);
盤差O:ref(盤差,LTSP),coloryellow,linethick;
盤差H:HHV(盤差,LTSP+1),linedot, colorgreen;
盤差L:LLV(盤差,LTSP+1),linedot, colorred;
盤差C:盤差;
自定義K線FBK1:
盤差O:STKINDI('','FB.盤差O',0,0)linethick;
盤差H:STKINDI('','FB.盤差H',0,0)linethick;
盤差L:STKINDI('','FB.盤差L',0,0)linethick;
盤差C:STKINDI('','FB.盤差C',0,0)linethick;
KLINE(盤差O,盤差H,盤差L,盤差C,0);
再次請教
以自定義K線所產生的KD指標如下
似乎無差別 實用性不大
盤差O:STKINDI('','FB.盤差O',0,0)linethick;
盤差H:STKINDI('','FB.盤差H',0,0)linethick;
盤差L:STKINDI('','FB.盤差L',0,0)linethick;
盤差C:STKINDI('','FB.盤差C',0,0)linethick;
RSV:=(盤差C-LLV(盤差L,N))/(HHV(盤差H,N)-LLV(盤差L,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1)coloryellow;
再次請教
以自定義K線所產生的DMI指標如下
在圈圈處 似乎可以過濾一些雜訊
盤差O:STKINDI('','FB.盤差O',0,0)linethick;
盤差H:STKINDI('','FB.盤差H',0,0)linethick;
盤差L:STKINDI('','FB.盤差L',0,0)linethick;
盤差C:STKINDI('','FB.盤差C',0,0)linethick;
{Directional Movement Indicator , DMI , 動向指標 修正算法}
TR2:=SMA(MAX(MAX(盤差H-盤差L,ABS(盤差H-REF(盤差C,1))),ABS(盤差L-REF(盤差C,1))),N,1);
HD:=盤差H-REF(盤差H,1);
LD:=REF(盤差L,1)-盤差L;
DMP:=SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
DMM:=SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
PDIMP*100/TR2;
MDIMM*100/TR2,coloryellow;
ADX:SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXRADX+REF(ADX,M))/2;
再次請教
想代入多空線指標
卻發生 指標數組下標越界或超出有效數據區間
想請教的是 問題出在哪 如何修改才可以顯示指標(新手上路 還需多學習)
再次謝謝...
盤差O:=STKINDI('','FBK1.盤差O',0,0)coloryellow;
盤差H:=STKINDI('','FBK1.盤差H',0,0)colorgreen;
盤差L:=STKINDI('','FBK1.盤差L',0,0)colorred;
盤差C:=STKINDI('','FBK1.盤差C',0,0)colorwhite;
fo:=盤差O;fh:=盤差H;fl:=盤差L;fc:=盤差C;
fc[1]:=(2*fc[1]+fh[1]+fl[1])/4;
for i=2 to datacount do begin
fo[i]:=(fo[i-1]+fc[i-1])/2;
if fo[i]>fh[i] then fh[i]:=fo[i];
if fo[i]<fl[i] then fl[i]:=fo[i];
fc[i]:=(2*fc[i]+fh[i]+fl[i])/4;
end;
KK:=IF(fc>=fo AND (fc>=ref(fc,1) or ref(fc,1)>=ref(fo,1)),1,IF(fc<fo AND (fc<ref(fo,1) or ref(fc,1)<ref(fo,1)),-1,0));
fcfo:=fc-fo;
kks1:=KK=1 AND fc>=fo OR KK=1 AND fc<fo;
STICKLINE(kks1,fo,fc,6,1),COLOR0066ff;
fofc:=fo-fc;
kks2:=KK<=0 AND fc>=fo OR KK<=0 AND fc<fo;
STICKLINE(kks2,fo,fc,6,0),COLOR00bb00;
回覆: 再次請教
引用:
最初由 ryan 發表
想代入多空線指標
卻發生 指標數組下標越界或超出有效數據區間
想請教的是 問題出在哪 如何修改才可以顯示指標(新手上路 還需多學習)
再次謝謝...
盤差O:=STKINDI('','FBK1.盤差O',0,0)coloryellow;
盤差H:=STKINDI('','FBK1.盤差H',0,0)colorgreen;
盤差L:=STKINDI('','FBK1.盤差L',0,0)colorred;
盤差C:=STKINDI('','FBK1.盤差C',0,0)colorwhite;
fo:=盤差O;fh:=盤差H;fl:=盤差L;fc:=盤差C;
fc[1]:=(2*fc[1]+fh[1]+fl[1])/4;
for i=2 to datacount do begin
fo[i]:=(fo[i-1]+fc[i-1])/2;
if fo[i]>fh[i] then fh[i]:=fo[i];
if fo[i]<fl[i] then fl[i]:=fo[i];
fc[i]:=(2*fc[i]+fh[i]+fl[i])/4;
end;
KK:=IF(fc>=fo AND (fc>=ref(fc,1) or ref(fc,1)>=ref(fo,1)),1,IF(fc<fo AND (fc<ref(fo,1) or ref(fc,1)<ref(fo,1)),-1,0));
fcfo:=fc-fo;
kks1:=KK=1 AND fc>=fo OR KK=1 AND fc<fo;
STICKLINE(kks1,fo,fc,6,1),COLOR0066ff;
fofc:=fo-fc;
kks2:=KK<=0 AND fc>=fo OR KK<=0 AND fc<fo;
STICKLINE(kks2,fo,fc,6,0),COLOR00bb00;
![]()
原碼:
fO:=STKINDI('','FB.盤差O',0,0); fH:=STKINDI('','FB.盤差H',0,0); fL:=STKINDI('','FB.盤差L',0,0); fC:=STKINDI('','FB.盤差C',0,0); StNo:=lbound(fo); fc[StNo]:=(2*fc[StNo]+fh[StNo]+fl[StNo])/4; for i=StNo+1 to datacount do begin fo[i]:=(fo[i-1]+fc[i-1])/2; if fo[i]>fh[i] then fh[i]:=fo[i]; if fo[i]<fl[i] then fl[i]:=fo[i]; fc[i]:=(2*fc[i]+fh[i]+fl[i])/4; end; KK:=IF(fc>=fo AND (fc>=ref(fc,1) or ref(fc,1)>=ref(fo,1)),1,IF(fc<fo AND (fc<ref(fo,1) or ref(fc,1)<ref(fo,1)),-1,0)); fcfo:=fc-fo; kks1:=KK=1 AND fc>=fo OR KK=1 AND fc<fo; STICKLINE(kks1,fo,fc,6,1),COLOR0066ff; fofc:=fo-fc; kks2:=KK<=0 AND fc>=fo OR KK<=0 AND fc<fo; STICKLINE(kks2,fo,fc,6,0),COLOR00bb00;
Thanks
謝謝總版主
等收盤後 運算不會引致當機時再來試試
全部時間均為台灣時間, 現在時間為23:04 | 在這個頁面顯示本主題全部的 13 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.