奇狐社區論壇 總頁數 (2): [1] 2 »
在這個頁面顯示本主題全部的 27 個文章

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


由 yoson168 在 2012-02-05 19:43 發表:

[問題]請問要如何寫出該程式

問題描敘如下:
條件:
最近四個碎形高點需低於季線
只要收盤站上最近四個碎形高點中最高的那一碎形高點

只要絛件成立:
1) 就在該根k線標示向上的紅箭頭 並 畫線(畫線是由最高的碎形高點劃到該根k線)
2) 標示最近四個 碎形高點,寫上H1, H2, H3, H4




附圖中,高低轉折點間的畫線程式如下:

input:n(2,2,5);

季線:ma(c,60);
A1:=REF(H,N)=HHV(H,2*N+1); B1:=FILTER(A1,N); C1:=BACKSET(B1,N+1); D1:=FILTER(C1,N);
A2:=REF(L,N)=LLV(L,2*N+1); B2:=FILTER(A2,N); C2:=BACKSET(B2,N+1); D2:=FILTER(C2,N);
E1:=(REF(LLV(L,2*N),1)+REF(HHV(H,2*N),1))/2; E2:=(H+L)/2;

H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
L1:=(D2 AND NOT(D1 AND E1<E2)); H2:=D1 AND NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1; F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,10000),X1));
G1:=F1>REF(F1,1); I1:=BACKSET(G1,2); LD:=I1>REF(I1,1);
L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1; F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2));
G2:=F2>REF(F2,1); I2:=BACKSET(G2,2); HD:=I2>REF(I2,1);
DRAWLINE(LD,L,HD,H,0),COLORGray,LINETHICK1;
DRAWLINE(HD,H,LD,L,0),COLORGray,LINETHICK1;


由 cgjj 在 2012-02-06 14:36 發表:

回覆: [問題]請問要如何寫出該程式

引用:
最初由 yoson168 發表
問題描敘如下:
條件:
最近四個碎形高點需低於季線
只要收盤站上最近四個碎形高點中最高的那一碎形高點

只要絛件成立:
1) 就在該根k線標示向上的紅箭頭 並 畫線(畫線是由最高的碎形高點劃到該根k線)
2) 標示最近四個 碎形高點,寫上H1, H2, H3, H4




附圖中,高低轉折點間的畫線程式如下:

input:n(2,2,5);

季線:ma(c,60);
A1:=REF(H,N)=HHV(H,2*N+1); B1:=FILTER(A1,N); C1:=BACKSET(B1,N+1); D1:=FILTER(C1,N);
A2:=REF(L,N)=LLV(L,2*N+1); B2:=FILTER(A2,N); C2:=BACKSET(B2,N+1); D2:=FILTER(C2,N);
E1:=(REF(LLV(L,2*N),1)+REF(HHV(H,2*N),1))/2; E2:=(H+L)/2;

H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
L1:=(D2 AND NOT(D1 AND E1<E2)); H2:=D1 AND NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1; F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,10000),X1));
G1:=F1>REF(F1,1); I1:=BACKSET(G1,2); LD:=I1>REF(I1,1);
L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1; F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2));
G2:=F2>REF(F2,1); I2:=BACKSET(G2,2); HD:=I2>REF(I2,1);
DRAWLINE(LD,L,HD,H,0),COLORGray,LINETHICK1;
DRAWLINE(HD,H,LD,L,0),COLORGray,LINETHICK1;




於尾端加入

HD4SP:=SUMBARS(HD,4);
HD4SP:=barslast(barpos=datacount-HD4SP[datacount]+1)+1 linethick;
CKQH:=sum(季線>H and HD,HD4SP);
CKMH:=C>HHV(H*HD,HD4SP);
CK:=BARSSINCE(CKQH and CKMH)=0;
HDNo:=sum(HD,HD4SP);
HDPP:=HD and lbound(CK)>0;
DRAWTEXT(HDNo=1 and HDPP,H,'H4') ALIGN0 pxup20;
DRAWTEXT(HDNo=2 and HDPP,H,'H3') ALIGN0 pxup20;
DRAWTEXT(HDNo=3 and HDPP,H,'H2') ALIGN0 pxup20;
DRAWTEXT(HDNo=4 and HDPP,H,'H1') ALIGN0 pxup20;
DRAWICON(CK,L,4) pxdn20;


