以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]请教金字塔的公式测试系统的强制平仓问题?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=983)

--  作者:tszw
--  发布时间:2010/2/28 11:10:27
--  [求助]请教金字塔的公式测试系统的强制平仓问题?
金字塔的公式测试系统是不是有BUG呀?很简单的两根均线交易系统,比如5日,10日,金叉做多平空,死叉做空平多。单向测试多头没问题,但双向测试多空时发现明细里有很多“强制平仓”,出场规则里我并没设任何平仓条件,而且我是用固定1手测试,明细交易量里经常会有2手或更多手,报告里空头次数比多头多了一倍,还有时明明在报告里显示是亏损的,但在明细的最后资产和收益中的红色曲线却显示盈利。相比文华的测试比较靠谱,平多后是开空,平空后是开多,都是1手,中间不会有什么乱七八糟的东东。另外cross函数是不是有问题?比如5日线在10日线以下运行,一天5日和10日的价格是一样也就是等于时,如果次周期5日线又往下小于10日线,系统发出了平多开空信号,但两次平多开空信号中间没有开多平空信号,5日线是没有上穿10日线,仅仅是等于,次周期又下来了,但也不是下穿10日线吧,为什么系统认为是下穿而发出平多开空呢?
--  作者:金字塔
--  发布时间:2010/2/28 12:09:20
--  

cross函数包含了等于,

不等于可用cross(A,B) and A<>B


--  作者:admin
--  发布时间:2010/2/28 13:53:31
--  华语乐坛贺岁巨作《远方》艳阳天PK凤凰传奇 神曲超给力

不是BUG,强制平仓表示你当前持有多仓时又去开空仓,系统会先强制平多再开空。

做为一个良好的公式系统,你应该先平仓再开仓,有个好的习惯


--  作者:tszw
--  发布时间:2010/2/28 14:16:36
--  

原来是这样,还是这个均线系统如何做到先平仓再开仓,并让cross函数不包含等于,始终用1手进行交易,程式化交易又该如何编写?

 

ENTERLONG:CROSS(MA(CLOSE,5),MA(CLOSE,10));
EXITLONG:CROSS(MA(CLOSE,10),MA(CLOSE,5));
ENTERSHORT:CROSS(MA(CLOSE,10),MA(CLOSE,5));
EXITSHORT:CROSS(MA(CLOSE,5),MA(CLOSE,10));


--  作者:tszw
--  发布时间:2010/2/28 14:35:14
--  
以下是引用金字塔在2010-2-28 12:09:20的发言:

cross函数包含了等于,

不等于可用cross(A,B) and A<>B

不对啊!发出信号的当天a和b必然不等于,因上个周期a=b,但a没上穿b,后a又小于b,造成信号发出,如何才能避免此情况?


--  作者:tszw
--  发布时间:2010/2/28 14:51:18
--  

改一下顺序就能先平仓再开仓了,程式化交易时也要改成这种顺序吗?cross函数包含了等于,测试时不会出现连续两个同向信号,但程序化交易时会出现开两次多仓或空仓的信号,避免这种情况是用今持仓量函数,还是买持和卖持函数

 

 

EXITLONG:CROSS(MA(CLOSE,B),MA(CLOSE,A)) ;
EXITSHORT:CROSS(MA(CLOSE,A),MA(CLOSE,B)) ;

 

ENTERSHORT:CROSS(MA(CLOSE,B),MA(CLOSE,A)) ;
ENTERLONG:CROSS(MA(CLOSE,A),MA(CLOSE,B)) ;


--  作者:admin
--  发布时间:2010/3/1 12:31:32
--  
使用交易信号过滤即可  ENTERLONG: ,TFILTER;