以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=73106) |
|
-- 作者:dskfdg -- 发布时间:2014/12/16 8:48:35 -- [求助]图表交易信号问题 N:=1; MA20:=INTPART(MA(C,20)/N3)*N3; 做多:REF(C,1)>=REF(MA20,1); 止损:LOW<=MA20; 开仓:BUY(HOLDING=0 AND 做多,1,OPEN); 平仓:SELL(HOLDING>0 AND 止损,0,IF(OPEN<MA20,OPEN,MA20)); =================================================== 用固定轮询1秒方式: 问题是图表显示当根K线显示开多信号,但当当根K线的LOW<=MA20时不出平仓信号,要在下一根K线才显示并且平仓价在(开盘价或收盘价具体忘记了,这是回测时的值和图表显示的值),不是MA20. 我要的是只要有多仓,只要LOW<=MA20就要平仓,无论是否在当根K线开的仓。 我想问的时实盘运行这代码会是怎样的结果.
|
|
-- 作者:jinzhe -- 发布时间:2014/12/16 9:01:58 -- 你举个实际的例子说明问题,说明一下是测试哪个合约品种时在哪个周期哪根k线上,出的问题。 平仓条件并没有写成ref的模式,不会在下个周期做动作 |
|
-- 作者:dskfdg -- 发布时间:2014/12/16 10:31:07 -- 如螺纹:我的意思是:我在回测时,这样写的话就会出现所说的成交结果。。是图表的信号和回测值。就是在当根K线出信号并且在开盘价开仓后如果当根K线的LOW<=MA20时不会出平仓信号。。只会在下根K线出平仓信号。并且回测数值是开盘价或收盘价具体忘记了。当然实盘的话并不会经常出现这种情况,因为过滤条件过滤了绝大部份。3年的回测在10次左右或 以下。我的问题是在静态时图表的信号是不能显示我的真实意图,回测数也是。(不在当根K线LOW<=MA20时发出平仓信号而在下根,因为当根有开仓信号)。因为没平仓信号出现,我想知道的是图表程序化的标准版实盘会这样吗。 |
|
-- 作者:dskfdg -- 发布时间:2014/12/16 10:37:22 -- 可以设一条线如。MA(C,5)...C>MA(C,5)时在下周期开盘价开仓。LOW<=MA(C,5)时平仓。那这样就会出现很多这样的事。图表信号。 |
|
-- 作者:jinzhe -- 发布时间:2014/12/16 10:42:57 -- N:=1;
MA20:=INTPART(MA(C,20)/N3)*N3;
做多:REF(C,1)>=REF(MA20,1);
止损:LOW<=MA20;
开仓:BUY(HOLDING=0 AND 做多,1,limitr,OPEN);
平仓:SELL(HOLDING>0 AND 止损,0,limitr,IF(OPEN<MA20,OPEN,MA20));
限价下单有专门的函数,不写不是限价单
|
|
-- 作者:dskfdg -- 发布时间:2014/12/16 12:02:06 -- //参数 INPUT:N3(1,0.01,50,0.01); //变量 MAN:INTPART(MA(CLOSE,10)/N3)*N3,COLORWHITE; //平空条件 SSL:=HIGH>=MAN AND REF(HIGH,1)<REF(MAN,1); //平多条件 SL:=LOW<=MAN AND REF(LOW,1)>REF(MAN,1); //开空条件 SBY:=REF(CLOSE,1)<REF(MAN,1) AND REF(HIGH,1)<REF(MAN,1) AND REF(CLOSE,1)<REF(OPEN,1) AND OPEN<MAN; //开多条件 BY:=REF(CLOSE,1)>REF(MAN,1) AND REF(LOW,1)>REF(MAN,1) AND REF(CLOSE,1)>REF(OPEN,1) AND OPEN>MAN; //平空 IF HOLDING<0 AND SSL THEN BEGIN SELLSHORT(1,0,LIMITR,IF(OPEN>MAN,OPEN,MAN)); END //平多 IF HOLDING>0 AND SL THEN BEGIN SELL(1,0,LIMITR,IF(OPEN<MAN,OPEN,MAN)); END //开空 IF HOLDING=0 AND SBY THEN BEGIN BUYSHORT(1,1,LIMITR,OPEN); END //开多 IF HOLDING=0 AND BY THEN BEGIN BUY(1,1,LIMITR,OPEN); END 可能我的写法有问题,请帮忙看下那出问题了。。。如螺纹1505的2014年11月18日15:00的K线。。5分钟周期。还有如何解决2014年11月19日14:50的问题。。在实盘是会是什么样的结果。还有像2014年11月13日13:40的问题。。。上述都是RB1505的5分钟周期。 |
|
-- 作者:dskfdg -- 发布时间:2014/12/16 12:20:24 -- //开空 IF HOLDING=0 AND SBY AND EXITBARS<>0 THEN BEGIN BUYSHORT(1,1,LIMITR,OPEN); END //开多 IF HOLDING=0 AND BY AND EXITBARS<>0 THEN BEGIN BUY(1,1,LIMITR,OPEN); END 开仓时加上EXITBARS<>0 解决了一部份问题。
|
|
-- 作者:dskfdg -- 发布时间:2014/12/16 12:27:14 --
|
|
-- 作者:dskfdg -- 发布时间:2014/12/16 12:31:26 -- //参数 INPUT:N3(1,0.01,50,0.01); //变量 MAN:INTPART(MA(CLOSE,10)/N3)*N3,COLORWHITE; //平空条件 SSL:=HIGH>=MAN AND REF(HIGH,1)<REF(MAN,1); //平多条件 SL:=LOW<=MAN AND REF(LOW,1)>REF(MAN,1); //开空条件 SBY:=REF(CLOSE,1)<REF(MAN,1) AND REF(HIGH,1)<REF(MAN,1) AND REF(CLOSE,1)<REF(OPEN,1) AND OPEN<MAN; //开多条件 BY:=REF(CLOSE,1)>REF(MAN,1) AND REF(LOW,1)>REF(MAN,1) AND REF(CLOSE,1)>REF(OPEN,1) AND OPEN>MAN; //平空 IF HOLDING<0 AND SSL THEN BEGIN SELLSHORT(1,0,LIMITR,IF(OPEN>MAN,OPEN,MAN)); END //平多 IF HOLDING>0 AND SL THEN BEGIN SELL(1,0,LIMITR,IF(OPEN<MAN,OPEN,MAN)); END //开空 IF HOLDING=0 AND SBY AND EXITBARS<>0 THEN BEGIN BUYSHORT(1,1,LIMITR,OPEN); END //开多 IF HOLDING=0 AND BY AND EXITBARS<>0 THEN BEGIN BUY(1,1,LIMITR,OPEN); END 开仓时加上EXITBARS<>0 解决了一部份问题。 这样就会出现当根K线在开盘价开仓后,当当根K线的最低或最高价大于等于或小于MAN时不在当根K线平仓了。图表信号是这样不知道实盘结果怎样。。。我的写法错在那里。 |
|
-- 作者:dskfdg -- 发布时间:2014/12/16 12:42:14 -- /平空条件 SSL:=HIGH>=MAN; //平多条件 SL:=LOW<=MAN; 如果把平仓条件改成这样就会在下根K线平仓
[此贴子已经被作者于2014/12/16 12:42:33编辑过]
|