由 yoson168 在 2012-02-09 11:33 發表:

不好意思,我沒描寫清楚,尚需您修改

謝謝你的指導,
不好意思,我沒描寫清楚,
尚需您修改
請看四個附圖的說明


由 yoson168 在 2012-02-09 11:34 發表:

第二個附圖

請和上圖一起看


由 yoson168 在 2012-02-09 11:37 發表:

另一個說明範例

這不是我要的結果


由 yoson168 在 2012-02-09 11:38 發表:

請和上圖一起看

這是我要的結果


由 yoson168 在 2012-02-09 11:57 發表:

補充說明

若條件成立,即於圖上已畫上藍色水平線且已標示向上紅箭頭
則可發現圖上之紅箭頭,一定是在H1, H2, H3, H4的右邊


由 cgjj 在 2012-02-10 10:36 發表:

回覆: 第二個附圖

引用:

回覆: 第二個附圖
最初由 yoson168 發表

請和上圖一起看


若按您前面定義之規則條件
1.最近四個碎形高點需低於季線
2.只要收盤站上最近四個碎形高點中最高的那一碎形高點

此圖其中最後一個碎形高點, 其最高價已高過季線
已經不合乎前面定義的 條件1
故最末根應該是沒有箭頭, 對吧

再麻煩您釐清規則了, 謝謝!


由 yoson168 在 2012-02-10 11:41 發表:

講話 不好意思,先前論述錯了

不好意思,先前論述錯了。
此四個碎形高點,不是一定非得「最近的四個碎形高點」
而是 => 四個碎形高點需低於季線,且這四個碎形高點是連續一起的,即這四個碎形高點中,不允許其中夾有其它碎形高點是高於季線的
=====================================================
總結條件如下:
條件一: 四個碎形高點需低於季線,且這四個碎形高點是連續一起的,即這四個碎形高點中,不允許其中夾有其它碎形高點是高於季線的
條件二: 收盤站上滿足條件一的四個碎形高點中最高的那一碎形高點,就做 (1) 就在該根k線標示向上的紅箭頭 並 畫線(畫線是由最高的碎形高點劃到該根k線) (2)標示此四個 碎形高點,寫上H1, H2, H3, H4
=====================================================
備註:若條件成立,即於圖上已畫上藍色水平線且已標示向上紅箭頭。則可發現圖上之紅箭頭,一定是在H1, H2, H3, H4的右邊


由 peter109 在 2012-02-11 12:46 發表:

回覆: [問題]請問要如何寫出該程式

引用:
最初由 yoson168 發表
問題描敘如下:
條件:
最近四個碎形高點需低於季線
只要收盤站上最近四個碎形高點中最高的那一碎形高點

只要絛件成立:
1) 就在該根k線標示向上的紅箭頭 並 畫線(畫線是由最高的碎形高點劃到該根k線)
2) 標示最近四個 碎形高點,寫上H1, H2, H3, H4




附圖中,高低轉折點間的畫線程式如下:

input:n(2,2,5);

季線:ma(c,60);
A1:=REF(H,N)=HHV(H,2*N+1); B1:=FILTER(A1,N); C1:=BACKSET(B1,N+1); D1:=FILTER(C1,N);
A2:=REF(L,N)=LLV(L,2*N+1); B2:=FILTER(A2,N); C2:=BACKSET(B2,N+1); D2:=FILTER(C2,N);
E1:=(REF(LLV(L,2*N),1)+REF(HHV(H,2*N),1))/2; E2:=(H+L)/2;

