 |
ivancclai
資深會員
註冊日期: Apr 2017
來 自: New Taipei city
文章數量: 243 |
求助 點位變色
版主大你你好
這程式是你幫我寫的 每根k棒開盤及收盤 間距太小時 顯示會看會擠在一起 看不到 是否 給我範例或修正 每根K棒 開收間距 <100 就不顯示開盤 收盤價位 只顯示 高低價位ˋ就好
謝謝
//================ 點位變色 =======================
HH:=HIGH*100;
LL:=LOW*100;
k1A:=MOD(HH,100000);
k2A:=MOD(LL,100000);
K1:=K1A/100;
K2:=K2A/100;
LB:=DATACOUNT-40+1; IF LB<1 then exit;
x:=SETLBOUND(CC,LB); x:=SETLBOUND(HH,LB); x:=SETLBOUND(LL,LB);
DH:=CC*0; DL:=DH;
for i=LB to DATACOUNT do begin
for j=i+1 to DATACOUNT do begin
IF CC[j]>HH[i] then begin
DH[i]:=j; break;
end;
end;
for j=i+1 to DATACOUNT do begin
IF CC[j]<LL[i] then begin
DL[i]:=j; break;
end;
end;
end;
//KLINE(OPEN,HIGH,LOW,CLOSE,0);
綠K:=CLOSE<OPEN ;//or CLOSE=OPEN and CLOSE<=REF(CLOSE,1);
x:=SETLBOUND(綠K,LB);
紅K:=NOT(綠K);
K3:=MAX(CLOSE,OPEN);//上緣
K4:=MIN(CLOSE,OPEN);//下緣
CC:=CLOSE*100;
OO:=OPEN*100;
CCA:=MOD(CC,100000);
OOA:=MOD(OO,100000);
CCB:=CCA/100;
OOB:=OOA/100;
//AAA:=ABS (CCB-OOB);
//KK:=IF(AAA>80,1,0);
//IF KK =1 THEN BEGIN
DRAWNUMBER(紅K>0,K3,CCB,PPN) ALIGN0 pxdn20 color00FFFF;
DRAWNUMBER(紅K>0,k4,OOB,PPN) ALIGN0 pxup50 colorFFFFFF;
DRAWNUMBER(綠K>0,K3,OOB,PPN) ALIGN0 pxdn20 colOrFFFFFF;
DRAWNUMBER(綠K>0,k4,CCB,PPN) ALIGN0 pxup50 color00FFFF;
//END;
DRAWNUMBER(DH=0,HIGH,k1,PPN) ALIGN0 pxup60,colorFFFFFF;
DRAWNUMBER(DL=0,LOW,k2,PPN) ALIGN0 pxdn60 colorFFFFFF;
DRAWNUMBER(DH>0,HIGH,k1,PPN) ALIGN0 pxup60,color0000FF;
DRAWNUMBER(DL>0,LOW,k2,PPN) ALIGN0 pxdn60 color00FF00;
//DRAWNUMBER(1,LL,差,0) ALIGN0 pxDN150˙ colorWHITE;//HIGH-LOW 點數
//==================================================================================
|
|
向版主報告此篇 |  |
|
2024-09-20 05:17 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18091 |
回覆: 求助 點位變色
引用: 最初由 ivancclai 發表
版主大你你好
這程式是你幫我寫的 每根k棒開盤及收盤 間距太小時 顯示會看會擠在一起 看不到 是否 給我範例或修正 每根K棒 開收間距 <100 就不顯示開盤 收盤價位 只顯示 高低價位ˋ就好
謝謝
//================ 點位變色 =======================
HH:=HIGH*100;
LL:=LOW*100;
k1A:=MOD(HH,100000);
k2A:=MOD(LL,100000);
K1:=K1A/100;
K2:=K2A/100;
LB:=DATACOUNT-40+1; IF LB<1 then exit;
x:=SETLBOUND(CC,LB); x:=SETLBOUND(HH,LB); x:=SETLBOUND(LL,LB);
DH:=CC*0; DL:=DH;
for i=LB to DATACOUNT do begin
for j=i+1 to DATACOUNT do begin
IF CC[j]>HH[i] then begin
DH[i]:=j; break;
end;
end;
for j=i+1 to DATACOUNT do begin
IF CC[j]<LL[i] then begin
DL[i]:=j; break;
end;
end;
end;
//KLINE(OPEN,HIGH,LOW,CLOSE,0);
綠K:=CLOSE<OPEN ;//or CLOSE=OPEN and CLOSE<=REF(CLOSE,1);
x:=SETLBOUND(綠K,LB);
紅K:=NOT(綠K);
K3:=MAX(CLOSE,OPEN);//上緣
K4:=MIN(CLOSE,OPEN);//下緣
CC:=CLOSE*100;
OO:=OPEN*100;
CCA:=MOD(CC,100000);
OOA:=MOD(OO,100000);
CCB:=CCA/100;
OOB:=OOA/100;
//AAA:=ABS (CCB-OOB);
//KK:=IF(AAA>80,1,0);
//IF KK =1 THEN BEGIN
DRAWNUMBER(紅K>0,K3,CCB,PPN) ALIGN0 pxdn20 color00FFFF;
DRAWNUMBER(紅K>0,k4,OOB,PPN) ALIGN0 pxup50 colorFFFFFF;
DRAWNUMBER(綠K>0,K3,OOB,PPN) ALIGN0 pxdn20 colOrFFFFFF;
DRAWNUMBER(綠K>0,k4,CCB,PPN) ALIGN0 pxup50 color00FFFF;
//END;
DRAWNUMBER(DH=0,HIGH,k1,PPN) ALIGN0 pxup60,colorFFFFFF;
DRAWNUMBER(DL=0,LOW,k2,PPN) ALIGN0 pxdn60 colorFFFFFF;
DRAWNUMBER(DH>0,HIGH,k1,PPN) ALIGN0 pxup60,color0000FF;
DRAWNUMBER(DL>0,LOW,k2,PPN) ALIGN0 pxdn60 color00FF00;
//DRAWNUMBER(1,LL,差,0) ALIGN0 pxDN150˙ colorWHITE;//HIGH-LOW 點數
//==================================================================================
其實您原先註解掉的程式碼就有類似的功能了
以下是再優化的結果:
請將
//AAA:=ABS (CCB-OOB);
//KK:=IF(AAA>80,1,0);
//IF KK =1 THEN BEGIN
DRAWNUMBER(紅K>0,K3,CCB,PPN) ALIGN0 pxdn20 color00FFFF;
DRAWNUMBER(紅K>0,k4,OOB,PPN) ALIGN0 pxup50 colorFFFFFF;
DRAWNUMBER(綠K>0,K3,OOB,PPN) ALIGN0 pxdn20 colOrFFFFFF;
DRAWNUMBER(綠K>0,k4,CCB,PPN) ALIGN0 pxup50 color00FFFF;
//END;
改為
AAA:=ABS(CCB-OOB)>=100;
DRAWNUMBER(紅K and AAA,K3,CCB,PPN) ALIGN0 pxdn20 color00FFFF;
DRAWNUMBER(紅K and AAA,k4,OOB,PPN) ALIGN0 pxup50 colorFFFFFF;
DRAWNUMBER(綠K and AAA,K3,OOB,PPN) ALIGN0 pxdn20 colOrFFFFFF;
DRAWNUMBER(綠K and AAA,k4,CCB,PPN) ALIGN0 pxup50 color00FFFF;
|
|
向版主報告此篇 |  |
|
2024-09-20 08:41 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|