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

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


由 ivancclai 在 2024-11-10 04:29 發表:

求助周k 畫線

版主擬好

我修改下列程式 想做到周k 畫線 但是沒有做到 需要求助版主 謝謝
不知道 哪裡寫錯需要改

周高:HHV(HIGH,WNDESP+1) COLORFF99FF LINEthick3 LINEDASH;

我是想從一周開始這周 結束 最高跟最低畫水平線線 及高連高 低連低 至最高 最低 周低沒問題 但是周高 我寫有誤 需樣求助版主

PPN:=0;
//==================================周k 開高低====================================
//========================================================================================
//以交易歸屬日為基準來畫(非K棒日)
IF DATATYPE >10 OR DATATYPE <7 THEN BEGIN //周k
WN:=FLOOR((DATETOD1970(TRADEDATE)-3)/7);
VERTLINE(WN<>REF(WN,1)) colorFFFF00 LINETHICK1 LINEDOT;
End;
KLINE(OPEN,HIGH,LOW,CLOSE,0);
//=====================================================================================
// ======================================== 隔日線 =====================================
DECK:=TRADEDATE<>REF(TRADEDATE,1) ;
DESP:=BARSLAST(DECK);
// ===================================================================
IF DATATYPE < 7 OR DATATYPE >10 THEN BEGIN
DESP:=BARSLAST(DECK);
if lbound(DESP)=0 then exit; //K棒不足
StK:=datacount-DESP[datacount];
x:=SETLBOUND(DESP,Stk);
DWLAA : DESP[datacount];
DWCKAA : ISLASTBAR and DWLAA>0;

WEEKDAY1:= WN<> REF(WN,1) COLORFFFF00;
WNDESP := BARSLAST(WEEKDAY1);

周高:HHV(HIGH,WNDESP+1) COLORFF99FF LINEthick3 LINEDASH;
周低:LLV(LOW,WNDESP+1) COLOR00BBFF LINETHICK3 LINEDASH;
//===============================================================================================
周高:=HHV(HIGH,WNDESP+1) COLORFF99FF LINEthick3 LINEDASH;
DRAWSL(ISLASTBAR ,周高,0,0,3) pxdn0 coloRFF99FF LINETHICK3 LINEDOT;
DRAWSL(DWCKAA,周高,0,-DWLAA,1) colorFFF99FF pxdn2 LINETHICK3;

周低:=LLV(LOW,WNDESP+1) COLOR00BBFF LINETHICK3 LINEDASH;
DRAWSL(ISLASTBAR ,周低,0,0,3) pxdn0 coloR00BBFF LINETHICK3 LINEDOT;
DRAWSL(DWCKAA,周低,0,-DWLAA,1) colorBBFF pxdn2 LINETHICK3;
END;


由 ivancclai 在 2024-11-10 04:35 發表:

如附圖
圈圈這一段沒有畫上 錯誤 希望 如何修改畫上


由 cgjj 在 2024-11-10 21:20 發表:

引用:
最初由 ivancclai 發表
如附圖
圈圈這一段沒有畫上 錯誤 希望 如何修改畫上



提示一下
目前程式中的 DWLAA 是 DESP[datacount]

而 DESP 是來自
DECK:=TRADEDATE<>REF(TRADEDATE,1) ;
DESP:=BARSLAST(DECK);

也就是 DESP 距離是交易日首根的距離!

而您現在是要處理 "週",不是 "日"
故不應該用 DESP 來帶入
應該要用 WNDESP 來帶入


由 ivancclai 在 2024-11-15 11:25 發表:

版主你好
我按照你的糾正 修改下列程式 但是我還是沒有改好 周高 周低 正確了
可以請你幫我糾正 謝謝


//==================================周k 開高低==================================
//以交易歸屬日為基準來畫(非K棒日)
IF DATATYPE <7 OR DATATYPE>10 THEN BEGIN //周k
WN:=FLOOR((DATETOD1970(TRADEDATE)-3)/7);
WEEKDAY1: WN<> REF(WN,1) COLORFFFF00;
WNDESP : BARSLAST(WEEKDAY1);
WNDESP1 : BARSLAST(WEEKDAY1);

if lbound(WNDESP)=0 then exit; //K棒不足
StK:=datacount-WNDESP[datacount];
x:=SETLBOUND(WNDESP,Stk);
DWLAA:=WNDESP[datacount];
DWCKAA:=ISLASTBAR and DWLAA>0;


//周高A:HHV(HIGH,WNDESP1+1) COLORFF99FF LINEthick4 LINEDASH;
//周低A:LLV(LOW,WNDESP1+1) COLOR00BBFF LINETHICK4 LINEDASH;
//===================================================================================================
周高:=HHV(HIGH,WNDESP+1) COLORFF99FF LINEthick3 LINEDASH;
DRAWSL(ISLASTBAR ,周高,0,0,3) pxdn0 coloRFF99FF LINETHICK3 LINEDOT;
DRAWSL(DWCKAA,周高,0,-DWLAA,1) colorFFF99FF pxdn2 LINETHICK3;
DRAWNUMBER(ISLASTBAR,周高,周高,PPN) SHIFT3,colorFF99FF PXUP40;
DRAWTEXT(ISLASTBAR,周高,'周高') SHIFT7,coloRFF99FF PXUP40;

