以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=5237) |
-- 作者:fly -- 发布时间:2011/2/21 15:00:15 -- 序列计算,乱开单乱平仓,请帮忙看看 用逐周期时在1分钟,5分钟试都正常,当然我是用在一小时的。 但是用序列计算的时候,开仓以后就立刻平仓,而且开仓是乱开的。 详情工作人员麻烦解答一下我的简单问题: //多头止损,平仓,开仓 LSL:=tENTERPRICE-Z*0.1*REF(ATR,tENTERBARS-1); LTP:=REF(ER,1)>=0.9 OR REF(C,1)<REF(AMA,1); LO :=REF(C,1)>REF(SSMA,1) AND H>=REF(UP,1); DEBUGOUT(‘多头止损=%.0F’,LSL); DEBUGOUT(‘多头平仓=%.0F’,LTP); DEBUGOUT(‘多头开仓=%.0F’,LO);
//空头止损,平仓,开仓 SSL:=tENTERPRICE+Z*0.1*REF(ATR,tENTERBARS-1); STM:=REF(ER,1)>=0.9 OR REF(C,1)>REF(AMA,1); SO :=REF(C,1)<REF(SSMA,1) AND L<=REF(DOWN,1); DEBUGOUT(‘空头止损=%.0F’,SSL); DEBUGOUT(‘空头平仓=%.0F’,STM); DEBUGOUT(‘空头开仓=%.0F’,SO);
//平空开多 TSELLSHORT(STM AND THOLDING<0,THOLDING,MKT); TSELLSHORT(THOLDING<0,THOLDING,STP,SSL); TBUY(LO AND THOLDING=0,LOTS,MKT);
//平多开空 TSELL(LTP AND THOLDING>0,THOLDING,MKT); TSELL(THOLDING>0,THOLDING,STP,LSL); TBUYSHORT(SO AND THOLDING=0,LOTS,MKT);
这是用逐周期的时候,动态测试没问题。里面包括的指标用序列计算是没问题的。 但是改成序列计算的时候,就乱开单了,乱平仓了。 请问是不是下边两段改成以下这样就解决问题呢?因为序列计算是只计算一次?
//平空开多 IF H>=SSL THEN TSELLSHORT(THOLDING<0,THOLDING,MKT) ELSE IF STM THEN TSELLSHORT(THOLDING<0,THOLDING,MKT);
IF LO THEN TBUY(THOLDING=0,LOTS,MKT);
//平多开空 IF L<=LSL THEN TSELL(THOLDING>0,THOLDING,MKT) ELSE IF LTP THEN TSELL(THOLDING>0,THOLDING,MKT);
IF SO THEN TBUYSHORT(THOLDING=0,LOTS,MKT); |
-- 作者:王锋 -- 发布时间:2011/2/21 15:45:01 -- 初步看了一下你的公式是有病句的 //平空开多 TSELLSHORT(STM AND THOLDING<0,THOLDING,MKT); TSELLSHORT(THOLDING<0,THOLDING,STP,SSL); TBUY(LO AND THOLDING=0,LOTS,MKT);
//平多开空 TSELL(LTP AND THOLDING>0,THOLDING,MKT); TSELL(THOLDING>0,THOLDING,STP,LSL); TBUYSHORT(SO AND THOLDING=0,LOTS,MKT);
THOLDING不要放在开平仓的条件里,详情请参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题15 |
-- 作者:伍星亮 -- 发布时间:2011/2/22 10:01:37 -- 嗯。。的确是可能有这样的问题。感谢高手指教。谢谢工作人员帮我转发帖子。 |