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

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


由 ivancclai 在 2023-11-06 10:26 發表:

如何顯示K棒的正中間

版主大大擬好


可否幫我更正此程式


// ============ = 新價線 ===================================

NP : DYNAINFO( 7) COLORFFFF00 LINEDOT;
//==========================================================

//==========================================================
// DRAWLINE(NP,LOW,HD,HIGH,0),colorRED, LINETHICK2;
DRAWNUMBER(NP,HIGH,HIGH,0) colorWHITE,PXUP25;
// DRAWTEXT(NP, HIGH, '-k=') colorWHITE,PXUP50;
DRAWNUMBER(NP,HIGH,HIGH+(HIGH-LOW),0), colorWHITE,PXUP50 SHIFT0;


DRAWNUMBER(NP,LOW,LOW,0) colorWHITE,PXDN25;
DRAWTEXT(NP, LOW, '+K=') colorWHITE,PXDN50;
DRAWNUMBER(NP,LOW ,LOW-(HIGH-LOW),0), colorWHITE,PXDN50 SHIFT1;
DRAWNUMBER(NP,LOW ,(HIGH-LOW),0), colorWHITE,PXDN75;//H-L 點數

//=================//=======================================

// DRAWNUMBER(NP,HIGH,HIGH,0) colorWHITE,PXUP25;
//
// DRAWTEXT(REF(NP,1), HIGH, '+k=') colorWHITE,PXUP50;
// DRAWNUMBER(NP,HIGH ,HIGH+(HIGH-LOW),0), colorWHITE,SHIFT1,PXUP501; //+K
// REFH:=REF(HIGH,1);
// REFL:=REF(LOW,1);
// S:= LOW+(REFH-REFL);
// DRAWNUMBER(NP,HIGH ,S ,0), colorWHITE,PXUP75,SHIFT0; //+S-1



// DRAWNUMBER(NP,LOW,LOW,0) colorWHITE,PXDN25;

// DRAWTEXT(NP, LOW, '+K=') colorWHITE,PXDN50; ///-K
// DRAWNUMBER(NP,LOW ,LOW-(HIGH-LOW),0), colorWHITE,PXDN50, SHIFT1;
// S2:=HIGH-(REFH-REFL);
// DRAWNUMBER(NP,LOW ,S2 ,0), colorWHITE,PXDN75,SHIFT; //-S-1
// DRAWNUMBER(NP,LOW ,(HIGH-LOW),0), colorWHITE,PXDN100;//H-L 點數
//========================================================
EXPLAIN(1>0,'==============='),colorFFFFFF;
EXPLAINEX(1>0,'最新價 = ',NP,2,0) COLORFFFF00;
//EXPLAIN(1>0,'==============='),colorFFFFFF;
//===================================================================

兩根k棒可以做疊k 與堆k +s+k 往上 1:1 和正 N 及-S -S 往下1:1 和倒N 我不會寫倒N 即顯示時如ˊ何以K棒為正中心及 +K=XXXXX 也呈現在K棒正中心


我的問題是


1. 當下K棒顯示高低點, 以K棒正中點為基準顯示
2 顯示K棒疊+K=xxxxxx 以幫正中心顯示 如何將數據及數字轉換成字串
3.當下並沒有下一根K棒數據<等下一根出現時 如何在上一根K棒中心點為基準顯示



謝謝 版主大大


由 cgjj 在 2023-11-06 10:39 發表:

回覆: 如何顯示K棒的正中間

引用:
最初由 ivancclai 發表
版主大大擬好


可否幫我更正此程式


// ============ = 新價線 ===================================

NP : DYNAINFO( 7) COLORFFFF00 LINEDOT;
//==========================================================

//==========================================================
// DRAWLINE(NP,LOW,HD,HIGH,0),colorRED, LINETHICK2;
DRAWNUMBER(NP,HIGH,HIGH,0) colorWHITE,PXUP25;
// DRAWTEXT(NP, HIGH, '-k=') colorWHITE,PXUP50;
DRAWNUMBER(NP,HIGH,HIGH+(HIGH-LOW),0), colorWHITE,PXUP50 SHIFT0;


