首先,我用的是等价线(请斑竹老师不要说不要用等价线实战这样的话,我开仓执行的还挺好,平仓有问题,请帮助修改解决下);
平空:SELLSHORT(ref(PK,1),1,MARKETR); //平空信号
开多:BUY(ref(KD,1) AND HOLDING=0,1,MARKETR); //开多信号
平多:SELL(ref(PD,1),1,MARKETR); //平多信号
开空:BUYSHORT(ref(KK,1) AND HOLDING=0,1,MARKETR); //开空信号
这是我指令公式,用的是突破水平线的逻辑

此主题相关图片如下:2014-09-09_110745.jpg

这是我选项
开仓OK,没问题,到了平仓,我用15分钟线,由于是等价线,市场不动的时候,新线也不会生成,所以每隔15分钟后,由于平仓信号还没消失,系统就再平仓一次,实际上我的已经早平过了。。。。
看看能有什么变通的办法,比如在公式上修改下?
比较急,谢谢!
老师不要说等价线仅供参考云云,一切都在进步,都在创新,谢谢!
[此贴子已经被作者于2014/9/9 11:12:08编辑过]
这里等价线问题不在K线闪嗦变化不定,而在于执行方面,所以和老师们以往所指的“仅供参考”的缘由含义是完全不同的。
另外,我在想,如果运行选项里的K线走完不按标准时间K线定义,而真正按图表里的K线定义(等价线的k线走完),一切就解决了。目前金魔方飞狐就是按实际K线算的
[此贴子已经被作者于2014/9/9 11:18:18编辑过]
1,这个问题我们再考虑下
2,目前您可以使用变量控制,当K线没变化时不产生平仓信号
例如 VARIABLE:A=0;
IF PINGC BARPOS>A THEN
BEIGIN
SELL();
A:BARPOS;
END
对应后面的平仓条件加个BRPOS>A;
[此贴子已经被作者于2014/9/9 11:33:01编辑过]
fex老师,是这样写就么?
----
平空:SELLSHORT(ref(PK,1),1,MARKETR); //平空信号
开多:BUY(ref(KD,1) AND HOLDING=0,1,MARKETR); //开多信号
平多:SELL(ref(PD,1),1,MARKETR); //平多信号
开空:BUYSHORT(ref(KK,1) AND HOLDING=0,1,MARKETR); //开空信号
VARIABLE:A=0;
IF 平多 BARPOS>A THEN
BEIGIN
SELL();
END
IF 平空 BARPOS>A THEN
BEIGIN
SELLSHORT();
A:BARPOS;
END
另外,SELL()还是SELL(ref(PD,1),1,MARKETR); ?? 或者SELLSHORT(ref(PK,1),1,MARKETR); ??
这么写可以把???
--------------------------------------------------------
VARIABLE:A=0;
IF BARPOS>A THEN
BEGIN
SELLSHORT( PK ,SS,MARKETr); //平空信号
BUY( KD AND HOLDING=0,SS,MARKETr); //开多信号
SELL( PD ,SS,MARKETr); //平多信号
BUYSHORT( KK AND HOLDING=0,ss,MARKETr); //开空信号
A:=BARPOS;
END
[此贴子已经被作者于2014/9/9 12:32:04编辑过]
这种不行,BARPOS>A你这样条件那么只会在下一根k生成时进行一次程序化轮询之后A:=BARPOS; 代码就不执行了都
必须要这么写,每个开平语句用对应全局变量来限制
if 平空 and barpos>A then begin
sellshort();
A:=barpos;
end
KD:=...; //开多条件
PD:=...; //平多条件
KK:=...; //开空条件
PK:=...; //平空条件
VARIABLE:A=0;
IF PK AND BARPOS>A THEN
BEGIN
SELLSHORT(); //平空信号
A:=BARPOS;
END
IF KD AND BARPOS>A THEN
BEGIN
BUY(); //开多信号
A:=BARPOS;
END
IF PD AND BARPOS>A THEN
BEGIN
SELL(); //平多信号
A:=BARPOS;
END
IF KK AND BARPOS>A THEN
BEGIN
BUYSHORT(); //开空信号
A:=BARPOS;
END
是这样的么
[此贴子已经被作者于2014/9/9 13:24:31编辑过]
里面的开平语句你自己写啊,这里只是在开平代码外加了个barpos的条件控制,使之按照你等价k的序列来。
barpos的值是你等价k的序列,不会按照你15分钟一根k的固定值