以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 如何实现一根K线开一次不重复仓 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=138459) |
-- 作者:scarecrow -- 发布时间:2016/8/23 14:48:27 -- 如何实现一根K线开一次不重复仓 设计思路是, 1.使用限价成交 2.向上突破均线,开多; 3.向下帖破均线,开空; 4.单根k线只能开一个仓,比如只能开多仓,或者只能开空仓 我设计了代码,但是出现了如下问题: 同一根k线,回测的时候,k线在均线中间的时候,出现频繁开仓平仓再开仓(比如开多,然后平多,在开空)。 本人小白,请教大家帮帮解决问题 代码如下: MA1:=MA(CLOSE,N1); 手数:=ss; MA2:REF(MA1,1); KD:=HIGH>=MA2; PD:=LOW<MA2; KK:=LOW<=MA2; PK:=HIGH>MA2; IF HOLDING<0 THEN BEGIN IF PK THEN BEGIN SELLSHORT(1,HOLDING,LIMITR,MAX(OPEN,MA2));//平空 END END IF HOLDING=0 THEN BEGIN IF KD THEN BEGIN BUY(1,手数,LIMITR,MAX(OPEN,MA2));//开多 END END IF HOLDING>0 THEN BEGIN IF PD THEN BEGIN SELL(1,HOLDING,LIMITR,MIN(OPEN,MA2));//平多 END END IF HOLDING=0 THEN BEGIN IF KK THEN BEGIN BUYSHORT(1,手数,LIMITR,MIN(OPEN,MA2));//开空 END END 持仓:holding,linethick0; |
-- 作者:jinzhe -- 发布时间:2016/8/23 15:00:46 -- variable:kai=0;
IF HOLDING=0 THEN BEGIN
|
-- 作者:scarecrow -- 发布时间:2016/8/23 15:23:12 -- 回测试了一下,一根k线多次开仓这个问题解决了,但是还有一个小问题没有处理。 就是开仓后,同一根k线也开仓后,不允许在同一根k线也平仓。 举个例子:向上突破了均线开了多仓,同一个k线偶然会出现又跌破空仓,所以希望在该k线未走完的时候,不允许平仓
|
-- 作者:jinzhe -- 发布时间:2016/8/23 15:46:55 -- 两者不可兼得,这样写是做不到当根k线也能平仓 |
-- 作者:scarecrow -- 发布时间:2016/8/23 16:04:25 -- 有没有一个函数,可以记录开仓那根k线,这样就可以区别出开仓k线,如此一来就可以区分该k线不能平仓; 或者用全局变量能不能实现
|
-- 作者:jinzhe -- 发布时间:2016/8/23 16:08:37 -- variable:kai=0;
IF HOLDING<0 THEN BEGIN
|