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

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


由 cgjj 在 2015-02-25 13:18 發表:

引用:
最初由 tycoon868 發表
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

除非 BB 和 AA 同時由零轉為不為零,才可能發生
要先釐清你的訊號特性,否則難以精確處理...

請檢驗
是否有 " BB 和 AA 同時由零轉為不為零" 的情況
若有如何處置?

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&




抱歉哦,仔細套入驗證才知道

這個情況確實會常常發生,導致處理方式太複雜

所以真的決定簡化處理了


################ 我的目的其實就是只有下面兩個 ################

1. 利用 R1A 比較敏感的特性,爭取< 啟動點> 的時效

2. 利用 AR1A 比較穩定的特性,來決定 <結束點>



********************所以就簡化成下方的需求 ********************

1. R1A 突破 30 的當根K棒(不管AR1A了),當成 <作多啟動點> 的開始,此時操作周期數= 1

2. 此操作周期數進行的過程中,AR1A 跌破 10 的當根K棒,當成 <作多結束點> 的開始,此時操作周期數= 0 (直到 下一個啟動點)

3. R1A 跌破 - 30 的當根K棒(不管AR1A了),當成 <作空啟動點> 的開始,此時操作周期數= - 1

4. 此操作周期數進行的過程中,AR1A 突破 -10 的當根K棒,當成 <作多結束點> 的開始,此時操作周期數=0 (直到 下一個啟動點)

##### 請總版主 協助修改 ,指標內涵的部分如果有衝突, 我會自行調校參數 ######

謝謝您



範例如下:
原碼:
進:=(R1A>30 or barpos=0)-(R1A<-30 or barpos=0); 出:=(AR1A<10 or barpos=0)-(AR1A>-10 or barpos=0); NowBS:=0; 操作週期數:C*0; for i=1 to datacount do begin if NowBS=0 and 進[i]<>0 then begin NowBS:=進[i]; 操作週期數[i]:=NowBS; end else if NowBS<>0 then begin if 出[i]=NowBS then NowBS:=0; if NowBS<>0 then 操作週期數[i]:=操作週期數[i-1]+NowBS; end; end;


由 tycoon868 在 2015-02-26 13:11 發表:

總版主午安~

以下是我目前的原碼:

___________________________________________________________________________

Bullmust:=MBB>=5 ;
Bearmust:=MBB<=-5 ;

BullMC:=ref(Bullmust,1)=0 and Bullmust=1;
BearMC:=ref(Bearmust,1)=0 and Bearmust=1;

BullCD:=IF(Bullmust=1,Barslast(BullMC)+1,0);
BearCD:=IF(Bearmust=1,Barslast(BearMC)+1,0);

操作週期數:=IF(Bullmust=1 ,BullCD,- BearCD),color0099ff,precision0,linethick0;

SP:=barslast(操作週期數=0);

買訊1:=cross(MBB,5) and AR1Arate>0 ;
買訊1:=買訊1 and sum(買訊1,SP)=1;

買訊2:=cross(R1A,25) and Between(操作週期數,0,9);
買訊2:=買訊2 and sum(買訊2,SP)=1;

買訊3:=cross(R1A,50) and Between(操作週期數,0,9) ;
買訊3:=買訊3 and sum(買訊3,SP)=1;

賣訊1:=cross(360,R1A) ;
賣訊1:=賣訊1 and sum(賣訊1,SP)=1;

賣訊2:=cross(240,R1A) ;
賣訊2:=賣訊2 and sum(賣訊2,SP)=1;

賣訊3:=cross(120,R1A) ;
賣訊3:=賣訊3 and sum(賣訊3,SP)=1;

賣訊4:=cross(60,R1A) and HHV(R1A,Barslast(SP))>=90;
賣訊4:=賣訊4 and sum(賣訊4,SP)=2;

賣訊5:=cross(0,AR2ARate) and 操作週期數>0 and HHV(R1A,Barslast(SP))<90;
賣訊5=賣訊5 and sum(賣訊5,SP)=2;

__________________________________________________________________

需求一: 三個買訊都必須在 操作週期數 介於 +1 ~+8 才能成立,而且同一個操作週期之內,只能各自成立一次


需求二: 賣訊1~3 也是在同一操作週期數只能各自成立一次為限

需求三: 當該次操作週期進行期間,如果出現 cross(60,R1A),此時必須比對該操作週期 的 R1A 最高值曾經>=90 ,
此時賣訊4 才算是成立(允許同一操作週期發生兩次),若cross(60,R1A)發生時,R1A 最高只來到 89,
則此賣訊4不成立

