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

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


由 tsh 在 2016-05-23 20:28 發表:

取區間高價

請問我想取得自5ma跟42ma黃金交叉後, 自過黃金交叉高點的第一根k棒 到 跌破42ma 的第一根k棒 之間的最高價應如何寫? 謝謝版主!! 


由 cyberpeace 在 2016-05-23 20:56 發表:

http://www.chiefox.com.tw/bbs/showt...ht=%B1%F8%A5%F3

tsh兄晚安, 請參考這一篇提問,應可順利解決您的問題.

BRGS


由 tsh 在 2016-05-23 22:56 發表:

ma5:ma(c,5);
ma42:ma(c,42);
CKU:=ma5>ma42 and ref(ma5,1)<=ref(ma42,1) ;
XX:=BARSSINCE(CKU);
AA:=C>REF(H,XX);
BB:= C<MA42;
{UNum:=SUM(CKU,0);
DNum:=SUM(AA,0);
LNum:=sum(BB,0);
RK:=AA and DNum=DNum[datacount];
HK:=CKU and DNum=DNum[datacount];
LK:=BB and DNum=DNum[datacount];}

SL:=BARSSINCE(AA);
SR:=BARSSINCE(BB);
MH:hhv(H,sr+1); MH:=ref(MH,SL);
VERTLINE(MH) linedot;

我希望在取得AA 到 BB  區間最高價畫線, 但結果是每一K棒都畫線 , 請問應如何修改?謝謝版主!!


由 cgjj 在 2016-05-23 23:40 發表:

引用:
最初由 tsh 發表
ma5:ma(c,5);
ma42:ma(c,42);
CKU:=ma5>ma42 and ref(ma5,1)<=ref(ma42,1) ;
XX:=BARSSINCE(CKU);
AA:=C>REF(H,XX);
BB:= C<MA42;
{UNum:=SUM(CKU,0);
DNum:=SUM(AA,0);
LNum:=sum(BB,0);
RK:=AA and DNum=DNum[datacount];
HK:=CKU and DNum=DNum[datacount];
LK:=BB and DNum=DNum[datacount];}

SL:=BARSSINCE(AA);
SR:=BARSSINCE(BB);
MH:hhv(H,sr+1); MH:=ref(MH,SL);
VERTLINE(MH) linedot;

我希望在取得AA 到 BB  區間最高價畫線, 但結果是每一K棒都畫線 , 請問應如何修改?謝謝版主!!



那是您條件本身的關係
AA:=C>REF(H,XX);
BB:= C<MA42;
如此 AA 和 BB 都會有連續成立的狀況


由 tsh 在 2016-05-24 07:46 發表:

請問我若要AA 跟 BB都是要符合第一次出現應如何寫? 謝謝版主!!


由 cgjj 在 2016-05-24 08:37 發表:

引用:
最初由 tsh 發表
請問我若要AA 跟 BB都是要符合第一次出現應如何寫? 謝謝版主!!



AA:=C>REF(H,XX);
BB:= C<MA42;


AA:=cross(c,REF(H,XX));
BB:=cross(MA42,C);


由 tsh 在 2016-05-24 08:46 發表:

我試過還是一樣每跟都出現,麻煩版主了,謝謝!!


由 cgjj 在 2016-05-24 08:51 發表:

引用:
最初由 tsh 發表
我試過還是一樣每跟都出現,麻煩版主了,謝謝!!


MH 是價格不是條件

請把這行刪除
VERTLINE(MH) linedot;


由 cgjj 在 2016-05-24 09:03 發表:

範例如下:

MA5:ma(c,5);
MA42:ma(c,42);
CK1:=Cross(MA5,MA42);
CK1:=Cross(C,ref(H,barslast(CK1)));
CK2:=Cross(MA42,C);
CK1SP:=barslast(CK1);
CK2SP:=barslast(CK2);
MH:HHV(H,CK1SP+1);
MH:=ref(MH,CK2SP);
VERTLINE(CK1) colorred linedot;
VERTLINE(CK2) colorgreen linedot;

其中的 MH 就是您要的數值