DRAWNUMBER(NP,LOW,LOW,0) colorWHITE,PXDN25;
DRAWTEXT(NP, LOW, '+K=') colorWHITE,PXDN50;
DRAWNUMBER(NP,LOW ,LOW-(HIGH-LOW),0), colorWHITE,PXDN50 SHIFT1;
DRAWNUMBER(NP,LOW ,(HIGH-LOW),0), colorWHITE,PXDN75;//H-L 點數

//=================//=======================================

// DRAWNUMBER(NP,HIGH,HIGH,0) colorWHITE,PXUP25;
//
// DRAWTEXT(REF(NP,1), HIGH, '+k=') colorWHITE,PXUP50;
// DRAWNUMBER(NP,HIGH ,HIGH+(HIGH-LOW),0), colorWHITE,SHIFT1,PXUP501; //+K
// REFH:=REF(HIGH,1);
// REFL:=REF(LOW,1);
// S:= LOW+(REFH-REFL);
// DRAWNUMBER(NP,HIGH ,S ,0), colorWHITE,PXUP75,SHIFT0; //+S-1



// DRAWNUMBER(NP,LOW,LOW,0) colorWHITE,PXDN25;

// DRAWTEXT(NP, LOW, '+K=') colorWHITE,PXDN50; ///-K
// DRAWNUMBER(NP,LOW ,LOW-(HIGH-LOW),0), colorWHITE,PXDN50, SHIFT1;
// S2:=HIGH-(REFH-REFL);
// DRAWNUMBER(NP,LOW ,S2 ,0), colorWHITE,PXDN75,SHIFT; //-S-1
// DRAWNUMBER(NP,LOW ,(HIGH-LOW),0), colorWHITE,PXDN100;//H-L 點數
//========================================================
EXPLAIN(1>0,'==============='),colorFFFFFF;
EXPLAINEX(1>0,'最新價 = ',NP,2,0) COLORFFFF00;
//EXPLAIN(1>0,'==============='),colorFFFFFF;
//===================================================================

兩根k棒可以做疊k 與堆k +s+k 往上 1:1 和正 N 及-s -s 往下1:1 和倒N 我不會寫倒N 即顯示時如ˊ何以K棒為正中心及 +K=XXXXX 也呈現在K棒正中心


謝謝



很抱歉,看不懂您在描述什麼... @@
恕無法協助


由 ivancclai 在 2023-11-06 10:46 發表:

我的問題是


1. 當下K棒顯示高低點, 以K棒正中點為基準顯示
2 顯示K棒疊+K=xxxxxx 以幫正中心顯示 如何將數據及數字轉換成字串
3.當下並沒有下一根K棒數據<等下一根出現時 如何在上一根K棒中心點為基準顯示


由 cgjj 在 2023-11-06 11:02 發表:

引用:
最初由 ivancclai 發表
我的問題是


1. 當下K棒顯示高低點, 以K棒正中點為基準顯示
2 顯示K棒疊+K=xxxxxx 以幫正中心顯示 如何將數據及數字轉換成字串
3.當下並沒有下一根K棒數據<等下一根出現時 如何在上一根K棒中心點為基準顯示



Re1:範例如下
DRAWNUMBER(1,HIGH,HIGH,0) ALIGN0 pxup25;

Re2:範例如下
DRAWTEXT(1,HIGH,'文字:') ALIGN2 pxup50 colorred;
DRAWNUMBER(1,HIGH,HIGH,0) ALIGN1 pxup50 colorred;

Re3:例如要取下一根K棒的HIGH,做法如下
refx(HIGH,1);


由 ivancclai 在 2023-11-06 11:14 發表:

如圖例


由 ivancclai 在 2023-11-06 11:15 發表:

ˊ如圖例


由 ivancclai 在 2023-11-06 11:17 發表:

如圖替


由 cgjj 在 2023-11-06 11:20 發表:

前面 Re1 Re2 Re3 就已經提供解決方案了
請參考!!!


由 ivancclai 在 2023-11-06 12:55 發表:

版ˊ主大大你好


謝謝你,目前數據都正確 但是+/-S 與數據距離不對 要修正靠近s 不知如ˊ和處理請教版主大大


REFH:=REF(HIGH,1);
REFL:=REF(LOW,1);

DRAWNUMBER(NP , REFH ,LOW+(REFH-REFL) ,0) align2,colorWHITE,PXUP75; //-S-1
DRAWNUMBER(NP , REFL ,HIGH-(REFH-REFL) ,0) align2,colorWHITE,PXDN75; //-S-1


由 ivancclai 在 2023-11-06 13:00 發表:

如圖例


由 cgjj 在 2023-11-06 15:51 發表:

引用:
最初由 ivancclai 發表
版ˊ主大大你好


謝謝你,目前數據都正確 但是+/-S 與數據距離不對 要修正靠近s 不知如ˊ和處理請教版主大大


REFH:=REF(HIGH,1);
REFL:=REF(LOW,1);

DRAWNUMBER(NP , REFH ,LOW+(REFH-REFL) ,0) align2,colorWHITE,PXUP75; //-S-1
DRAWNUMBER(NP , REFL ,HIGH-(REFH-REFL) ,0) align2,colorWHITE,PXDN75; //-S-1



+S 文字與右側的數字
是不同K棒所標示,當然會有段距離
應該是要把右側的數字拿到+S文字當根來標示
或是把+S文字移到下一根來標示
這樣兩者才會在同一根!


由 ivancclai 在 2023-11-06 18:43 發表:

謝謝版主已修正完成


由 ivancclai 在 2023-11-10 16:48 發表:

如何更改標示顏色

版主大大你好


有問題請教你要如何處理

// ============ = 新價線 ===================================

NP : DYNAINFO( 7) COLORFFFF00 LINEDOT;
DRAWNUMBER(ISLASTBAR,NP,NP,0) SHIFT1,colorFFFF00 PXUP20;
DRAWTEXT(ISLASTBAR,NP,'最新價') SHIFT3,colorFFFF00 PXUP20;

//==========================================================

//==========================================================

k1:=mod(high,1000);
k2:=mod(low,1000);
DRAWNUMBER(NP,HIGH,k1,0) ALIGN0 pxup25,COLORFFFFFF;
DRAWNUMBER(NP,LOW,k2,0) ALIGN0 ,colorFFFFFF,PXDN25;
DRAWNUMBER(NP,LOW ,(HIGH-LOW),0)align0 , colorWHITE,PXDN50;//H-L 點數
//=============================================================================


這是我在上星期寫的 在每一根k棒上下緣標示高低點用白色 我的問題是若從此根k棒出現後的 今高有比此根高點高就將高點顏色更改成紅色顯示 若此根k幫出現後今低有比根k幫低點低就顯示低點顏色更改成綠色沒有就維持白色

 我不知道 要如何修改請版主給我提示如何修正


謝謝你


由 cgjj 在 2023-11-12 10:41 發表:

回覆: 如何更改標示顏色

引用:
最初由 ivancclai 發表
版主大大你好


有問題請教你要如何處理

// ============ = 新價線 ===================================

NP : DYNAINFO( 7) COLORFFFF00 LINEDOT;
DRAWNUMBER(ISLASTBAR,NP,NP,0) SHIFT1,colorFFFF00 PXUP20;
DRAWTEXT(ISLASTBAR,NP,'最新價') SHIFT3,colorFFFF00 PXUP20;

//==========================================================

//==========================================================

k1:=mod(high,1000);
k2:=mod(low,1000);
DRAWNUMBER(NP,HIGH,k1,0) ALIGN0 pxup25,COLORFFFFFF;
DRAWNUMBER(NP,LOW,k2,0) ALIGN0 ,colorFFFFFF,PXDN25;
DRAWNUMBER(NP,LOW ,(HIGH-LOW),0)align0 , colorWHITE,PXDN50;//H-L 點數
//=============================================================================


