 |
ryan
中級會員
註冊日期: Feb 2020
來 自:
文章數量: 48 |
自定義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 怎麼寫?
謝謝
|
|
向版主報告此篇 |  |
|
2020-11-23 11:10 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18093 |
回覆: 自定義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 怎麼寫?
謝謝
盤差O 就是該分第一值,也就是 ref(盤差,SP-1);
盤差C 就是當前的盤差值
用分筆成交算的東西,僅當日有數據可看唷
且計算量非常龐大,不建議如此用!
另外, 奇狐的分線也不是如此切割
它是切到 00 秒結束(00 秒最後一筆)
詳見:
http://www.chiefox.com.tw/help/v52/KHandleData.html
故不能單純用 MINUTE<>ref(MINUTE,1) 去判斷切割!
|
|
向版主報告此篇 |  |
|
2020-11-23 11:33 |
|
|
|  |
 |
ryan
中級會員
註冊日期: Feb 2020
來 自:
文章數量: 48 |
是這樣子嗎
盤差:=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)
(圖形所示,如同版主所說的 切割的方式不對
一堆的缺口)

|
最後由 ryan 在 2020-11-23 12:33 編輯 |
向版主報告此篇 |  |
|
2020-11-23 12:04 |
|
|
|  |
 |
ryan
中級會員
註冊日期: Feb 2020
來 自:
文章數量: 48 |
再次請教
謝謝總版主先前的指導
誠如總版主所說的 分筆的量非常的大
在開盤的當下指標是跑不動的
所以 以下的指標只是研究及好奇而已
無任何實戰之義意
先設引用指標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);

|
|
向版主報告此篇 |  |
|
2021-01-22 00:25 |
|
|
|  |
 |
ryan
中級會員
註冊日期: Feb 2020
來 自:
文章數量: 48 |
再次請教
以自定義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;

|
|
向版主報告此篇 |  |
|
2021-01-22 00:31 |
|
|
|  |
 |
ryan
中級會員
註冊日期: Feb 2020
來 自:
文章數量: 48 |
再次請教
以自定義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);
PDI MP*100/TR2;
MDI MM*100/TR2,coloryellow;
ADX:SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR ADX+REF(ADX,M))/2;

|
|
向版主報告此篇 |  |
|
2021-01-22 00:37 |
|
|
|  |
 |
ryan
中級會員
註冊日期: Feb 2020
來 自:
文章數量: 48 |
再次請教
想代入多空線指標
卻發生 指標數組下標越界或超出有效數據區間
想請教的是 問題出在哪 如何修改才可以顯示指標(新手上路 還需多學習)
再次謝謝...
盤差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;

|
|
向版主報告此篇 |  |
|
2021-01-22 00:52 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18093 |
回覆: 再次請教
引用: 最初由 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;
|
|
向版主報告此篇 |  |
|
2021-01-22 08:51 |
|
|
|  |
 |
ryan
中級會員
註冊日期: Feb 2020
來 自:
文章數量: 48 |
Thanks
謝謝總版主
等收盤後 運算不會引致當機時再來試試
|
|
向版主報告此篇 |  |
|
2021-01-22 11:10 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|