 |
xy608077
中級會員

註冊日期: Feb 2010
來 自:
文章數量: 37 |
[問題] 交易條件組合
請版大幫幫忙:
我想將上述的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 附帶上了此圖片:
|
|
向版主報告此篇 |  |
|
2011-01-03 13:50 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18162 |
回覆: [問題] 交易條件組合
引用: 最初由 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。那要如何改寫呢?請版大幫幫忙一下了,謝謝你。
//試試這樣是否為您要的
ENTERLONG: (REF(TT,1)<>1 AND TT=1) and XA>XB;
EXITLONG: (REF(TT,1)=1 AND TT<>1) and XA<XB;
|
|
向版主報告此篇 |  |
|
2011-01-03 15:25 |
|
|
|  |
 |
xy608077
中級會員

註冊日期: Feb 2010
來 自:
文章數量: 37 |
訊號仍然不對
謝謝版大啦,不過經由小弟改寫後,還是有問題。如圖,會出現多次賣訊,而不是一買一賣,另外訊號的位置仍不對,請問版大如何修正呢?謝謝版大: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;
xy608077 附帶上了此圖片:
|
|
向版主報告此篇 |  |
|
2011-01-03 18:54 |
|
|
|  |
 |
xy608077
中級會員

註冊日期: Feb 2010
來 自:
文章數量: 37 |
若用別組公式會有遺漏訊號
先謝謝版大之前的幫忙啦!!若小弟改用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 附帶上了此圖片:
|
|
向版主報告此篇 |  |
|
2011-01-04 10:42 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18162 |
回覆: 若用別組公式會有遺漏訊號
引用: 最初由 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;
您帶入錯誤嚕, 原式為:
xaa:=ma(c,10);
xbb:=ma(c,20);
ENTERLONG:TT=1 and xaa>xbb ;
EXITLONG:TT=-1 and xaa<xbb ;
並非
b:=cross (diff,dea) ;
s:=cross (dea,diff) ;
ENTERLONG:TT=1 and b>s ;
EXITLONG:TT=-1 and b<s ;
需改帶入為
xaa:=diff;
xbb:=dea;
ENTERLONG:TT=1 and xaa>xbb ;
EXITLONG:TT=-1 and xaa<xbb ;
|
|
向版主報告此篇 |  |
|
2011-01-04 11:08 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|