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

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


由 a13923707868 在 2025-12-24 13:34 發表:

請問兩個以上的指標是否可以疊加在同一個圖上?

例如:
MACD + KD 或者程式碼應該編寫才能做到?而且都是滿座標可以各自分別辨識清楚?
感恩。

__________________
Stephen


由 cgjj 在 2025-12-24 14:13 發表:

回覆: 請問兩個以上的指標是否可以疊加在同一個圖上?

引用:
最初由 a13923707868 發表
例如:
MACD + KD 或者程式碼應該編寫才能做到?而且都是滿座標可以各自分別辨識清楚?
感恩。



請參考這邊的回答
http://www.chiefox.com.tw/bbs/showt...&threadid=23754


由 a13923707868 在 2025-12-24 14:47 發表:

感恩,我來試試看。

__________________
Stephen


由 a13923707868 在 2025-12-24 17:20 發表:

想請教:
sysparam(2);//主圖可見K線最初的位置
sysparam(3);//主圖可見K線最後的位置
以日線即時盤而言,上述那一個是今天的位置?

__________________
Stephen


由 cgjj 在 2025-12-24 17:34 發表:

引用:
最初由 a13923707868 發表
想請教:
sysparam(2);//主圖可見K線最初的位置
sysparam(3);//主圖可見K線最後的位置
以日線即時盤而言,上述那一個是今天的位置?



是主圖目前可視範圍的首根和末根!

主圖目前可視範圍,不一定會有今天的K棒,(例如移到過去觀看歷史K棒)


由 a13923707868 在 2025-12-24 18:23 發表:

這個我我知道,但我想確認所謂的"最初"k線是在右邊或左邊?(相對"最後"k線就是在反方向)。

__________________
Stephen


由 cgjj 在 2025-12-24 19:25 發表:

引用:
最初由 a13923707868 發表
這個我我知道,但我想確認所謂的"最初"k線是在右邊或左邊?(相對"最後"k線就是在反方向)。


最初就是比較早的,當然就是主圖最左邊的那根
最後就是比較晚的,當然就是主圖最右邊的那根


由 a13923707868 在 2025-12-25 12:37 發表:

感恩。

__________________
Stephen


由 a13923707868 在 2025-12-25 15:27 發表:

POS_B:=sysparam(2);//主圖可見K線最初的位置(早,左邊)
POS_E:=sysparam(3);//主圖可見K線最後的位置(晚,右邊)
V_MAX:=V;V_MIN:=V;
FOR i=POS_E TO POS_B DO
BEGIN
V_MAX:=MAX(V_MAX,REF(V,i));
V_MIN:=MIN(V_MIN,REF(V,i));
END;
V_MID:=(V_MAX);
///// OVB彩帶 //////////////////////
OBV:=SUM(SGN(CLOSE-REF(CLOSE,1))*VOL,0);
EV1:=MA(OBV,50);
EV2:=MA(OBV,10);
DM:=EV2-EV1;
FILLRGN(EV2> EV1,V_MID+30*0.01*V_MID,V_MID+70*0.01*V_MID),COLORBFBFFF;
FILLRGN((EV2> EV1) AND DM<REF(DM,1),V_MID+42*0.01*V_MID,V_MID+58*0.01*V_MID),COLORFFE8F5;
FILLRGN((EV2> EV1) AND DM<REF(DM,1) AND EV2>REF(EV2,1),V_MID+35*0.01*V_MID,V_MID+65*0.01*V_MID),COLORFFE8F5;
FILLRGN(EV2<=EV1,V_MID+30*0.01*V_MID,V_MID+70*0.01*V_MID),COLORFFFFAB;
FILLRGN(EV2<=EV1 AND DM>REF(DM,1) AND EV2>REF(EV2,1),V_MID+42*0.01*V_MID,V_MID+58*0.01*V_MID),COLORC9FFFF;
FILLRGN(EV2<=EV1 AND DM>REF(DM,1) AND EV2<REF(EV2,1),V_MID+35*0.01*V_MID,V_MID+65*0.01*V_MID),COLORC9FFFF;
//////////////////////////////////////////////////////////////////////////
{Volume , VOL , 成交張數}
N1:=5;N2:=20;N3:=20;
V5:MA(VOL,N1),Colora800a8{1c1cff} PRECISION0,lineTHICK1;
MA5:=V5;
PARTLINE(MA5>=REF(MA5,1),MA5),Colora800a8,linethick5;
///
V2:MA(VOL,N2),Color200000 PRECISION0,lineTHICK1;
MA20:=V2;
PARTLINE(MA20>=REF(MA20,1),MA20),Color200000,linethick5;
///
股本: (FINANCE(20)/100000),color008f00,POINTDOT;
總張:VOL,VOLSTICK,Colorblack,PRECISION0;
//////////////////////////////////////////////////////

