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

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


由 cffyz168 在 2017-02-12 03:21 發表:

[求救]

總版主您好,請問若均線A與均線B金叉向上後,欲在其收盤價突破前波高點後設置一個加碼買進的訊號(圖示),公式該如何表達呢,感謝。


由 cgjj 在 2017-02-13 09:05 發表:

回覆: [求救]

引用:
最初由 cffyz168 發表
總版主您好,請問若均線A與均線B金叉向上後,欲在其收盤價突破前波高點後設置一個加碼買進的訊號(圖示),公式該如何表達呢,感謝。


請定義 "前波高點"
要有判斷規則依據,不能只用眼睛看


由 cffyz168 在 2017-02-13 16:28 發表:

回覆

高低點定義如下:
1.昨日K棒低>今日K棒低<明日K棒低
2.今日K棒低 為 N=20日最低,N可自行調整
,麻煩了,謝謝


由 cgjj 在 2017-02-13 17:05 發表:

回覆: 回覆

引用:
最初由 cffyz168 發表
高低點定義如下:
1.昨日K棒低>今日K棒低<明日K棒低
2.今日K棒低 為 N=20日最低,N可自行調整
,麻煩了,謝謝



a. 何時冒出低點了? (首次提問並未提及)
b. 1 和 2 之定義與高點無任何關係

麻煩請思考清楚,並完整重新描述您的問題
目前這樣難以理解您想要做什麼


由 cffyz168 在 2017-02-13 23:08 發表:

回復求救

很抱歉,之前的題意沒表達完整,請問若要在均線A與均線B由先前的下跌往上金叉後,欲在其收盤價突破前高後設置一個加碼買進的ICON,該公式應如何表達,反之,亦由先前的上漲往下死叉後欲在跌破前低後也設置一個加碼賣出的ICON。
高點是以目前的高與前後幾天的高比較
低點是以目前的低與前後幾天的低比較
若為高點則存其高點的值(若否則存為0)
若為低點則存其低點的負值(若否則存為0)
Param 1 可設定為比較的天數(如1~50)
Param 2 可設定為總運算K棒數(0為全部),再次麻煩了,謝謝。


由 cgjj 在 2017-02-14 09:27 發表:

回覆: 回復求救

引用:
最初由 cffyz168 發表
很抱歉,之前的題意沒表達完整,請問若要在均線A與均線B由先前的下跌往上金叉後,欲在其收盤價突破前高後設置一個加碼買進的ICON,該公式應如何表達,反之,亦由先前的上漲往下死叉後欲在跌破前低後也設置一個加碼賣出的ICON。
高點是以目前的高與前後幾天的高比較
低點是以目前的低與前後幾天的低比較
若為高點則存其高點的值(若否則存為0)
若為低點則存其低點的負值(若否則存為0)
Param 1 可設定為比較的天數(如1~50)
Param 2 可設定為總運算K棒數(0為全部),再次麻煩了,謝謝。



範例如下:
(參數配置與ICON顯示,請自行修改和加入)

N1:=10; //均線A
N2:=20; //均線B
USEDAY:=3; //比較天數
SetKNum:=5000; //運算總K棒數
if SetKNum>datacount or SetKNum=0 then SetKNum:=datacount;
StKNo:=datacount-SetKNum+1;
HH:=H; x:=SETLBOUND(HH,StKNo);
LL:=L; x:=SETLBOUND(LL,StKNo);
CC:=C; x:=SETLBOUND(CC,StKNo);

MA1:=MA(CC,N1); MA2:=MA(CC,N2);
HSP:=hhvbars(HH,USEDAY+1);
LSP:=llvbars(LL,USEDAY+1);
高點:=(HSP=0 and refx(HSP,USEDAY)=USEDAY);
低點:=(LSP=0 and refx(LSP,USEDAY)=USEDAY);
高點SP:=barslast(高點);
低點SP:barslast(低點) linethick;
加碼買:MA1>MA2 and HH>ref(HH,高點SP);
加碼買:=加碼買 and sum(加碼買,高點SP+1)=1;
加碼賣:MA1<MA2 and LL<ref(LL,低點SP);
加碼賣:=加碼賣 and sum(加碼賣,低點SP+1)=1;


由 cffyz168 在 2017-02-14 11:20 發表:

回覆

ok了,感謝版大解惑。


由 cffyz168 在 2017-02-14 15:35 發表:

求教並解惑

承前題,請問總版主,有兩個小問題再請教:1.若欲於各高點(高低點前已定義)往上(例如10個tick點位或價位,參數可調)並向後劃一延伸的連線至下個高點(低點連線亦相同)。
2.若各高/低點的往後延伸線各自獨立(不與其它的高/低點連線),直至盤中任一k棒價位突破這線即停止不再延伸,待下一個高/低點再出現時即又開始劃線,餘未被突破者,不受影響的繼續往後延伸,運算範圍若耗資源,可否將其運算總K線數可調(0為全部)。非常感謝總版主


由 cgjj 在 2017-02-14 21:25 發表:

回覆: 求教並解惑

引用:
最初由 cffyz168 發表
承前題,請問總版主,有兩個小問題再請教:1.若欲於各高點(高低點前已定義)往上(例如10個tick點位或價位,參數可調)並向後劃一延伸的連線至下個高點(低點連線亦相同)。
2.若各高/低點的往後延伸線各自獨立(不與其它的高/低點連線),直至盤中任一k棒價位突破這線即停止不再延伸,待下一個高/低點再出現時即又開始劃線,餘未被突破者,不受影響的繼續往後延伸,運算範圍若耗資源,可否將其運算總K線數可調(0為全部)。非常感謝總版主



