![]() |
在這個頁面顯示本主題全部的 8 個文章 |
奇狐社區論壇 (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=14921)
[問題] 交易條件組合
請版大幫幫忙:
我想將上述的AMA交易條件+MA交易條件組合:設計概念如下:AMA為買進為紅線+MA事後交叉為買進時=兩組條件前後都有才發出真正買進訊號(兩組訊號不一定在同一個K棒時才出現買訊);
AMA為賣出為綠線+MA事後交叉為賣出時=兩組條件前後都有才發出真正賣出訊號(兩組訊號不一定在同一個K棒時才出現賣訊);
以上說明如附圖
Direction:=CLOSE - REF( CLOSE , N ) ;
XX:=ABS( CLOSE - REF( CLOSE , 1 ) ) ;
Volatility:=SUM( XX , N ) ;
ER:=ABS( Direction / Volatility ) ;
FastC:= 2 / ( p + 1 ) ;
SlowC:= 2 / ( q + 1 ) ;
SSC:=ER * ( FastC - SlowC ) + SlowC ;
Constant :=SSC * SSC , Linethick0;
YY:=REF( Close , 1 ) + Constant * ( CLOSE - REF( Close , 1 ) ) ;
AA:=IF( SUM( 1 , 0 )= N + 1 , YY , 0 ) ;
BB:=BarsLast( abs(AA)>0 ) ;
DD:=REF( C , BB ) ;
收盤價格:=CLOSE , Linethick0 , Precision2;
CC:=CLOSE , Linethick0 ;
<%
NN= FFL.VarData("N")
VD= FFL.VarData("DD")
VC= FFL.VarData("CC")
Vonstant= FFL.VarData("Constant")
LT = UBound( VC )
for m=NN + 1 to LT
VD( m )=VD( m - 1 ) + Vonstant( m ) * ( VC( m ) - VD( m - 1 ) )
next
FFL.VarData("DD")=VD
%>
AMA:=DD , Linethick0;
MX:=LLV(AMA,DATACOUNT);
MY:=MX[DATACOUNT];
AMB:=AMA+ABS(MY);
FFilter:=( K / 100 ) * Std( AMB - REF( AMB , 1 ) , N ) ;
XA:=IF( AMB<REF( AMB , 1 ) , AMB , 0 ) ;
XN:=BarsLast( XA>0 ) ;
AMALow :=REF( AMB , XN ) ;
YA:=IF( AMB>REF( AMB , 1 ) , AMB , 0 ) ;
YN:=BarsLast( YA>0 ) ;
AMAHigh :=REF( AMB , YN ) ;
RR:=IF( AMAHigh - AMB > FFilter , -1 , 0 ) ;
TT:=IF( AMB - AMALow > FFilter , 1 , RR ) ;
XA:=MA(C,10);
XB:=MA(C,20);
b:=cross (XA,XB) ;
s:=cross (XB,XA) ;
ENTERLONG: (REF(TT,1)<>1 AND TT=1) ;少MA條件語法
EXITLONG: (REF(TT,1)=1 AND TT<>1)少MA條件語法
小弟之前用AND語法一定要兩組策略同時都有在同一K棒訊號才買進,所以不能用AND。那要如何改寫呢?請版大幫幫忙一下了,謝謝你。
回覆: [問題] 交易條件組合
引用:
最初由 xy608077 發表
請版大幫幫忙:
我想將上述的AMA交易條件+MA交易條件組合:設計概念如下:AMA為買進為紅線+MA事後交叉為買進時=兩組條件前後都有才發出真正買進訊號(兩組訊號不一定在同一個K棒時才出現買訊);
AMA為賣出為綠線+MA事後交叉為賣出時=兩組條件前後都有才發出真正賣出訊號(兩組訊號不一定在同一個K棒時才出現賣訊);
以上說明如附圖
Direction:=CLOSE - REF( CLOSE , N ) ;
XX:=ABS( CLOSE - REF( CLOSE , 1 ) ) ;
Volatility:=SUM( XX , N ) ;
ER:=ABS( Direction / Volatility ) ;
FastC:= 2 / ( p + 1 ) ;
SlowC:= 2 / ( q + 1 ) ;
SSC:=ER * ( FastC - SlowC ) + SlowC ;
Constant :=SSC * SSC , Linethick0;
YY:=REF( Close , 1 ) + Constant * ( CLOSE - REF( Close , 1 ) ) ;
AA:=IF( SUM( 1 , 0 )= N + 1 , YY , 0 ) ;
BB:=BarsLast( abs(AA)>0 ) ;
DD:=REF( C , BB ) ;
收盤價格:=CLOSE , Linethick0 , Precision2;
CC:=CLOSE , Linethick0 ;
<%
NN= FFL.VarData("N")
VD= FFL.VarData("DD")
VC= FFL.VarData("CC")
Vonstant= FFL.VarData("Constant")
LT = UBound( VC )
for m=NN + 1 to LT
VD( m )=VD( m - 1 ) + Vonstant( m ) * ( VC( m ) - VD( m - 1 ) )
next
FFL.VarData("DD")=VD
%>
AMA:=DD , Linethick0;
MX:=LLV(AMA,DATACOUNT);
MY:=MX[DATACOUNT];
AMB:=AMA+ABS(MY);
FFilter:=( K / 100 ) * Std( AMB - REF( AMB , 1 ) , N ) ;
XA:=IF( AMB<REF( AMB , 1 ) , AMB , 0 ) ;
XN:=BarsLast( XA>0 ) ;
AMALow :=REF( AMB , XN ) ;
YA:=IF( AMB>REF( AMB , 1 ) , AMB , 0 ) ;
YN:=BarsLast( YA>0 ) ;
AMAHigh :=REF( AMB , YN ) ;
RR:=IF( AMAHigh - AMB > FFilter , -1 , 0 ) ;
TT:=IF( AMB - AMALow > FFilter , 1 , RR ) ;
XA:=MA(C,10);
XB:=MA(C,20);
b:=cross (XA,XB) ;
s:=cross (XB,XA) ;
ENTERLONG: (REF(TT,1)<>1 AND TT=1) ;少MA條件語法
EXITLONG: (REF(TT,1)=1 AND TT<>1)少MA條件語法
小弟之前用AND語法一定要兩組策略同時都有在同一K棒訊號才買進,所以不能用AND。那要如何改寫呢?請版大幫幫忙一下了,謝謝你。
訊號仍然不對
謝謝版大啦,不過經由小弟改寫後,還是有問題。如圖,會出現多次賣訊,而不是一買一賣,另外訊號的位置仍不對,請問版大如何修正呢?謝謝版大:Direction:=CLOSE - REF( CLOSE , N ) ;
XX:=ABS( CLOSE - REF( CLOSE , 1 ) ) ;
Volatility:=SUM( XX , N ) ;
ER:=ABS( Direction / Volatility ) ;
FastC:= 2 / ( p + 1 ) ;
SlowC:= 2 / ( q + 1 ) ;
SSC:=ER * ( FastC - SlowC ) + SlowC ;
Constant :=SSC * SSC , Linethick0;
YY:=REF( Close , 1 ) + Constant * ( CLOSE - REF( Close , 1 ) ) ;
AA:=IF( SUM( 1 , 0 )= N + 1 , YY , 0 ) ;
BB:=BarsLast( abs(AA)>0 ) ;
DD:=REF( C , BB ) ;
收盤價格:=CLOSE , Linethick0 , Precision2;
CC:=CLOSE , Linethick0 ;
<%
NN= FFL.VarData("N")
VD= FFL.VarData("DD")
VC= FFL.VarData("CC")
Vonstant= FFL.VarData("Constant")
LT = UBound( VC )
for m=NN + 1 to LT
VD( m )=VD( m - 1 ) + Vonstant( m ) * ( VC( m ) - VD( m - 1 ) )
next
FFL.VarData("DD")=VD
%>
AMA:=DD , Linethick0;
MX:=LLV(AMA,DATACOUNT);
MY:=MX[DATACOUNT];
AMB:=AMA+ABS(MY);
FFilter:=( K / 100 ) * Std( AMB - REF( AMB , 1 ) , N ) ;
XA:=IF( AMB<REF( AMB , 1 ) , AMB , 0 ) ;
XN:=BarsLast( XA>0 ) ;
AMALow :=REF( AMB , XN ) ;
YA:=IF( AMB>REF( AMB , 1 ) , AMB , 0 ) ;
YN:=BarsLast( YA>0 ) ;
AMAHigh :=REF( AMB , YN ) ;
RR:=IF( AMAHigh - AMB > FFilter , -1 , 0 ) ;
TT:=IF( AMB - AMALow > FFilter , 1 , RR ) ;
xaa:=ma(c,10);
xbb:=ma(c,20);
ENTERLONG: (REF(TT,1)<>1 AND TT=1) and xaa>xbb ;
EXITLONG: (REF(TT,1)=1 AND TT<>1) and xaa<xbb;
//試試這樣是否為您要的
ENTERLONG:TT=1 and xaa>xbb ;
EXITLONG:TT=-1 and xaa<xbb ;
CK:=ENTERLONG-EXITLONG;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
ENTERLONG:=CK=1;
EXITLONG:=CK=-1;
若用別組公式會有遺漏訊號
先謝謝版大之前的幫忙啦!!若小弟改用MACD來組合,在參數相同的情況下,會有出現遺漏訊號(如圖),那這樣要如何修正呢?請版大再幫幫,謝謝你!!!!!
Direction:=CLOSE - REF( CLOSE , N ) ;
XX:=ABS( CLOSE - REF( CLOSE , 1 ) ) ;
Volatility:=SUM( XX , N ) ;
ER:=ABS( Direction / Volatility ) ;
FastC:= 2 / ( p + 1 ) ;
SlowC:= 2 / ( q + 1 ) ;
SSC:=ER * ( FastC - SlowC ) + SlowC ;
Constant :=SSC * SSC , Linethick0;
YY:=REF( Close , 1 ) + Constant * ( CLOSE - REF( Close , 1 ) ) ;
AA:=IF( SUM( 1 , 0 )= N + 1 , YY , 0 ) ;
BB:=BarsLast( abs(AA)>0 ) ;
DD:=REF( C , BB ) ;
收盤價格:=CLOSE , Linethick0 , Precision2;
CC:=CLOSE , Linethick0 ;
<%
NN= FFL.VarData("N")
VD= FFL.VarData("DD")
VC= FFL.VarData("CC")
Vonstant= FFL.VarData("Constant")
LT = UBound( VC )
for m=NN + 1 to LT
VD( m )=VD( m - 1 ) + Vonstant( m ) * ( VC( m ) - VD( m - 1 ) )
next
FFL.VarData("DD")=VD
%>
AMA:=DD , Linethick0;
MX:=LLV(AMA,DATACOUNT);
MY:=MX[DATACOUNT];
AMB:=AMA+ABS(MY);
FFilter:=( K / 100 ) * Std( AMB - REF( AMB , 1 ) , N ) ;
XA:=IF( AMB<REF( AMB , 1 ) , AMB , 0 ) ;
XN:=BarsLast( XA>0 ) ;
AMALow :=REF( AMB , XN ) ;
YA:=IF( AMB>REF( AMB , 1 ) , AMB , 0 ) ;
YN:=BarsLast( YA>0 ) ;
AMAHigh :=REF( AMB , YN ) ;
RR:=IF( AMAHigh - AMB > FFilter , -1 , 0 ) ;
TT:=IF( AMB - AMALow > FFilter , 1 , RR ) ;
DIFF:=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA:=EMA(DIFF,M);
MACD:=2*(DIFF-dea),COLORSTICK,Linethick5;
b:=cross (diff,dea) ;
s:=cross (dea,diff) ;
ENTERLONG:TT=1 and b>s ;
EXITLONG:TT=-1 and b<s ;
CK:=ENTERLONG-EXITLONG;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
ENTERLONG:=CK=1;
EXITLONG:=CK=-1;
回覆: 若用別組公式會有遺漏訊號
引用:
最初由 xy608077 發表
先謝謝版大之前的幫忙啦!!若小弟改用MACD來組合,在參數相同的情況下,會有出現遺漏訊號(如圖),那這樣要如何修正呢?請版大再幫幫,謝謝你!!!!!
.................................
b:=cross (diff,dea) ;
s:=cross (dea,diff) ;
ENTERLONG:TT=1 and b>s ;
EXITLONG:TT=-1 and b<s ;
CK:=ENTERLONG-EXITLONG;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
ENTERLONG:=CK=1;
EXITLONG:=CK=-1;
謝謝版大的熱心幫忙!!!!
謝謝版大的熱心幫忙!!!!
請教參數要如何設定呢??
全部時間均為台灣時間, 現在時間為11:49 | 在這個頁面顯示本主題全部的 8 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.