這是我在上星期寫的 在每一根k棒上下緣標示高低點用白色 我的問題是若從此根k棒出現後的 今高有比此根高點高就將高點顏色更改成紅色顯示 若此根k幫出現後今低有比根k幫低點低就顯示低點顏色更改成綠色沒有就維持白色

 我不知道 要如何修改請版主給我提示如何修正


謝謝你



原碼:
HH:=H; LL:=L; k1:=mod(HH,1000); k2:=mod(LL,1000); DH:=C*0; DL:=DH; for i=1 to datacount do begin for j=i+1 to datacount do begin if HH[j]>HH[i] then begin DH[i]:=j; break; end; end; for j=i+1 to datacount do begin if LL[j]<LL[i] then begin DL[i]:=j; break; end; end; end; DRAWNUMBER(DH=0,HH,k1,0) ALIGN0 pxup25,colorWHITE; DRAWNUMBER(DL=0,LL,k2,0) ALIGN0 pxdn25 colorWHITE; DRAWNUMBER(DH>0,HH,k1,0) ALIGN0 pxup25,colorRED; DRAWNUMBER(DL>0,LL,k2,0) ALIGN0 pxdn25 colorGREEN; DRAWNUMBER(1,LL,HH-LL,0) ALIGN0 pxDN50 colorWHITE;//H-L 點數


由 ivancclai 在 2023-11-12 11:12 發表:

謝謝版主大大


我定義描述描述有問題 =====================================================


這是我在上星期寫的 在每一根k棒上下緣標示高低點用白色 我的問題是若從此根k棒出現後的 今高有比此根高點+(H-L)點位高就將高點顏色更改成紅色顯示 若此根k幫出現後今低有比根k幫低點- (H-L)低 ,就顯示低點顏色更改成綠色沒有就維持白色, 這樣定義才對,我剛剛有模擬跑磐才發現問題

 我不知道 要如何修改請版主給我提示如何修正 謝謝


由 ivancclai 在 2023-11-12 11:29 發表:

版主大大你好

可幫幫我看看此程式需要
修正 下面圖例中綠色點位有誤 應該標示白色


謝謝你


由 ivancclai 在 2023-11-12 11:32 發表:

如圖例


由 cgjj 在 2023-11-12 11:47 發表:

引用:
最初由 ivancclai 發表
版主大大你好

可幫幫我看看此程式需要
修正 下面圖例中綠色點位有誤 應該標示白色


謝謝你



並沒有錯唷!

按您規則
"若此根k幫出現後今低有比根k幫低點低就顯示低點顏色更改成綠色沒有就維持白色"

當後面有比現在K棒低點更低的價格,就要標示為綠色,如無維持白色


由 ivancclai 在 2023-11-13 12:22 發表:

版主大大你好

我嘗試修改還是不會 可以請你幫我看


HH:=H; LL:=L;
k1:=mod(HH,100000);
k2:=mod(LL,100000);


DH:=C*0; DL:=DH;
for i=1 to datacount do begin
for j=i+1 to datacount do begin
if HH[j]>HH[i] then begin
DH[i]:=j; break;
end;
end;
for j=i+1 to datacount do begin
if LL[j]<LL[i] then begin
DL[i]:=j; break;
end;
end;
end;
DRAWNUMBER(DH=0,HH,k1,0) ALIGN0 pxup25,colorWHITE;
DRAWNUMBER(DL=0,LL,k2,0) ALIGN0 pxdn25 colorWHITE;
DRAWNUMBER(DH>0,HH,k1,0) ALIGN0 pxup25,colorRED;
DRAWNUMBER(DL>0,LL,k2,0) ALIGN0 pxdn25 colorGREEN;
DRAWNUMBER(1,LL,HH-LL,0) ALIGN0 pxDN50 colorWHITE;//H-L 點數

//=======================================================================


由 ivancclai 在 2023-11-13 12:29 發表:

目前只做圖例


由 ivancclai 在 2023-11-13 12:37 發表:

我要看盤程式幫我未來價位有到時更改顏色顯示

+/- K 是堆k +/- S是疊k顯示
堆k 是 H AND L +/-(H-L)
疊k是下一根k棒的 H AND L +/- (H-L)的值
未來價位有超嘿跌破時 更改顏色顯示

