以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=6603) |
-- 作者:阿火 -- 发布时间:2011/5/20 22:42:09 -- [原创]“序列模式下,平仓信号未出现,却出现另一方向的开仓信号”的解决方法 类似的问题之前论坛上好几个人提过,当时只是给你建议,没有具体解决 今天一客户刚好碰到类似情况,故在此给一个解决的示例
某投资者的策略: 做多: 仓位为0时,macd 金叉开多,死叉平多(需穿越) 做空:仓位为0时, 慢速KD死叉开空,金叉平空(需穿越)
当然,如果是标准版用户,使用逐K线模式,此模型很容易便可实现,但在序列模式下如何实现呢? 如果采用以下代码,则会出现“平仓信号未出现,却出现另一方向的开仓信号”: diff:=ema(c,12)-ema(c,26); bk:=cross(diff,dea);sp:=cross(dea,diff); enterlong:bk,tfilter; exitlong:sp,tfilter; entershort:sk,tfilter; exitshort:bp,tfilter; 如下图:
问题出现的原因是 平仓条件成立之前,另一方向的开仓信号就成立了。所以,这里要过滤一下。 方法有多种,可以采用如下思路,这种思路比较有通用性: diff:=ema(c,12)-ema(c,26); bk:=cross(diff,dea); flagd1:=if(barpos=1,0,if(bk,1,if(sp,0,0))); flagk1:=if(barpos=1,0,if(sk,-1,if(bp,0,0))); enterlong:bk and flagk=0,tfilter;//flagk过滤 exitlong:sp,tfilter; entershort:sk and flagd=0,tfilter;//flagd过滤 exitshort:bp,tfilter; [此贴子已经被作者于2011-5-22 21:58:05编辑过]
|
-- 作者:背影很杀 -- 发布时间:2011/5/22 0:36:10 -- 请问,是否是,在未平仓之前都不能开新仓(无论是同方向,或是相反方向的都不可以)只有平仓后,空仓为0时才可以开仓啊? |
-- 作者:背影很杀 -- 发布时间:2011/5/22 8:34:11 -- 请问版主!这个公式可以过滤在一根K线上反复出现的开仓信号吗?比如,5分钟K线,在第1分钟出现了开仓信号,可是在第2分钟消失了,然后在第3分钟又出现了,这样已经在第一分钟出现的信号已经开仓了,这样可以过滤第3分钟的开仓信号吗?我是新手,希望您能解达的详细一些,谢谢你! |
-- 作者:lcgs005 -- 发布时间:2012/9/21 23:31:32 -- 火哥出品,必是精品 |
-- 作者:叶飞 -- 发布时间:2012/9/22 1:05:39 -- 支持 |
-- 作者:叶飞 -- 发布时间:2012/9/22 1:05:51 -- 请问ASSET与BARlAST用法 顶 |