周低:=LLV(LOW,WNDESP+1) COLOR00BBFF LINETHICK3 LINEDASH;
DRAWSL(ISLASTBAR ,周低,0,0,3) pxdn0 coloR00BBFF LINETHICK3 LINEDOT;
DRAWSL(DWCKAA,周低,0,-DWLAA,1) colorBBFF pxdn2 LINETHICK3;
DRAWNUMBER(ISLASTBAR,周低,周低,PPN) SHIFT3,color00BBFF PXUP40;
DRAWTEXT(ISLASTBAR,周低,'周低') SHIFT7,color00BBFF PXUP40;
END;
//=================================================================================================
KLINE(OPEN,HIGH,LOW,CLOSE,0);


由 cgjj 在 2024-11-15 12:15 發表:

引用:
最初由 ivancclai 發表
版主你好
我按照你的糾正 修改下列程式 但是我還是沒有改好 周高 周低 正確了
可以請你幫我糾正 謝謝


//==================================周k 開高低==================================
//以交易歸屬日為基準來畫(非K棒日)
IF DATATYPE <7 OR DATATYPE>10 THEN BEGIN //周k
WN:=FLOOR((DATETOD1970(TRADEDATE)-3)/7);
WEEKDAY1: WN<> REF(WN,1) COLORFFFF00;
WNDESP : BARSLAST(WEEKDAY1);
WNDESP1 : BARSLAST(WEEKDAY1);

if lbound(WNDESP)=0 then exit; //K棒不足
StK:=datacount-WNDESP[datacount];
x:=SETLBOUND(WNDESP,Stk);
DWLAA:=WNDESP[datacount];
DWCKAA:=ISLASTBAR and DWLAA>0;


//周高A:HHV(HIGH,WNDESP1+1) COLORFF99FF LINEthick4 LINEDASH;
//周低A:LLV(LOW,WNDESP1+1) COLOR00BBFF LINETHICK4 LINEDASH;
//===================================================================================================
周高:=HHV(HIGH,WNDESP+1) COLORFF99FF LINEthick3 LINEDASH;
DRAWSL(ISLASTBAR ,周高,0,0,3) pxdn0 coloRFF99FF LINETHICK3 LINEDOT;
DRAWSL(DWCKAA,周高,0,-DWLAA,1) colorFFF99FF pxdn2 LINETHICK3;
DRAWNUMBER(ISLASTBAR,周高,周高,PPN) SHIFT3,colorFF99FF PXUP40;
DRAWTEXT(ISLASTBAR,周高,'周高') SHIFT7,coloRFF99FF PXUP40;

周低:=LLV(LOW,WNDESP+1) COLOR00BBFF LINETHICK3 LINEDASH;
DRAWSL(ISLASTBAR ,周低,0,0,3) pxdn0 coloR00BBFF LINETHICK3 LINEDOT;
DRAWSL(DWCKAA,周低,0,-DWLAA,1) colorBBFF pxdn2 LINETHICK3;
DRAWNUMBER(ISLASTBAR,周低,周低,PPN) SHIFT3,color00BBFF PXUP40;
DRAWTEXT(ISLASTBAR,周低,'周低') SHIFT7,color00BBFF PXUP40;
END;
//=================================================================================================
KLINE(OPEN,HIGH,LOW,CLOSE,0);



主要問題在紅字部分
DRAWSL(DWCKAA,周高,0,-DWLAA,1) colorFFF99FF pxdn2 LINETHICK3;

用十六進位指定顏色代碼時
COLOR 後面接的是六組字元,您多給了一個F

同樣的 colorBBFF ,這部份則是少給了兩個字元


由 cgjj 在 2024-11-15 12:17 發表:

重新整理後如下:

//==================================周k 開高低==================================
//以交易歸屬日為基準來畫(非K棒日)
IF DATATYPE <7 OR DATATYPE>10 THEN BEGIN //周k
WN:=FLOOR((DATETOD1970(TRADEDATE)-3)/7);
WNDESP:BARSLAST(WN<> REF(WN,1));

if lbound(WNDESP)=0 then exit; //K棒不足
StK:=datacount-WNDESP[datacount];
x:=SETLBOUND(WNDESP,Stk);
DWLAA:=WNDESP[datacount];
DWCKAA:=ISLASTBAR and DWLAA>0;

//===================================================================================================
周高:=HHV(HIGH,WNDESP+1);
DRAWSL(ISLASTBAR ,周高,0,0,3) pxdn0 coloRFF99FF LINETHICK3 LINEDOT;
DRAWSL(DWCKAA,周高,0,-DWLAA,1) colorFF99FF pxdn2 LINETHICK3;
DRAWNUMBER(ISLASTBAR,周高,周高,PPN) SHIFT3,colorFF99FF PXUP40;
DRAWTEXT(ISLASTBAR,周高,'周高') SHIFT7,coloRFF99FF PXUP40;

周低:=LLV(LOW,WNDESP+1);
DRAWSL(ISLASTBAR ,周低,0,0,3) pxdn0 coloR00BBFF LINETHICK3 LINEDOT;
DRAWSL(DWCKAA,周低,0,-DWLAA,1) coloR00BBFF pxdn2 LINETHICK3;
DRAWNUMBER(ISLASTBAR,周低,周低,PPN) SHIFT3,color00BBFF PXUP40;
DRAWTEXT(ISLASTBAR,周低,'周低') SHIFT7,color00BBFF PXUP40;
END;
//=================================================================================================
KLINE(OPEN,HIGH,LOW,CLOSE,0);


由 ivancclai 在 2024-11-15 21:49 發表:

謝謝版主


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


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

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