程式碼如上,我希望得到OVB取均值&計算乖離變化,將類似如圖的水平彩帶疊加在成交量裡面&範圍是介於
1/2倍可見區最大量~1倍可見區間最大量,以此區間為100%,的相對應百分比。

功力實在不足,我只能畫出扭曲的彩帶。不知是否可以幫忙修正?
感恩

__________________
Stephen


由 a13923707868 在 2025-12-25 15:31 發表:

正常來說:

V_MID:=(V_MAX)*0.5;

以我目前的程式碼會畫在每根k棒的中間。很不清楚。

__________________
Stephen


由 cgjj 在 2025-12-26 00:30 發表:

引用:
最初由 a13923707868 發表
POS_B:=sysparam(2);//主圖可見K線最初的位置(早,左邊)
POS_E:=sysparam(3);//主圖可見K線最後的位置(晚,右邊)
V_MAX:=V;V_MIN:=V;
FOR i=POS_E TO POS_B DO
BEGIN
V_MAX:=MAX(V_MAX,REF(V,i));
V_MIN:=MIN(V_MIN,REF(V,i));
END;
V_MID:=(V_MAX);
///// OVB彩帶 //////////////////////
OBV:=SUM(SGN(CLOSE-REF(CLOSE,1))*VOL,0);
EV1:=MA(OBV,50);
EV2:=MA(OBV,10);
DM:=EV2-EV1;
FILLRGN(EV2> EV1,V_MID+30*0.01*V_MID,V_MID+70*0.01*V_MID),COLORBFBFFF;
FILLRGN((EV2> EV1) AND DM<REF(DM,1),V_MID+42*0.01*V_MID,V_MID+58*0.01*V_MID),COLORFFE8F5;
FILLRGN((EV2> EV1) AND DM<REF(DM,1) AND EV2>REF(EV2,1),V_MID+35*0.01*V_MID,V_MID+65*0.01*V_MID),COLORFFE8F5;
FILLRGN(EV2<=EV1,V_MID+30*0.01*V_MID,V_MID+70*0.01*V_MID),COLORFFFFAB;
FILLRGN(EV2<=EV1 AND DM>REF(DM,1) AND EV2>REF(EV2,1),V_MID+42*0.01*V_MID,V_MID+58*0.01*V_MID),COLORC9FFFF;
FILLRGN(EV2<=EV1 AND DM>REF(DM,1) AND EV2<REF(EV2,1),V_MID+35*0.01*V_MID,V_MID+65*0.01*V_MID),COLORC9FFFF;
//////////////////////////////////////////////////////////////////////////
{Volume , VOL , 成交張數}
N1:=5;N2:=20;N3:=20;
V5:MA(VOL,N1),Colora800a8{1c1cff} PRECISION0,lineTHICK1;
MA5:=V5;
PARTLINE(MA5>=REF(MA5,1),MA5),Colora800a8,linethick5;
///
V2:MA(VOL,N2),Color200000 PRECISION0,lineTHICK1;
MA20:=V2;
PARTLINE(MA20>=REF(MA20,1),MA20),Color200000,linethick5;
///
股本: (FINANCE(20)/100000),color008f00,POINTDOT;
總張:VOL,VOLSTICK,Colorblack,PRECISION0;
//////////////////////////////////////////////////////

程式碼如上,我希望得到OVB取均值&計算乖離變化,將類似如圖的水平彩帶疊加在成交量裡面&範圍是介於
1/2倍可見區最大量~1倍可見區間最大量,以此區間為100%,的相對應百分比。

功力實在不足,我只能畫出扭曲的彩帶。不知是否可以幫忙修正?
感恩



前面這一段 V_MAX 和 V_MIN,就算錯了!

