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

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


由 trtc516 在 2009-12-03 02:00 發表:

請教各位前輩.........

請教各位前輩,如何讓 "停利1"."停利2"條件成立後,一直保持狀態直到另一"EMA1和EMA2"交叉出現:

EMA1:=EMA(C,5);
EMA2:=EMA(C,60);


停利1:=if(EMA1>EMA2,C-REF(C,(BARSSINCE(EMA1>EMA2))),0) ;
停利2:= if(EMA1<EMA2,REF(C,(BARSSINCE(EMA1<EMA2)))-C,0) ;
ck:=if(EMA1>EMA2,1,0);
ck:=if(EMA1>EMA2 and (停利1>20),0,ck);
ck:=if(EMA1<EMA2,-1,CK);
ck:=if(EMA1<EMA2 and (停利2>20),0,ck);

StickLine (ck=1,-1,1,7,0),Colorred;
StickLine (ck=-1,-1,1,7,0),Colorgreen;
StickLine (ck=0,-1,1,7,0),Coloryellow;

-----------------------------------------------------------------------------------------------
若使用
A1:=ref(停利1,BARSSINCE(停利1>20)) 來保持狀態,

則下次EMA1和EMA2剛交叉上來,停利1尚未>20,就一直維持1了


由 cgjj 在 2009-12-03 12:46 發表:

回覆: 請教各位前輩.........

引用:
最初由 trtc516 發表
請教各位前輩,如何讓 "停利1"."停利2"條件成立後,一直保持狀態直到另一"EMA1和EMA2"交叉出現:

EMA1:=EMA(C,5);
EMA2:=EMA(C,60);


停利1:=if(EMA1>EMA2,C-REF(C,(BARSSINCE(EMA1>EMA2))),0) ;
停利2:= if(EMA1<EMA2,REF(C,(BARSSINCE(EMA1<EMA2)))-C,0) ;
ck:=if(EMA1>EMA2,1,0);
ck:=if(EMA1>EMA2 and (停利1>20),0,ck);
ck:=if(EMA1<EMA2,-1,CK);
ck:=if(EMA1<EMA2 and (停利2>20),0,ck);

StickLine (ck=1,-1,1,7,0),Colorred;
StickLine (ck=-1,-1,1,7,0),Colorgreen;
StickLine (ck=0,-1,1,7,0),Coloryellow;

-----------------------------------------------------------------------------------------------
若使用
A1:=ref(停利1,BARSSINCE(停利1>20)) 來保持狀態,

則下次EMA1和EMA2剛交叉上來,停利1尚未>20,就一直維持1了



這段程式寫的可能有些問題唷
BARSSINCE 是取歷史第一次
可否表達出您想計算的內容, 這樣較易協助您


由 trtc516 在 2009-12-04 00:19 發表:

感謝版主大大.................

感謝大大........

因為我是用30秒圖做當沖,所以開盤就是歷史資料第1根,所以用BARSSINCE
(還是要用barslast???)
我的思維是:

假設開盤後,EMA1>EMA2,則作買入動作 (ck:=if(EMA1>EMA2,1,0);(


當獲利超過20點,我就停利平倉
(ck:=if(EMA1>EMA2 and (停利1>20),0,ck);)


直到EMA1<EMA2,則作賣空動作(ck:=if(EMA1<EMA2,-1,CK);)


獲利20點就平倉(ck:=if(EMA1<EMA2 and (停利2>20),0,ck);)


小弟碰到的問題是,當獲利20點平倉後,價格又下來使得停利1低於20點時,買訊(空訊)又會出現, (ck:=if(EMA1>EMA2 and (停利1>20),0,ck);)()停利1<20則CK=CK=if(EMA1>EMA2,1,0)=1又再買入..........

有什麼方法,可讓"停利1>20成立後CK=0"一直維持到EMA1<EMA2 ,不管期間停利1>20, 停利1<20 上上下下............

因為小弟要用自動下單機下單,所以,輸出CK=1表買多1口,輸出CK=0
,表平倉,輸出CK=-1,表空單1口


由 cgjj 在 2009-12-04 12:17 發表:

回覆: 感謝版主大大.................

引用:
最初由 trtc516 發表
感謝大大........

因為我是用30秒圖做當沖,所以開盤就是歷史資料第1根,所以用BARSSINCE
(還是要用barslast???)
我的思維是:

假設開盤後,EMA1>EMA2,則作買入動作 (ck:=if(EMA1>EMA2,1,0);(


當獲利超過20點,我就停利平倉
(ck:=if(EMA1>EMA2 and (停利1>20),0,ck);)


直到EMA1<EMA2,則作賣空動作(ck:=if(EMA1<EMA2,-1,CK);)


獲利20點就平倉(ck:=if(EMA1<EMA2 and (停利2>20),0,ck);)


小弟碰到的問題是,當獲利20點平倉後,價格又下來使得停利1低於20點時,買訊(空訊)又會出現, (ck:=if(EMA1>EMA2 and (停利1>20),0,ck);)()停利1<20則CK=CK=if(EMA1>EMA2,1,0)=1又再買入..........

有什麼方法,可讓"停利1>20成立後CK=0"一直維持到EMA1<EMA2 ,不管期間停利1>20, 停利1<20 上上下下............

因為小弟要用自動下單機下單,所以,輸出CK=1表買多1口,輸出CK=0
,表平倉,輸出CK=-1,表空單1口



原碼:

EMA1
:=EMA(C,5);
EMA2:=EMA(C,60);
:=cross(EMA1,EMA2);
:=cross(EMA2,EMA1);
多SP:=BARSLAST();
空SP:=BARSLAST();
多利:=c-ref(c,多SP+1linethick;
空利:ref(c,空SP+1)-c linethick;
多停利:=EMA1>EMA2 and 多利>20;
多停利:=多停利 and sum(多停利,多SP)=1;
空停利:=EMA1<EMA2 and 空利>20;
空停利:=空停利 and sum(空停利,空SP)=1;
CK:-+多停利*2-空停利*2;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK>or CK<-1,0,CK);


由 trtc516 在 2009-12-05 11:25 發表:

非常.非常.非常感謝版主大大!!



非常.非常.非常感謝版主大大!!

終於解決停利的問題了,

不好意思!!再請教如何解決開盤初期無訊號的問題

EMA1:=EMA(C,5);
EMA2:=EMA(C,60);
多:=cross(EMA1,EMA2);
空:=cross(EMA2,EMA1);
多SP:=BARSLAST(多);
空SP:=BARSLAST(空);
多利:=c-ref(c,多SP+1) linethick;
空利:ref(c,空SP+1)-c linethick;
多停利:=EMA1>EMA2 and 多利>20;
多停利:=多停利 and sum(多停利,多SP)=1;
空停利:=EMA1<EMA2 and 空利>20;
空停利:=空停利 and sum(空停利,空SP)=1;
CK:多-空+多停利*2-空停利*2;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK>1 or CK<-1,0,CK);

StickLine (ck=1,-1,1,7,0),Colorred;
StickLine (ck=-1,-1,1,7,0),Colorgreen;
StickLine (ck=0,-1,1,7,0),Coloryellow;


由 cgjj 在 2009-12-05 13:45 發表:

回覆: 非常.非常.非常感謝版主大大!!

引用:
最初由 trtc516 發表


非常.非常.非常感謝版主大大!!

終於解決停利的問題了,

不好意思!!再請教如何解決開盤初期無訊號的問題

EMA1:=EMA(C,5);
EMA2:=EMA(C,60);
多:=cross(EMA1,EMA2);
空:=cross(EMA2,EMA1);
多SP:=BARSLAST(多);
空SP:=BARSLAST(空);
多利:=c-ref(c,多SP+1) linethick;
空利:ref(c,空SP+1)-c linethick;
多停利:=EMA1>EMA2 and 多利>20;
多停利:=多停利 and sum(多停利,多SP)=1;
空停利:=EMA1<EMA2 and 空利>20;
空停利:=空停利 and sum(空停利,空SP)=1;
CK:多-空+多停利*2-空停利*2;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK>1 or CK<-1,0,CK);

StickLine (ck=1,-1,1,7,0),Colorred;
StickLine (ck=-1,-1,1,7,0),Colorgreen;
StickLine (ck=0,-1,1,7,0),Coloryellow;

原碼:

EMA1
:=EMA(C,5);
EMA2:=EMA(C,60);
:=cross(EMA1,EMA2);
:=cross(EMA2,EMA1);
多SP:=BARSLAST();
空SP:=BARSLAST();
多利:=c-ref(c,多SP+1linethick;
空利:=ref(c,空SP+1)-c linethick;
多停利:=EMA1>EMA2 and 多利>20;
多停利:=多停利 and sum(多停利,多SP)=or barpos=0;
空停利:=EMA1<EMA2 and 空利>20;
空停利:=空停利 and sum(空停利,空SP)=or barpos=0;
CK:-+多停利*2-空停利*2;
CKSP:=barslast(CK<>0);
CKSP:=if(barpos<lbound(CKSP),0,CKSP);
CK:=ref(CK,CKSP);
CK:=if(CK>or CK<-1,0,CK);

StickLine (ck=1,-1,1,7,0),Colorred;
StickLine (ck=-1,-1,1,7,0),Colorgreen;
StickLine (ck=0,-1,1,7,0),Coloryellow;


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


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

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