Re1: 於尾端加入
AddN:=10;
PARTLINE(高點SP>0,ref(HH+AddN,高點SP)) linedot;
PARTLINE(低點SP>0,ref(LL-AddN,低點SP)) linedot;


Re2:
這樣的計算負載較重,盤中不建議算全部K棒。於尾端加入:
原碼:
SS:=(高點 or barpos=0)-(低點 or barpos=0); PL:=SS*0; for i=lbound(高點) to datacount do begin if SS[i]=1 then begin for j=i+1 to datacount do begin if HH[j]>HH[i] then begin PL[i]:=j-i; break; end; end; end else if SS[i]=-1 then begin for j=i+1 to datacount do begin if LL[j]<LL[i] then begin PL[i]:=j-i; break; end; end; end; end; DRAWSL(高點,HH,0,PL,3) pxdn2 linedot; DRAWSL(低點,LL,0,PL,3) pxdn2 linedot;


由 cffyz168 在 2017-02-15 00:15 發表:

回覆

非常感謝版主辛勞的解惑,受益良多,但no.1.題所呈現的圖示與我想像的有些小出入,待釐清所需後再向版主請教,謝謝


由 cgjj 在 2017-02-15 10:06 發表:

回覆: 回覆

引用:
最初由 cffyz168 發表
非常感謝版主辛勞的解惑,受益良多,但no.1.題所呈現的圖示與我想像的有些小出入,待釐清所需後再向版主請教,謝謝


不客氣 ^^

Sorry!
前面我答覆之 Re2 的程式作法考慮欠周
若碰到高低點在同一根的特殊情況,會有問題
請改為以下這樣:
原碼:
LenH:=高點*0; for i=lbound(高點) to datacount do begin if 高點[i] then begin for j=i+1 to datacount do begin if HH[j]>HH[i] then begin LenH[i]:=j-i; break; end; end; end; end; LenL:=低點*0; for i=lbound(低點) to datacount do begin if 低點[i] then begin for j=i+1 to datacount do begin if LL[j]<LL[i] then begin LenL[i]:=j-i; break; end; end; end; end; DRAWSL(高點,HH,0,LenH,3) pxdn2 linedot; DRAWSL(低點,LL,0,LenL,3) pxdn2 linedot;


由 cffyz168 在 2017-02-17 03:02 發表:

求教並解惑

非常感謝版大的補充修正,另就Re1已釐清所需問題煩請再次解惑,若欲將原本的高低點(10tick方式不變)置換成加碼賣(原高點),加碼買(原低點),且當條件成立時開始向右劃連續線直至任一K棒收盤價突穿或跌破這條線時即停止劃線,待下個條件成立時又繼續劃連續的線,周而復始的連續圖(總K與原本一樣是維持可調的),再次勞駕版大費神解惑,感恩。


由 cgjj 在 2017-02-17 14:25 發表:

回覆: 求教並解惑

引用:
最初由 cffyz168 發表
非常感謝版大的補充修正,另就Re1已釐清所需問題煩請再次解惑,若欲將原本的高低點(10tick方式不變)置換成加碼賣(原高點),加碼買(原低點),且當條件成立時開始向右劃連續線直至任一K棒收盤價突穿或跌破這條線時即停止劃線,待下個條件成立時又繼續劃連續的線,周而復始的連續圖(總K與原本一樣是維持可調的),再次勞駕版大費神解惑,感恩。

不客氣,您連續線要以何價畫呢?


由 cffyz168 在 2017-02-17 15:07 發表:

回覆

感謝版大,此連續線若加碼買條件符合,則在該根k棒最低價向下10個tick(價位,tick可調)劃連續線,若符合加碼賣條件,則在該根k棒最高價往上10tick劃連續線。有勞版主了,謝謝。


由 cgjj 在 2017-02-18 10:48 發表:

回覆: 回覆

引用:
最初由 cffyz168 發表
感謝版大,此連續線若加碼買條件符合,則在該根k棒最低價向下10個tick(價位,tick可調)劃連續線,若符合加碼賣條件,則在該根k棒最高價往上10tick劃連續線。有勞版主了,謝謝。


於尾端加入:
原碼:
AddN:=10; 訊:=(加碼買 or barpos=0)-(加碼賣 or barpos=0); DLen:=訊*0; for i=1 to datacount do begin if 訊[i]=1 then begin PP:=LL[i]-AddN; for j=i+1 to datacount do begin if LL[j]<PP or 訊[j]<>0 then begin DLen[i]:=j-i; break; end; end; end else if 訊[i]=-1 then begin PP:=HH[i]+AddN; for j=i+1 to datacount do begin if HH[j]>PP or 訊[j]<>0 then begin DLen[i]:=j-i; break; end; end; end; end; DRAWSL(訊=1,LL-AddN,0,DLen,3) coloryellow pxdn2 linedot; DRAWSL(訊=-1,HH+AddN,0,DLen,3) coloryellow pxdn2 linedot; VERTLINE(加碼買) colormagenta linedot; VERTLINE(加碼賣) colorgreen linedot;


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


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

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