POS_B:=sysparam(2);//主圖可見K線最初的位置(早,左邊)
POS_E:=sysparam(3);//主圖可見K線最後的位置(晚,右邊)
V_MAX:=V;V_MIN:=V;
FOR i=POS_E TO POS_B DO
BEGIN
V_MAX:=MAX(V_MAX,REF(V,i));
V_MIN:=MIN(V_MIN,REF(V,i));
END;


正確的寫法是像這樣:
原碼:
VV:=V; POS_B:=sysparam(2);//主圖可見K線最初的位置(早,左邊) POS_E:=sysparam(3);//主圖可見K線最後的位置(晚,右邊) V_MAX:=VV[POS_B]; V_MIN:=VV[POS_B]; FOR i=POS_B+1 TO POS_E DO BEGIN if VV[i]>V_MAX then V_MAX:=VV[i]; if VV[i]<V_MIN then V_MIN:=VV[i]; END;


由 cgjj 在 2025-12-26 08:54 發表:

其實您目前想算的這個,也可以反過來思考,簡化為:

直接把 OVB彩帶 當主軸畫出。
再把成交量按百分比去疊,不就簡單多了~~
例如:

OBV:=SUM(SGN(CLOSE-REF(CLOSE,1))*VOL,0);
EV1:MA(OBV,50);
EV2:MA(OBV,10);
DM:=EV2-EV1;
FILLRGN(EV2> EV1,EV1,EV2),COLORBFBFFF;
FILLRGN(EV2<=EV1,EV1,EV2),COLORFFFFAB;
FILLRGN(EV2<=EV1 AND DM>REF(DM,1) AND EV2>REF(EV2,1),EV1,EV2),COLORC9FFFF;
FILLRGN(EV2<=EV1 AND DM>REF(DM,1) AND EV2<REF(EV2,1),EV1,EV2),COLORC9FFFF;
V VOLSTICK NOAXIS;


由 a13923707868 在 2025-12-26 16:08 發表:

感恩~~初步的效果出來了!但,我希望能夠將扭曲的彩帶轉呈水平的彩帶(如附圖的RSI00),要轉換的百分比前(我可以自行轉換),我必須先求得"畫線依據可見區間"的最大&最小,上面所附的程式碼邏輯我寫的有問題,所以我畫成扭曲的彩帶,可否再次幫忙修正求得區間最大值&最小值?
感恩。

__________________
Stephen


由 cgjj 在 2025-12-26 16:14 發表:

引用:
最初由 a13923707868 發表
感恩~~初步的效果出來了!但,我希望能夠將扭曲的彩帶轉呈水平的彩帶(如附圖的RSI00),要轉換的百分比前(我可以自行轉換),我必須先求得"畫線依據可見區間"的最大&最小,上面所附的程式碼邏輯我寫的有問題,所以我畫成扭曲的彩帶,可否再次幫忙修正求得區間最大值&最小值?
感恩。



前面給你的 "正確的寫法"
V_MAX 和 V_MIN 就是畫面區間成交量之最大值與最小值

若您需求畫面區間OBV之最大值與最小值,方法是一樣的,依樣畫葫蘆去求就可


由 a13923707868 在 2025-12-26 16:26 發表:

啊!!!
抱歉我沒有看到那一段回覆,
造成困擾,深感抱歉。

__________________
Stephen


由 a13923707868 在 2025-12-26 20:31 發表:

我必須誠實說:我是拼湊出來勉強可以用!但,還有2個問題:(詳附圖比較)
1. y 軸座標不對。
2. 彩帶起始點,我是試誤法得到的。試著用其他的計算,有時圖形的畫法會跑掉。
程式碼如下:
///// OVB //////////////////////
OBV:=SUM(SGN(CLOSE-REF(CLOSE,1))*VOL,0);
/// 可見顯示區間的最大量與最小量 //////////
VV:=V;
POS_B:=sysparam(2);//主圖可見K線最初的位置(早,左邊)
POS_E:=sysparam(3);//主圖可見K線最後的位置(晚,右邊)
V_MAX:=VV[POS_B];
V_MIN:=VV[POS_B];
FOR i=POS_B+1 TO POS_E DO BEGIN
if VV[i]>V_MAX then V_MAX:=VV[i];
if VV[i]<V_MIN then V_MIN:=VV[i];
END;
V_MID:=(V_MAX)*1.0;
///// OVBDM彩帶 //////////////////////
//OBV:=SUM(SGN(CLOSE-REF(CLOSE,1))*VOL,0);
EV1:=MA(OBV,50);
EV2:=MA(OBV,10);
DM:=EV2-EV1;
FILLRGN(EV2> EV1,V_MID+30*0.01*V_MID,V_MID+70*0.01*V_MID),COLORBFBFFF;
FILLRGN((EV2> EV1) AND DM<REF(DM,1),V_MID+42*0.01*V_MID,V_MID+58*0.01*V_MID),COLORFFE8F5;
FILLRGN((EV2> EV1) AND DM<REF(DM,1) AND EV2>REF(EV2,1),V_MID+35*0.01*V_MID,V_MID+65*0.01*V_MID),COLORFFE8F5;
FILLRGN(EV2<=EV1,V_MID+30*0.01*V_MID,V_MID+70*0.01*V_MID),COLORFFFFAB;
FILLRGN(EV2<=EV1 AND DM>REF(DM,1) AND EV2>REF(EV2,1),V_MID+42*0.01*V_MID,V_MID+58*0.01*V_MID),COLORC9FFFF;
FILLRGN(EV2<=EV1 AND DM>REF(DM,1) AND EV2<REF(EV2,1),V_MID+35*0.01*V_MID,V_MID+65*0.01*V_MID),COLORC9FFFF;
//////////////////////////////////////////////////////////////////////////
V VOLSTICK NOAXIS;
//////////////////////////////////////
N1:=5;N2:=20;N3:=20;
V5:MA(VOL,N1),Colora800a8,PRECISION0,lineTHICK1;
PARTLINE(MA5>=REF(MA5,1),MA5),Colora800a8,linethick3;
///
V2:MA(VOL,N2),Color200000,PRECISION0,lineTHICK1;
PARTLINE(MA20>=REF(MA20,1),MA20),Color200000,linethick3;
///
股本:(FINANCE(20)/100000),color008f00,LINETHICK0;
總張:VOL,Colorblack,LINETHICK0;
///
當沖: SEQDATA('','DayTrading','Shares'),COLORBLACK,linethick1;
沖%:當沖/VOL*100,COLORRED,LINETHICK0;
MA50:MA(VOL,N3),Colorblue, PRECISION0,lineTHICK1;

__________________
Stephen


由 cgjj 在 2025-12-27 22:58 發表:

引用:
最初由 a13923707868 發表
我必須誠實說:我是拼湊出來勉強可以用!但,還有2個問題:(詳附圖比較)
1. y 軸座標不對。
2. 彩帶起始點,我是試誤法得到的。試著用其他的計算,有時圖形的畫法會跑掉。
程式碼如下:
///// OVB //////////////////////
OBV:=SUM(SGN(CLOSE-REF(CLOSE,1))*VOL,0);
/// 可見顯示區間的最大量與最小量 //////////
VV:=V;
POS_B:=sysparam(2);//主圖可見K線最初的位置(早,左邊)
POS_E:=sysparam(3);//主圖可見K線最後的位置(晚,右邊)
V_MAX:=VV[POS_B];
V_MIN:=VV[POS_B];
FOR i=POS_B+1 TO POS_E DO BEGIN
if VV[i]>V_MAX then V_MAX:=VV[i];
if VV[i]<V_MIN then V_MIN:=VV[i];
END;
V_MID:=(V_MAX)*1.0;
///// OVBDM彩帶 //////////////////////
~~~~~略~~~~~



概念搞混了,當然不對呀!

那些元素當主軸(直接畫),那些元素當副軸(按主軸畫面頂底值,按百分比疊上),您要理的清楚呀!

當主軸者,是用其值直接畫線。
亦即 Y 軸座標,會是主軸值的頂底範圍

當副軸者,不是按其原本的值來直接畫!
是以副軸的頂底值當100%,去換算為相等比例在主軸的相對位置值來畫。Y軸座標值與副軸值無關連。

您將 V 值用了NOAXIS來畫(亦即當副軸)
卻也將 OBV 按比例來畫,這不是很奇怪嗎!!!

如此當然Y軸當然會跟您預想的不一樣呀

不建議把太多的值,同時放在一個副圖內。
概念不清,會很容易搞混的!


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


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

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