到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > [問題] 交易條件組合
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
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 附帶上了此圖片:

向版主報告此篇 | 查IP位址
Old Post 2011-01-03 13:50
xy608077 現在離線 點選這裡查看 xy608077 的個人資料 點選這裡給 xy608077 傳送一條短訊 查找更多關於 xy608077 的文章 增加 xy608077 至你的好友列表 編輯/刪除訊息 引用回覆
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;

向版主報告此篇 | 查IP位址
Old Post 2011-01-03 15:25
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
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 附帶上了此圖片:

向版主報告此篇 | 查IP位址
Old Post 2011-01-03 18:54
xy608077 現在離線 點選這裡查看 xy608077 的個人資料 點選這裡給 xy608077 傳送一條短訊 查找更多關於 xy608077 的文章 增加 xy608077 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18162

//試試這樣是否為您要的

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;

向版主報告此篇 | 查IP位址
Old Post 2011-01-04 09:28
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
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 附帶上了此圖片:

向版主報告此篇 | 查IP位址
Old Post 2011-01-04 10:42
xy608077 現在離線 點選這裡查看 xy608077 的個人資料 點選這裡給 xy608077 傳送一條短訊 查找更多關於 xy608077 的文章 增加 xy608077 至你的好友列表 編輯/刪除訊息 引用回覆
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 ;

向版主報告此篇 | 查IP位址
Old Post 2011-01-04 11:08
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
xy608077
中級會員

註冊日期: Feb 2010
來  自:
文章數量: 37

謝謝版大的熱心幫忙!!!!

謝謝版大的熱心幫忙!!!!

向版主報告此篇 | 查IP位址
Old Post 2011-01-04 12:10
xy608077 現在離線 點選這裡查看 xy608077 的個人資料 點選這裡給 xy608077 傳送一條短訊 查找更多關於 xy608077 的文章 增加 xy608077 至你的好友列表 編輯/刪除訊息 引用回覆
wengd469
資深會員

註冊日期: May 2021
來  自:
文章數量: 328

請教參數要如何設定呢??

向版主報告此篇 | 查IP位址
Old Post 2023-01-24 07:55
wengd469 現在離線 點選這裡查看 wengd469 的個人資料 點選這裡給 wengd469 傳送一條短訊 查找更多關於 wengd469 的文章 增加 wengd469 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為15:30 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們