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

奇狐社區論壇 (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=19961)


由 expexp 在 2016-04-27 11:29 發表:

公式問題想請版主指導

總版主您好,今有公式問題想請版主指導。

此公式的目的是將週K跟月K實體繪製在當前週期K線圖之中。

請見下圖:


但是一直有個問題就是,有些實體與實體的邊界處會凸出來,有些則不會。
想請教總版主,應該要如何修正這個問題呢(讓邊界處不要凸出來),謝謝∼



公式如下:



INPUT : 週_ONOFF(1,0,3,1) ;
INPUT : 月_ONOFF(0,0,3,1) ;


//底下是週的開高低收數據
WW := FLOOR((DATETOD1970(date)-3)/7);
WLCK := barpos=1 or WW<>ref(WW,1);
WRCK := barpos=datacount or refx(WLCK,1);
WLCKSP := barslast(WLCK);
WO:= ref(O,WLCKSP);
WH : HHV(H,WLCKSP+1) linethick;
WH := SETVAL(WRCK,WH,-WLCKSP,WH);
WL : LLV(L,WLCKSP+1) linethick;
WL := SETVAL(WRCK,WL,-WLCKSP,WL);
WC := SETVAL(WRCK,C,-WLCKSP,C);
SWW := barpos=1 or WW=ref(WW,1);


MLCK := barpos=1 or Month<>ref(Month,1);
MM := sum(MLCK,0);
MRCK := barpos=datacount or refx(MLCK,1);
MLCKSP := barslast(MLCK);
MO := ref(O,MLCKSP);
MH : HHV(H, MLCKSP+1) linethick;
MH := SETVAL(MRCK, MH, -MLCKSP, MH);
ML : LLV(L,MLCKSP+1) linethick;
ML := SETVAL(MRCK,ML,-MLCKSP,ML);
MC := SETVAL(MRCK,C,-MLCKSP,C);
SMM := barpos=1 or MM=ref(MM,1);


//繪製月實體
IF 月_ONOFF = 1 THEN BEGIN
FILLRGN(SMM and MC >= MO,MC,MO),colorB9DAFF ;
FILLRGN(SMM and MC < MO,MC,MO),color4AFFB7;
END ;

//繪製週實體
IF 週_ONOFF = 1 THEN BEGIN
FILLRGN(SWW and WC > WO, WC, WO), ColorA8A6FF;
FILLRGN(SWW and WC <= WO, WC, WO), ColorFFFF80;
END ;


KLINE(O,H,L,C,0);


由 cgjj 在 2016-04-27 11:46 發表:

回覆: 公式問題想請版主指導

引用:
最初由 expexp 發表
總版主您好,今有公式問題想請版主指導。

此公式的目的是將週K跟月K實體繪製在當前週期K線圖之中。

請見下圖:


但是一直有個問題就是,有些實體與實體的邊界處會凸出來,有些則不會。
想請教總版主,應該要如何修正這個問題呢(讓邊界處不要凸出來),謝謝∼



公式如下:



INPUT : 週_ONOFF(1,0,3,1) ;
INPUT : 月_ONOFF(0,0,3,1) ;


//底下是週的開高低收數據
WW := FLOOR((DATETOD1970(date)-3)/7);
WLCK := barpos=1 or WW<>ref(WW,1);
WRCK := barpos=datacount or refx(WLCK,1);
WLCKSP := barslast(WLCK);
WO:= ref(O,WLCKSP);
WH : HHV(H,WLCKSP+1) linethick;
WH := SETVAL(WRCK,WH,-WLCKSP,WH);
WL : LLV(L,WLCKSP+1) linethick;
WL := SETVAL(WRCK,WL,-WLCKSP,WL);
WC := SETVAL(WRCK,C,-WLCKSP,C);
SWW := barpos=1 or WW=ref(WW,1);


MLCK := barpos=1 or Month<>ref(Month,1);
MM := sum(MLCK,0);
MRCK := barpos=datacount or refx(MLCK,1);
MLCKSP := barslast(MLCK);
MO := ref(O,MLCKSP);
MH : HHV(H, MLCKSP+1) linethick;
MH := SETVAL(MRCK, MH, -MLCKSP, MH);
ML : LLV(L,MLCKSP+1) linethick;
ML := SETVAL(MRCK,ML,-MLCKSP,ML);
MC := SETVAL(MRCK,C,-MLCKSP,C);
SMM := barpos=1 or MM=ref(MM,1);


//繪製月實體
IF 月_ONOFF = 1 THEN BEGIN
FILLRGN(SMM and MC >= MO,MC,MO),colorB9DAFF ;
FILLRGN(SMM and MC < MO,MC,MO),color4AFFB7;
END ;

//繪製週實體
IF 週_ONOFF = 1 THEN BEGIN
FILLRGN(SWW and WC > WO, WC, WO), ColorA8A6FF;
FILLRGN(SWW and WC <= WO, WC, WO), ColorFFFF80;
END ;


KLINE(O,H,L,C,0);



以此例來說,不適合用 FILLRGN ,因為其是封閉區畫法

改用 STICKLINE 畫,效能好也不會有此例之凸出現象


由 expexp 在 2016-04-27 12:23 發表:

謝謝總版主回覆,
有思考過改用 stickline ,但是卡在不知道要如何讓 stickline 繪製出來的 K 棒「置中」。
懇請總版主指導~ 謝謝


由 cgjj 在 2016-04-27 12:59 發表:

引用:
最初由 expexp 發表
謝謝總版主回覆,
有思考過改用 stickline ,但是卡在不知道要如何讓 stickline 繪製出來的 K 棒「置中」。
懇請總版主指導~ 謝謝



置不置中,並不影響使用,只是視覺差異。若擔心同色連續會混淆,可以編個號,奇數畫深一點偶數畫淺一點,或用不同色,就可以解決困擾。


由 expexp 在 2016-04-27 13:44 發表:

謝謝總版主回覆


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


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

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