可請版主大大幫我修正 謝謝


由 cgjj 在 2023-11-13 12:42 發表:

引用:
最初由 ivancclai 發表
版主大大你好

我嘗試修改還是不會 可以請你幫我看


HH:=H; LL:=L;
k1:=mod(HH,100000);
k2:=mod(LL,100000);


DH:=C*0; DL:=DH;
for i=1 to datacount do begin
for j=i+1 to datacount do begin
if HH[j]>HH[i] then begin
DH[i]:=j; break;
end;
end;
for j=i+1 to datacount do begin
if LL[j]<LL[i] then begin
DL[i]:=j; break;
end;
end;
end;
DRAWNUMBER(DH=0,HH,k1,0) ALIGN0 pxup25,colorWHITE;
DRAWNUMBER(DL=0,LL,k2,0) ALIGN0 pxdn25 colorWHITE;
DRAWNUMBER(DH>0,HH,k1,0) ALIGN0 pxup25,colorRED;
DRAWNUMBER(DL>0,LL,k2,0) ALIGN0 pxdn25 colorGREEN;
DRAWNUMBER(1,LL,HH-LL,0) ALIGN0 pxDN50 colorWHITE;//H-L 點數

//=======================================================================



你要嘗試修改什麼,又沒有說明!
無從幫起~~


由 ivancclai 在 2023-11-13 12:52 發表:

+/- K 是堆k +/- S是疊k顯示
堆k 是 H AND L +/-(H-L)
疊k是下一根k棒的 H AND L +/- (H-L)的值
未來價位有超嘿跌破時 更改顏色顯示

可請版主大大幫我修正 謝謝


由 ivancclai 在 2023-11-13 12:57 發表:

如圖例


由 ivancclai 在 2023-11-13 12:59 發表:

如圖


由 cgjj 在 2023-11-13 13:12 發表:

引用:
最初由 ivancclai 發表
+/- K 是堆k +/- S是疊k顯示
堆k 是 H AND L +/-(H-L)
疊k是下一根k棒的 H AND L +/- (H-L)的值
未來價位有超嘿跌破時 更改顏色顯示

可請版主大大幫我修正 謝謝



很抱歉,這樣的說明無法理解!

H AND L +/-(H-L)

像這種式子並非邏輯判斷式,也非一般加減乘除運算式。
難以搞的清楚您想要算什麼。
圖片也看不出有何關聯性~~
這與原先的有何差異性?

請詳細描述,您想要求算的東西。


由 cgjj 在 2023-11-13 13:43 發表:

按電話描述的規則,修改後的
改用 H+(H-L) 之值與未來的H做比較
改用 L-(H-L) 之值與未來的L做比較

原碼:
HH:=H; LL:=L; k1:=mod(HH,1000); k2:=mod(LL,1000); DH:=C*0; DL:=DH; 差:=HH-LL; for i=1 to datacount do begin for j=i+1 to datacount do begin if HH[j]>HH[i]+差[i] then begin DH[i]:=j; break; end; end; for j=i+1 to datacount do begin if LL[j]<LL[i]-差[i] then begin DL[i]:=j; break; end; end; end; DRAWNUMBER(DH=0,HH,k1,0) ALIGN0 pxup25,colorWHITE; DRAWNUMBER(DL=0,LL,k2,0) ALIGN0 pxdn25 colorWHITE; DRAWNUMBER(DH>0,HH,k1,0) ALIGN0 pxup25,colorRED; DRAWNUMBER(DL>0,LL,k2,0) ALIGN0 pxdn25 colorGREEN; DRAWNUMBER(1,LL,差,0) ALIGN0 pxDN50 colorWHITE;//H-L 點數


由 ivancclai 在 2023-11-13 14:30 發表:

謝謝版主大大

再加一項


由 ivancclai 在 2023-11-13 18:58 發表:

版主大大你好可以再幫我更改為