H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
L1:=(D2 AND NOT(D1 AND E1<E2)); H2:=D1 AND NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1; F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,10000),X1));
G1:=F1>REF(F1,1); I1:=BACKSET(G1,2); LD:=I1>REF(I1,1);
L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1; F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2));
G2:=F2>REF(F2,1); I2:=BACKSET(G2,2); HD:=I2>REF(I2,1);
DRAWLINE(LD,L,HD,H,0),COLORGray,LINETHICK1;
DRAWLINE(HD,H,LD,L,0),COLORGray,LINETHICK1;



01:=BARSLAST(HD);
X02:=REF(H,X01);
X03:=REF(X02,X01+1);
X04:=REF(X03,X01+1);
X05:=REF(X04,X01+1);
X06:MAX(X02,MAX(X03,MAX(X04,X05)));//連續四個HD中最高值
X06:=REF(X06,BARSLAST(HD AND X06<季線));//連續四個HD中最高值小於季線的對應價
X07:=CROSS(C,REF(X06,1));//符合條件
VERTLINE(X07);
//您要求的劃線 從略

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 cgjj 在 2012-02-13 00:29 發表:

回覆: 不好意思,先前論述錯了

引用:
最初由 yoson168 發表
不好意思,先前論述錯了。
此四個碎形高點,不是一定非得「最近的四個碎形高點」
而是 => 四個碎形高點需低於季線,且這四個碎形高點是連續一起的,即這四個碎形高點中,不允許其中夾有其它碎形高點是高於季線的
=====================================================
總結條件如下:
條件一: 四個碎形高點需低於季線,且這四個碎形高點是連續一起的,即這四個碎形高點中,不允許其中夾有其它碎形高點是高於季線的
條件二: 收盤站上滿足條件一的四個碎形高點中最高的那一碎形高點,就做 (1) 就在該根k線標示向上的紅箭頭 並 畫線(畫線是由最高的碎形高點劃到該根k線) (2)標示此四個 碎形高點,寫上H1, H2, H3, H4
=====================================================
備註:若條件成立,即於圖上已畫上藍色水平線且已標示向上紅箭頭。則可發現圖上之紅箭頭,一定是在H1, H2, H3, H4的右邊



條件可能仍不夠明確

若有連續六個碎形均低於季線
那麼可能其中同時會有三個碎形滿足 "四個碎形中最高" 條件
紅箭頭要如何處理呢 ?


由 yoson168 在 2012-02-13 11:11 發表:

若有超過四個碎形高點滿足條件,則採用最近的四個碎形高點