由 tsh 在 2016-05-24 09:09 發表:

謝謝版主!!


由 tsh 在 2016-05-24 11:36 發表:

版主我是要 CK1到CK2間的最高價(MH)畫線, 不是畫過MA5跟MA42黃金交叉那跟K棒高點. 應如何更改?再麻煩你, 謝謝版主!!


由 cgjj 在 2016-05-24 12:03 發表:

引用:
最初由 tsh 發表
版主我是要 CK1到CK2間的最高價(MH)畫線, 不是畫過MA5跟MA42黃金交叉那跟K棒高點. 應如何更改?再麻煩你, 謝謝版主!!


它畫的就是您要的數值了唷

CK2那根之後畫的MH,就是CK1與CK2間的最高價
它是呈現在CK2那根之後
在CK2之前畫的,是上一區間的值


由 tsh 在 2016-05-24 12:51 發表:

不好意思, 我沒表達清楚, 附上圖, 再麻煩版主,謝謝!!


由 tsh 在 2016-05-24 12:57 發表:

引用:
最初由 tsh 發表
不好意思, 我沒表達清楚, 附上圖, 再麻煩版主,謝謝!!


MH要等於 綠色箭頭那跟高點,也是要畫紅色虛線的K棒


由 cgjj 在 2016-05-24 13:19 發表:

引用:
最初由 tsh 發表
MH要等於 綠色箭頭那跟高點,也是要畫紅色虛線的K棒


您前面所說的是要求該價,不是要標示該位置,兩者應用是大不相同的。

請見圖,這樣說明比較清楚


由 tsh 在 2016-05-24 13:24 發表:

BH跟AH請看綠色跟藍色字體說明,謝謝!!


由 tsh 在 2016-05-24 14:30 發表:

附圖


由 cgjj 在 2016-05-24 16:09 發表:

引用:
最初由 tsh 發表
BH跟AH請看綠色跟藍色字體說明,謝謝!!
附圖



就已經有算出您要的 BH值了
若仍看不懂,請來電公司,謝謝


由 tsh 在 2016-05-24 16:55 發表:

了解意思了,謝謝版主!!


由 cgjj 在 2016-05-24 17:25 發表:

引用:
最初由 tsh 發表
了解意思了,謝謝版主!!


不客氣 ^^


由 tsh 在 2016-05-25 20:59 發表:

版主再請教你, 我若
1.只要最後一次符合條件出現就好,前面發生的就不用劃線
2.收盤價突破最後一次的高價設成預警
應如何更改程式? 麻煩你, 謝謝!!


由 cgjj 在 2016-05-26 10:40 發表:

引用:
最初由 tsh 發表
版主再請教你, 我若
1.只要最後一次符合條件出現就好,前面發生的就不用劃線



MA5:ma(c,5);
MA42:ma(c,42);
CK1:=Cross(MA5,MA42);
CK1:=Cross(C,ref(H,barslast(CK1)));
CK2:=Cross(MA42,C);
CK1SP:=barslast(CK1);
CK2SP:=barslast(CK2);
MH:HHV(H,CK1SP+1) colorred linethick0;
MH:=ref(MH,CK2SP);
CK2N:=sum(CK2,0);
DWCK:=barslast(CK2N<>CK2N[datacount])>1;
PARTLINE(DWCK,MH) colorred;
VERTLINE(CK1) colorred linedot;
VERTLINE(CK2) colorgreen linedot;


由 cgjj 在 2016-05-26 10:41 發表:

引用:
最初由 tsh 發表
版主再請教你, 我若
2.收盤價突破最後一次的高價設成預警
應如何更改程式? 麻煩你, 謝謝!!



用 C>MH 即可判斷


由 tsh 在 2016-05-27 13:05 發表:

MA5:ma(c,5);
MA42:ma(c,42);
CK1:=Cross(MA5,MA42);
CK1:=Cross(C,ref(H,barslast(CK1)));
CK2:=Cross(MA42,C);
CK1SP:=barslast(CK1);
CK2SP:=barslast(CK2);
MH:HHV(H,CK1SP+1) colorred linethick0;
MH:=ref(MH,CK2SP);
CK2N:=sum(CK2,0);
DWCK:=barslast(CK2N<>CK2N[datacount])>1;
PARTLINE(DWCK,MH) colorred;
VERTLINE(CK1) colorred linedot;
VERTLINE(CK2) colorgreen linedot;