修改後的
改用 Rexf(H,1)-(H-L) 之值與未來的H做比較
改用 refx(L,1)+((H-L) 之值與未來的L做比我還是不會陣列 謝謝你 謝謝你


由 cgjj 在 2023-11-13 21:09 發表:

引用:
最初由 ivancclai 發表
版主大大你好可以再幫我更改為

修改後的
改用 Rexf(H,1)-(H-L) 之值與未來的H做比較
改用 refx(L,1)+((H-L) 之值與未來的L做比我還是不會陣列 謝謝你 謝謝你



Rexf(H,1)-(H-L) 應該是 Ref(H,1)-(H-L) 對吧?

處理範例如下:
原碼:
HH:=H; LL:=L; k1:=mod(HH,1000); k2:=mod(LL,1000); DH:=C*0; DL:=DH; 差:=HH-LL; for i=2 to datacount-1 do begin for j=i+1 to datacount do begin if HH[j]>HH[i-1]-差[i] then begin DH[i]:=j; break; end; end; for j=i+1 to datacount do begin if LL[j]<LL[i+1]+差[i] then begin DL[i]:=j; break; end; end; end; DRAWNUMBER(DH=0,HH,k1,0) ALIGN0 pxup25,colorWHITE; DRAWNUMBER(DL=0,LL,k2,0) ALIGN0 pxdn25 colorWHITE; DRAWNUMBER(DH>0,HH,k1,0) ALIGN0 pxup25,colorRED; DRAWNUMBER(DL>0,LL,k2,0) ALIGN0 pxdn25 colorGREEN; DRAWNUMBER(1,LL,差,0) ALIGN0 pxDN50 colorWHITE;//H-L 點數


由 ivancclai 在 2023-11-15 03:24 發表:

版主大大你好

修改後的
改用 ReFX(H,1)-(H-L) 之值與未來的H做比較
改用 refx(L,1)+((H-L) 之值與未來的L做比我還是不會陣列 謝謝你 謝謝你


Rexf(H,1)-(H-L) 應該是 Refx(H,1)-(H-L) 我打字的問題

請在幫我看看 謝謝


由 ivancclai 在 2023-11-15 03:32 發表:

版主大大你好


這是我 還不會修改


//=================================k棒 高低點============================================

HH:=H; LL:=L;
k1:=mod(HH,100000);
k2:=mod(LL,100000);

DH:=C*0; DL:=DH;
for i=1 to datacount do begin
for j=i+1 to datacount do begin
if HH[j]>HH[i] then begin
DH[i]:=j; break;
end;
end;
for j=i+1 to datacount do begin
if LL[j]<LL[i] then begin
DL[i]:=j; break;
end;
end;
end;
DRAWNUMBER(DH=0,HH,k1,0) ALIGN0 pxup25,colorWHITE;
DRAWNUMBER(DL=0,LL,k2,0) ALIGN0 pxdn25 colorWHITE;
DRAWNUMBER(DH>0,HH,k1,0) ALIGN0 pxup25,colorRED;
DRAWNUMBER(DL>0,LL,k2,0) ALIGN0 pxdn25 colorGREEN;
DRAWNUMBER(1,LL,HH-LL,0) ALIGN0 pxDN100 colorWHITE;//H-L 點數

//=======================================================================

//==================== 堆K ===========================================
HH:=H; LL:=L;
DH:=C*0; DL:=DH; 差:=HH-LL;
for i=2 to datacount-1 do begin
for j=i+1 to datacount do begin
if HH[j]>HH[i+1]-差[i] then begin
DH[i]:=j; break;
end;
end;
for j=i+1 to datacount do begin
if LL[j]<LL[i+1]+差[i] then begin
DL[i]:=j; break;
end;
end;
end;

REFXH:=mod(REFx(HIGH,1),100000);
REFXL:=mod(REFx(LOW,1),100000);
DRAWNUMBER(DH=0,HH,REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorWHITE;
DRAWNUMBER(DL=0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorWHITE;
DRAWTEXT(DH=0, HH, '+S=') align2,colorWHITE,PXUP75;
DRAWTEXT(DL=0, LL, '-s=') align2,colorWHITE,PXDN75;


DRAWNUMBER(DH>0,HH, REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorRED;
DRAWTEXT(DH>0, HH, '+S=') align2,colorRED,PXUP75;
DRAWNUMBER(DL>0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorGREEN;
DRAWTEXT(DL>0, LL,'-s=') align2,colorGREEN,PXDN75;
//=============================================================================

SH:=SYSPARAM(4); SL:=SYSPARAM(5); SS:=SH-SL;
STICKLINE(1,SH+SS*0.1,SL-SS*0.1,0,0) COLORTRANSPARENT;

目前數字是對的

K棒高低點位 顏色變化是正確的
+S and -S 數字正確 顏色變化還是不正確 我不會修改 可以幫我看看 謝謝


由 cgjj 在 2023-11-15 10:38 發表:

引用:
最初由 ivancclai 發表
版主大大你好


這是我 還不會修改


//=================================k棒 高低點============================================

HH:=H; LL:=L;
k1:=mod(HH,100000);
k2:=mod(LL,100000);

DH:=C*0; DL:=DH;
for i=1 to datacount do begin
for j=i+1 to datacount do begin
if HH[j]>HH[i] then begin
DH[i]:=j; break;
end;
end;
for j=i+1 to datacount do begin
if LL[j]<LL[i] then begin
DL[i]:=j; break;
end;
end;
end;
DRAWNUMBER(DH=0,HH,k1,0) ALIGN0 pxup25,colorWHITE;
DRAWNUMBER(DL=0,LL,k2,0) ALIGN0 pxdn25 colorWHITE;
DRAWNUMBER(DH>0,HH,k1,0) ALIGN0 pxup25,colorRED;
DRAWNUMBER(DL>0,LL,k2,0) ALIGN0 pxdn25 colorGREEN;
DRAWNUMBER(1,LL,HH-LL,0) ALIGN0 pxDN100 colorWHITE;//H-L 點數

//=======================================================================

//==================== 堆K ===========================================
HH:=H; LL:=L;
DH:=C*0; DL:=DH; 差:=HH-LL;
for i=2 to datacount-1 do begin
for j=i+1 to datacount do begin
if HH[j]>HH[i+1]-差[i] then begin
DH[i]:=j; break;
end;
end;
for j=i+1 to datacount do begin
if LL[j]<LL[i+1]+差[i] then begin
DL[i]:=j; break;
end;
end;
end;

REFXH:=mod(REFx(HIGH,1),100000);
REFXL:=mod(REFx(LOW,1),100000);
DRAWNUMBER(DH=0,HH,REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorWHITE;
DRAWNUMBER(DL=0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorWHITE;
DRAWTEXT(DH=0, HH, '+S=') align2,colorWHITE,PXUP75;
DRAWTEXT(DL=0, LL, '-s=') align2,colorWHITE,PXDN75;


DRAWNUMBER(DH>0,HH, REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorRED;
DRAWTEXT(DH>0, HH, '+S=') align2,colorRED,PXUP75;
DRAWNUMBER(DL>0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorGREEN;
DRAWTEXT(DL>0, LL,'-s=') align2,colorGREEN,PXDN75;
//=============================================================================

SH:=SYSPARAM(4); SL:=SYSPARAM(5); SS:=SH-SL;
STICKLINE(1,SH+SS*0.1,SL-SS*0.1,0,0) COLORTRANSPARENT;

目前數字是對的

K棒高低點位 顏色變化是正確的
+S and -S 數字正確 顏色變化還是不正確 我不會修改 可以幫我看看 謝謝



您確定數字沒錯嗎?

前面說的
Refx(H,1)-(H-L)
Refx(L,1)+(H-L)

與您這兩行(紅字部分)
DRAWNUMBER(DH=0,HH,REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorWHITE;
DRAWNUMBER(DL=0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorWHITE;

兩者的邏輯不一致!!!


由 ivancclai 在 2023-11-15 10:43 發表:

版主大大你好


我要的是我寫 謝謝你 可以幫我改成此邏輯

Refx(H,1)-(H-L)
Refx(L,1)+(H-L)

DRAWNUMBER(DH=0,HH,REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorWHITE;
DRAWNUMBER(DL=0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorWHITE;

寫程式的部分才正確 謝謝

謝謝


由 cgjj 在 2023-11-15 10:54 發表:

引用:
最初由 ivancclai 發表
版主大大你好


我要的是我寫 謝謝你 可以幫我改成此邏輯

Refx(H,1)-(H-L)
Refx(L,1)+(H-L)

DRAWNUMBER(DH=0,HH,REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorWHITE;
DRAWNUMBER(DL=0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorWHITE;

寫程式的部分才正確 謝謝

謝謝



"寫程式的部分" 所指為何??? @@
您還是沒有講清楚,那一個才是正確的!!!


由 ivancclai 在 2023-11-15 10:54 發表:

我不知道這兩者有何差異


由 ivancclai 在 2023-11-15 10:55 發表:

DRAWNUMBER(DH=0,HH,REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorWHITE;
DRAWNUMBER(DL=0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorWHITE;
這一個正確 我debug 過


由 cgjj 在 2023-11-15 11:41 發表:

引用:
最初由 ivancclai 發表
我不知道這兩者有何差異


抱歉,前面我貼錯段落了
要貼 DH>0 和 DL>0 段落
卻誤貼為 DH=0 和 DL=0 段落

重新描述如下:

按先前的定義是:
改用 refx(H,1)-(H-L) 之值與未來的H做比較,若未來的H大過該值,則 DH>0 顯示紅
改用 refx(L,1)+(H-L) 之值與未來的L做比較,若未來的L小過該值,則 DL>0 顯示綠

而您現在撰寫的卻是:
DRAWNUMBER(DH>0,HH, REFXL+(HIGH-LOW),0) ALIGN1 pxup75,colorRED;
DRAWTEXT(DH>0, HH, '+S=') align2,colorRED,PXUP75;
DRAWNUMBER(DL>0,LL,REFXH-(HIGH-LOW),0) ALIGN1 pxdn75 colorGREEN;
式子中
當 DH>0 成立時,採 REFXL+(HIGH-LOW) 這個數畫紅,也就是 refx(L,1)+(H-L)
當 DL>0 成立時,採 REFXH-(HIGH-LOW) 這個數畫綠,也就是 refx(H,1)-(H-L)

DRAWNUMBER標示的數,與計算紅綠比較用的數,兩者不一致(相反了)!!!


由 ivancclai 在 2023-11-15 13:56 發表:

版主大大你好

謝謝你的解釋 要如何修正計算值跟 DRAWNUMBER 一致呢

按定義是:
改用 refx(L,1)+(H-L) 之值與未來的H做比較,若未來的H大過該值,則 DH>0 顯示紅
改用 refx(H,1)-(H-L) 之值與未來的L做比較,若未來的L小過該值,則 DL>0 顯示綠

謝謝版ˋ主大大


由 cgjj 在 2023-11-15 14:54 發表:

引用:
最初由 ivancclai 發表
版主大大你好

謝謝你的解釋 要如何修正計算值跟 DRAWNUMBER 一致呢

按定義是:
改用 refx(L,1)+(H-L) 之值與未來的H做比較,若未來的H大過該值,則 DH>0 顯示紅
改用 refx(H,1)-(H-L) 之值與未來的L做比較,若未來的L小過該值,則 DL>0 顯示綠

謝謝版ˋ主大大



原碼:
HH:=H; LL:=L; k1:=mod(HH,1000); k2:=mod(LL,1000); DH:=C*0; DL:=DH; 差:=HH-LL; for i=2 to datacount-1 do begin for j=i+1 to datacount do begin if HH[j]>LL[i+1]+差[i] then begin DH[i]:=j; break; end; end; for j=i+1 to datacount do begin if LL[j]<HH[i+1]-差[i] then begin DL[i]:=j; break; end; end; end;


由 ivancclai 在 2023-11-18 06:01 發表:

謝謝版主大大

我測試過是我需要的


由 ivancclai 在 2023-11-18 06:06 發表:

如圖例


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


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

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