若有超過四個碎形高點滿足條件,則採用最近的四個碎形高點{如附圖中的黃色碎形高點H1, H2, H3, H4

總結條件如下:
-------------------------------------------------------------------------------------------------------------
條件一: 四個碎形高點需低於季線,且這四個碎形高點是連續一起的,即這四個碎形高點中,不允許其中夾有其它碎形高點是高於季線的。另外,若有超過四個碎形高點滿足條件,則採用最近的四個碎形高點
條件二: 收盤站上滿足條件一的四個碎形高點中最高的那一碎形高點,就做 (1) 就在該根k線標示向上的紅箭頭 並 畫線(畫線是由最高的碎形高點劃到該根k線) (2)標示此四個 碎形高點,寫上H1, H2, H3, H4
=====================================================
備註:若條件成立,即於圖上已畫上藍色水平線且已標示向上紅箭頭。則可發現圖上之紅箭頭,一定是在H1, H2, H3, H4的右邊


由 cgjj 在 2012-02-13 12:54 發表:

回覆: 若有超過四個碎形高點滿足條件,則採用最近的四個碎形高點

引用:
最初由 yoson168 發表
若有超過四個碎形高點滿足條件,則採用最近的四個碎形高點{如附圖中的黃色碎形高點H1, H2, H3, H4

總結條件如下:
-------------------------------------------------------------------------------------------------------------
條件一: 四個碎形高點需低於季線,且這四個碎形高點是連續一起的,即這四個碎形高點中,不允許其中夾有其它碎形高點是高於季線的。另外,若有超過四個碎形高點滿足條件,則採用最近的四個碎形高點
條件二: 收盤站上滿足條件一的四個碎形高點中最高的那一碎形高點,就做 (1) 就在該根k線標示向上的紅箭頭 並 畫線(畫線是由最高的碎形高點劃到該根k線) (2)標示此四個 碎形高點,寫上H1, H2, H3, H4
=====================================================
備註:若條件成立,即於圖上已畫上藍色水平線且已標示向上紅箭頭。則可發現圖上之紅箭頭,一定是在H1, H2, H3, H4的右邊



HD4SP:=SUMBARS(HD,4);
CKQHD:=HD and 季線>H;
CKQ4H:=sum(CKQHD,HD4SP)=4;
MM:=if(CKQ4H,HHV(HD*H,HD4SP),0);
MM:=ref(MM,barslast(MM<>0));
CK:=C>MM;
CK:=CK and sum(CK,barslast(CKQ4H)+1)=1;
HDNo:=SETVAL(CK,0,-SUMBARS(CKQHD,4),4);
HDNo:=SETVAL(CK,HDNo,-SUMBARS(CKQHD,3),3);
HDNo:=SETVAL(CK,HDNo,-SUMBARS(CKQHD,2),2);
HDNo:=SETVAL(CK,HDNo,-SUMBARS(CKQHD,1),1);
DRAWTEXT(HDNo=1 and CKQHD,H,'H1') ALIGN0 pxup20;
DRAWTEXT(HDNo=2 and CKQHD,H,'H2') ALIGN0 pxup20;
DRAWTEXT(HDNo=3 and CKQHD,H,'H3') ALIGN0 pxup20;
DRAWTEXT(HDNo=4 and CKQHD,H,'H4') ALIGN0 pxup20;
DRAWICON(CK,H,4) pxup20;


由 peter109 在 2012-02-13 18:40 發表:

回覆: 回覆: 若有超過四個碎形高點滿足條件,則採用最近的四個碎形高點

引用:
最初由 cgjj 發表
HD4SP:=SUMBARS(HD,4);
CKQHD:=HD and 季線>H;
CKQ4H:=sum(CKQHD,HD4SP)=4;
MM:=if(CKQ4H,HHV(HD*H,HD4SP),0);
MM:=ref(MM,barslast(MM<>0));
CK:=C>MM;
CK:=CK and sum(CK,barslast(CKQ4H)+1)=1;
HDNo:=SETVAL(CK,0,-SUMBARS(CKQHD,4),4);
HDNo:=SETVAL(CK,HDNo,-SUMBARS(CKQHD,3),3);
HDNo:=SETVAL(CK,HDNo,-SUMBARS(CKQHD,2),2);
HDNo:=SETVAL(CK,HDNo,-SUMBARS(CKQHD,1),1);
DRAWTEXT(HDNo=1 and CKQHD,H,'H1') ALIGN0 pxup20;
DRAWTEXT(HDNo=2 and CKQHD,H,'H2') ALIGN0 pxup20;
DRAWTEXT(HDNo=3 and CKQHD,H,'H3') ALIGN0 pxup20;
DRAWTEXT(HDNo=4 and CKQHD,H,'H4') ALIGN0 pxup20;
DRAWICON(CK,H,4) pxup20;



版大 SUM + SUMBARS 運用的真好
學習了 給您拍拍手

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 yoson168 在 2012-02-13 21:39 發表:

差一 點點就完成了,尚需麻煩大大

附圖是版大您指導的程式所呈現的結果,但是有一個條件不符合
即「這四個碎形高點中,不允許其中夾有其它碎形高點是高於季線的」
附圖中用橘色圈起來的碎形高點,不可夾在H1,H2,H3,H4之間,故它不符合條件,即在這段時間,不應有H1,H2,H3,H4和紅箭頭


全部時間均為台灣時間, 現在時間為07:28 總頁數 (2): [1] 2 »
在這個頁面顯示本主題全部的 27 個文章


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

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