需求四: 當該次操作週期進行期間,如果出現 cross(0,AR2ARate) and 操作週期數>0,此時比對該操作週期 的 R1A 最高值
曾經>=90,則賣訊5不成立

如果出現 cross(0,AR2ARate) and 操作週期數>0 時,此時比對該操作週期 的 R1A 最高值<90,則賣訊5成立,同一操作週期內,允許成立兩次為限



*********** 以上原碼有點問題,請總版主根據上面四個需求陳述,幫忙修改 **************


感謝


由 cgjj 在 2015-02-26 13:52 發表:

引用:
最初由 tycoon868 發表
總版主午安~

以下是我目前的原碼:

___________________________________________________________________________

Bullmust:=MBB>=5 ;
Bearmust:=MBB<=-5 ;

BullMC:=ref(Bullmust,1)=0 and Bullmust=1;
BearMC:=ref(Bearmust,1)=0 and Bearmust=1;

BullCD:=IF(Bullmust=1,Barslast(BullMC)+1,0);
BearCD:=IF(Bearmust=1,Barslast(BearMC)+1,0);

操作週期數:=IF(Bullmust=1 ,BullCD,- BearCD),color0099ff,precision0,linethick0;

SP:=barslast(操作週期數=0);

買訊1:=cross(MBB,5) and AR1Arate>0 ;
買訊1:=買訊1 and sum(買訊1,SP)=1;

買訊2:=cross(R1A,25) and Between(操作週期數,0,9);
買訊2:=買訊2 and sum(買訊2,SP)=1;

買訊3:=cross(R1A,50) and Between(操作週期數,0,9) ;
買訊3:=買訊3 and sum(買訊3,SP)=1;

賣訊1:=cross(360,R1A) ;
賣訊1:=賣訊1 and sum(賣訊1,SP)=1;

賣訊2:=cross(240,R1A) ;
賣訊2:=賣訊2 and sum(賣訊2,SP)=1;

賣訊3:=cross(120,R1A) ;
賣訊3:=賣訊3 and sum(賣訊3,SP)=1;

賣訊4:=cross(60,R1A) and HHV(R1A,Barslast(SP))>=90;
賣訊4:=賣訊4 and sum(賣訊4,SP)=2;

賣訊5:=cross(0,AR2ARate) and 操作週期數>0 and HHV(R1A,Barslast(SP))<90;
賣訊5=賣訊5 and sum(賣訊5,SP)=2;

__________________________________________________________________

需求一: 三個買訊都必須在 操作週期數 介於 +1 ~+8 才能成立,而且同一個操作週期之內,只能各自成立一次


需求二: 賣訊1~3 也是在同一操作週期數只能各自成立一次為限

需求三: 當該次操作週期進行期間,如果出現 cross(60,R1A),此時必須比對該操作週期 的 R1A 最高值曾經>=90 ,
此時賣訊4 才算是成立(允許同一操作週期發生兩次),若cross(60,R1A)發生時,R1A 最高只來到 89,
則此賣訊4不成立

需求四: 當該次操作週期進行期間,如果出現 cross(0,AR2ARate) and 操作週期數>0,此時比對該操作週期 的 R1A 最高值
曾經>=90,則賣訊5不成立

如果出現 cross(0,AR2ARate) and 操作週期數>0 時,此時比對該操作週期 的 R1A 最高值<90,則賣訊5成立,同一操作週期內,允許成立兩次為限



*********** 以上原碼有點問題,請總版主根據上面四個需求陳述,幫忙修改 **************


感謝



請參考以下程式,自行修正

//需求1 和 需求2
訊號:=訊號 and 操作週期數>0 and 操作週期數<9;
訊號:=訊號 and sum(訊號,SP)=1

//需求3
賣訊4:=cross(60,R1A) and sum(R1A>=90,SP)>0;

//需求4
賣訊5:=cross(0,AR2ARate) and 操作週期數>0 and sum(R1A>=90,SP)=0;
賣訊5:=賣訊5 and sum(賣訊5,SP)<=2;


由 tycoon868 在 2015-02-26 14:44 發表:

解決了,謝謝


由 cgjj 在 2015-02-26 16:36 發表:

引用:
最初由 tycoon868 發表
解決了,謝謝


不客氣 ^^


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


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

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