CK1:=Cross(MA5,MA42); CK1:=Cross(C,ref(H,barslast(CK1)));

請教版主,我若想改成黃金交叉後,取第一根 H>ref(h,1) and l>ref(l,1) 到ck2間 取最高價, 應如何改,我改成以下所列,但無法呈現高價, 一直麻煩版主真不好意思

MA5:ma(c,5);
MA42:ma(c,42);
CK1:=Cross(MA5,MA42);
CK3:=h>ref(h,1) and l>ref(l,1);
CK2:=Cross(MA42,C);
CK3SP:=barslast(CK3);
CK2SP:=barslast(CK2);
MH:HHV(H,CK3SP+1) colorred linethick0;
MH:=ref(MH,CK2SP);
CK2N:=sum(CK2,0);
DWCK:=barslast(CK2N<>CK2N[datacount])>1;
PARTLINE(DWCK,MH) colorred;
VERTLINE(CK3) colorred linedot;
VERTLINE(CK2) colorgreen linedot;


由 cgjj 在 2016-05-27 14:09 發表:

引用:
最初由 tsh 發表
MA5:ma(c,5);
MA42:ma(c,42);
CK1:=Cross(MA5,MA42);
CK1:=Cross(C,ref(H,barslast(CK1)));
CK2:=Cross(MA42,C);
CK1SP:=barslast(CK1);
CK2SP:=barslast(CK2);
MH:HHV(H,CK1SP+1) colorred linethick0;
MH:=ref(MH,CK2SP);
CK2N:=sum(CK2,0);
DWCK:=barslast(CK2N<>CK2N[datacount])>1;
PARTLINE(DWCK,MH) colorred;
VERTLINE(CK1) colorred linedot;
VERTLINE(CK2) colorgreen linedot;

CK1:=Cross(MA5,MA42); CK1:=Cross(C,ref(H,barslast(CK1)));

請教版主,我若想改成黃金交叉後,取第一根 H>ref(h,1) and l>ref(l,1) 到ck2間 取最高價, 應如何改,我改成以下所列,但無法呈現高價, 一直麻煩版主真不好意思

MA5:ma(c,5);
MA42:ma(c,42);
CK1:=Cross(MA5,MA42);
CK3:=h>ref(h,1) and l>ref(l,1);
CK2:=Cross(MA42,C);
CK3SP:=barslast(CK3);
CK2SP:=barslast(CK2);
MH:HHV(H,CK3SP+1) colorred linethick0;
MH:=ref(MH,CK2SP);
CK2N:=sum(CK2,0);
DWCK:=barslast(CK2N<>CK2N[datacount])>1;
PARTLINE(DWCK,MH) colorred;
VERTLINE(CK3) colorred linedot;
VERTLINE(CK2) colorgreen linedot;



MA5:ma(c,5);
MA42:ma(c,42);
CK:=Cross(MA5,MA42); CKSP:=barslast(CK);
CK1:=MA5>MA42 and H>ref(h,1) and l>ref(l,1);
CK1:=CK1 and sum(CK1,CKSP+1)=1;
CK2:=Cross(MA42,C);
CK1SP:=barslast(CK1);
CK2SP:=barslast(CK2);
MH:HHV(H,CK1SP+1) colorred linethick0;
MH:=ref(MH,CK2SP);
CK2N:=sum(CK2,0);
DWCK:=barslast(CK2N<>CK2N[datacount])>1;
PARTLINE(DWCK,MH) colorred;
VERTLINE(CK1) colorred linedot;
VERTLINE(CK2) colorgreen linedot;


由 tsh 在 2016-05-27 14:35 發表:

可以了,謝謝版主!!


由 tsh 在 2016-05-27 16:26 發表:

請問若ck,ck1,ck2都出現後發生新的交叉(ck時,則重新計算取mh,而不是取前一個符合ck,ck1,ck2的最高價應如何寫? 謝謝版主!!


由 cgjj 在 2016-05-27 16:33 發表:

引用:
最初由 tsh 發表
請問若ck,ck1,ck2都出現後發生新的交叉(ck時,則重新計算取mh,而不是取前一個符合ck,ck1,ck2的最高價應如何寫? 謝謝版主!!


不會發生此情況的

因為前面您已經定義
"只要最後一次符合條件出現就好,前面發生的就不用劃線"


由 tsh 在 2016-05-27 17:56 發表:

抱歉沒說清楚,我想判斷l>mh,但在ck2到l>mh間不能有均線死亡交叉,謝謝版主!!


由 cgjj 在 2016-05-27 17:59 發表:

引用:
最初由 tsh 發表
抱歉沒說清楚,我想判斷l>mh,但在ck2到l>mh間不能有均線死亡交叉,謝謝版主!!


很抱歉,看不是很懂您要做什麼?


由 tsh 在 2016-05-27 18:23 發表:

請看附圖,謝謝!!

綠色箭頭發生死亡交叉,雖然 h>mh,則不符合預警條件,
必須沒有發生死亡交叉又過mh高才會預警


由 cgjj 在 2016-05-27 18:35 發表:

引用:
最初由 tsh 發表
請看附圖,謝謝!!

綠色箭頭發生死亡交叉,雖然 h>mh,則不符合預警條件,
必須沒有發生死亡交叉又過mh高才會預警



圖片縮到這樣是無法閱讀的 !!!

看看是否為您要的
H>MH and sum(Cross(MA42,MA5),CK2SP+1)=0


由 tsh 在 2016-05-27 18:56 發表:

非常感謝版主!!

周末愉快!!


由 tsh 在 2016-06-04 20:21 發表:


由 tsh 在 2016-06-04 21:50 發表:

引用:
最初由 cgjj 發表
MA5:ma(c,5);
MA42:ma(c,42);
CK:=Cross(MA5,MA42); CKSP:=barslast(CK);
CK1:=MA5>MA42 and H>ref(h,1) and l>ref(l,1);
CK1:=CK1 and sum(CK1,CKSP+1)=1;
CK2:=Cross(MA42,C);
CK1SP:=barslast(CK1);
CK2SP:=barslast(CK2);
MH:HHV(H,CK1SP+1) colorred linethick0;
MH:=ref(MH,CK2SP);
CK2N:=sum(CK2,0);
DWCK:=barslast(CK2N<>CK2N[datacount])>1;
PARTLINE(DWCK,MH) colorred;
VERTLINE(CK1) colorred linedot;
VERTLINE(CK2) colorgreen linedot;



請教版主,我若想改成黃金交叉當根不算,取第一根 H>ref(h,1) and l>ref(l,1) 到ck2間 取最高價, 應如何改,原本程式會把黃金交叉當根k棒含在內, 因此若黃金交當根符合H>ref(h,1) and l>ref(l,1)時不會出現藍色線,還是出現紅色線(我增加 VERTLINE(CK) colorblue linedot, 請問如何更改? 謝謝!!


由 cgjj 在 2016-06-06 09:04 發表:

引用:
最初由 tsh 發表
請教版主,我若想改成黃金交叉當根不算,取第一根 H>ref(h,1) and l>ref(l,1) 到ck2間 取最高價, 應如何改,原本程式會把黃金交叉當根k棒含在內, 因此若黃金交當根符合H>ref(h,1) and l>ref(l,1)時不會出現藍色線,還是出現紅色線(我增加 VERTLINE(CK) colorblue linedot;), 請問如何更改? 謝謝!!


目前最高價是取 CK1 到 CK2 之間的

按前面定義黃金交叉為 Cross(MA5,MA42);

而 CK1
是黃金交叉後首次 H>ref(h,1) and l>ref(l,1) 成立的位置

CK1 到 CK2 間
仍是有機會發生黃金交叉的 (雖然H>ref(h,1) and l>ref(l,1)不成立)
因為CK與CK2兩者並非相反條件!!!

CK:=Cross(MA5,MA42);
CK2:=Cross(MA42,C);

這不是程式如何改的問題
而是原始規則本來就會發生的問題


由 tsh 在 2016-06-06 13:29 發表:

好的,謝謝!!


由 cgjj 在 2016-06-06 14:27 發表:

引用:
最初由 tsh 發表
好的,謝謝!!


不客氣


由 tsh 在 2016-06-07 11:05 發表:

引用:
最初由 cgjj 發表
MA5:ma(c,5);
MA42:ma(c,42);
CK1:=Cross(MA5,MA42);
CK1:=Cross(C,ref(H,barslast(CK1)));
CK2:=Cross(MA42,C);
CK1SP:=barslast(CK1);
CK2SP:=barslast(CK2);
MH:HHV(H,CK1SP+1) colorred linethick0;
MH:=ref(MH,CK2SP);
CK2N:=sum(CK2,0);
DWCK:=barslast(CK2N<>CK2N[datacount])>1;
PARTLINE(DWCK,MH) colorred;
VERTLINE(CK1) colorred linedot;
VERTLINE(CK2) colorgreen linedot;



請問mh 畫線並註明數字, 我增加下列指令. 但不知應如何讓數字只出現一次,不會每天都出現,謝謝版主!!

DRAWNUMBER(dwck,mh,mh,2);


由 cgjj 在 2016-06-07 11:52 發表:

引用:
最初由 tsh 發表
請問mh 畫線並註明數字, 我增加下列指令. 但不知應如何讓數字只出現一次,不會每天都出現,謝謝版主!!

DRAWNUMBER(dwck,mh,mh,2);




DRAWNUMBER(dwck,mh,mh,2);

改為
TT:=CK2 and CK2N=CK2N[datacount];
DRAWNUMBER(TT,mh,mh,2) PXUP9 ALIGN2;


由 tsh 在 2016-06-07 12:04 發表:

再請教一下我若要出現在最右方(如前第5天出現高點畫線,那高點數字出現在今天右邊)


由 cgjj 在 2016-06-13 08:33 發表:

引用:
最初由 tsh 發表
再請教一下我若要出現在最右方(如前第5天出現高點畫線,那高點數字出現在今天右邊)



TT:=CK2 and CK2N=CK2N[datacount];
DRAWNUMBER(TT,mh,mh,2) PXUP9 ALIGN2;

改為
TT:=DWCK and islastbar;
DRAWNUMBER(TT,mh,mh,2) PXUP9 ALIGN1 shift1;


由 tsh 在 2016-06-13 10:43 發表:

謝謝版主!!


由 tsh 在 2016-07-05 23:37 發表:

版主再請較一下,我若在日線取得dwck 想在30分K線畫出DWCK,應如何編寫?


由 cgjj 在 2016-07-06 09:24 發表:

引用:
最初由 tsh 發表
版主再請較一下,我若在日線取得dwck 想在30分K線畫出DWCK,應如何編寫?


原公式請先改為下面這樣:(假設名稱為 TEST)

MA5:ma(c,5);
MA42:ma(c,42);
CK:=Cross(MA5,MA42); CKSP:=barslast(CK);
CK1:=MA5>MA42 and H>ref(h,1) and l>ref(l,1);
CK1:=CK1 and sum(CK1,CKSP+1)=1;
CK2:=Cross(MA42,C);
CK1SP:=barslast(CK1);
CK2SP:=barslast(CK2);
MH:HHV(H,CK1SP+1) colorred linethick0;
MH:=ref(MH,CK2SP); CK2N:=sum(CK2,0);
MH:=MH*(BARSSINCE(CK2N=CK2N[datacount])>=0);
PARTLINE(MH>0,MH) colorred;
VERTLINE(CK1) colorred linedot;
VERTLINE(CK2) colorgreen linedot;
DRAWNUMBER(barpos=lbound(MH),MH,MH,2) PXUP9 ALIGN2;


再新增一個公式,內容為下面這樣: (應用於30分)

MH:="TEST.MH#DAY";
PARTLINE(MH>0,MH) colorred;
DRAWNUMBER(barpos=lbound(MH),MH,MH,2) PXUP9 ALIGN2;


由 tsh 在 2016-07-06 10:29 發表:

請問有辦法可以用同一個檔案,切到日線執行日線的畫線, 切到30分k時只畫高點?麻煩版主,謝謝!!


由 cgjj 在 2016-07-06 10:49 發表:

引用:
最初由 tsh 發表
請問有辦法可以用同一個檔案,切到日線執行日線的畫線, 切到30分k時只畫高點?麻煩版主,謝謝!!


不懂您意思

您前面所提
引用:
最初由 tsh 發表
版主再請較一下,我若在日線取得dwck 想在30分K線畫出DWCK,應如何編寫?

我的理解是
於30分K, 引用日線算出的MH值畫線

跟您現在問的問題相關嗎?


由 tsh 在 2016-07-06 11:09 發表:

1.日線先設成一個公式檔test
2.30分k 在設成另一個公式檔test1
 mh:='test.mh#day'
.
.
所以我若要看日線需執行test, 要看30分k需執行test1, 可不可以我只執行test1, 當我切換到日線時可以看到test的程式執行結果, 切到30分k時可以看到test1的程式執行結果?


由 cgjj 在 2016-07-06 11:32 發表:

引用:
最初由 tsh 發表
1.日線先設成一個公式檔test
2.30分k 在設成另一個公式檔test1
 mh:='test.mh#day'
.
.
所以我若要看日線需執行test, 要看30分k需執行test1, 可不可以我只執行test1, 當我切換到日線時可以看到test的程式執行結果, 切到30分k時可以看到test1的程式執行結果?



先建一個子公式,公式名稱為 TEST1_SUB (不需套用)
原碼:
MA5:=ma(c,5); MA42:=ma(c,42); CK:=Cross(MA5,MA42); CKSP:=barslast(CK); CK1:=MA5>MA42 and H>ref(h,1) and l>ref(l,1); CK1:=CK1 and sum(CK1,CKSP+1)=1; CK2:=Cross(MA42,C); CK1SP:=barslast(CK1); CK2SP:=barslast(CK2); MH:HHV(H,CK1SP+1); MH:=ref(MH,CK2SP); CK2N:=sum(CK2,0); MH:=MH*(BARSSINCE(CK2N=CK2N[datacount])>=0);


再建一個公式名稱為 TEST1
原碼:
if datatype=6 then begin //日線 MA5:=ma(c,5); MA42:=ma(c,42); CK:=Cross(MA5,MA42); CKSP:=barslast(CK); CK1:=MA5>MA42 and H>ref(h,1) and l>ref(l,1); CK1:=CK1 and sum(CK1,CKSP+1)=1; CK2:=Cross(MA42,C); CK1SP:=barslast(CK1); CK2SP:=barslast(CK2); MH:HHV(H,CK1SP+1) colorred linethick0; MH:=ref(MH,CK2SP); CK2N:=sum(CK2,0); MH:=MH*(BARSSINCE(CK2N=CK2N[datacount])>=0); end else if datatype=4 then begin //30分 MH:="TEST1_SUB.MH#DAY"; end; PARTLINE(MH>0,MH) colorred; DRAWNUMBER(barpos=lbound(MH),MH,MH,2) PXUP9 ALIGN2;


將 TEST1 套用於日線或30分線


由 tsh 在 2016-07-06 11:35 發表:

非常感謝版主!!


由 tsh 在 2016-07-06 12:55 發表:

引用:
最初由 cgjj 發表

DRAWNUMBER(dwck,mh,mh,2);

改為
TT:=CK2 and CK2N=CK2N[datacount];
DRAWNUMBER(TT,mh,mh,2) PXUP9 ALIGN2;



請問30分k也希望這樣畫法可以嗎?


由 cgjj 在 2016-07-06 13:00 發表:

引用:
最初由 tsh 發表
請問30分k也希望這樣畫法可以嗎?


已經有處理了唷,畫法相同


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


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

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