以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  重复成交  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=88997)

--  作者:c100010592
--  发布时间:2015/12/29 22:22:24
--  重复成交
INPUT:M(30,5,300,1),N(2,1,10,1),总资金(10,0,10000,10);
MID1 :  MA(CLOSE,M) ;//中轨
MID2 :  MA(CLOSE,Max(M - enterbars,10)) ;//持仓后中轨
Z :  N*STD(CLOSE,M) ;//通道宽度
UPPER : MID1 + z ;//上轨
LOWER : MID1 - z ;//下轨
GLYZ := C-REF(C,30);
手数 := FLOOR(总资金*200/(Z*MULTIPLIER ));//计算应开手数

//开始执行时 初始化数据
IF BARPOS=1 THEN BEGIN
position := 0 ;
end
//条件:
开多条件:=C>UPPER and ref(c,1)<UPPER AND position=0 and GLYZ > 0 and 手数> 0  ;//上穿上轨开多
开空条件:=C<LOWER AND ref(c,1)>LOWER and position=0 and GLYZ < 0 and 手数> 0 ;//下穿下轨开空
平多条件:=C<MID2 AND HOLDING>0;   //下穿中轨平多
平空条件:=C>MID2 AND HOLDING<0;  //上穿中轨平空

IF 开多条件 THEN begin
    BUY(1,手数,MARKET);
    position := 1 ;
end

IF 开空条件 THEN begin
    BUYSHORT(1,手数,MARKET);
    position := 1 ;
end

IF 平多条件 THEN begin
    SELL(1,holding,MARKET);
    position := 0 ;
end 

IF 平空条件 THEN begin
    SELLSHORT(1,holding,MARKET);
    position := 0 ;
end 

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值


以上程序,加载实盘后重复成交,啥道理?怎么避免?

--  作者:c100010592
--  发布时间:2015/12/29 22:27:58
--  
序号    品种名称           公式名称    下单时间             类型    交易量    价格       滑点    帐户
1       RB05 螺纹钢1605    AB          15/12/29 14:42:51    平多    94        0          0       
2       AU06 黄金1606      AB          15/12/29 14:44:09    开多    4         0.00       0       
3       RB05 螺纹钢1605    AB          15/12/29 14:51:09    开多    13        1782       1       
4       AU06 黄金1606      AB05        15/12/29 21:00:02    平多    4         227.75     1       
5       RB05 螺纹钢1605    AB05        15/12/29 21:00:52    开多    13        1783       0       
6       AU06 黄金1606      AB05        15/12/29 21:46:16    平多    4         228.15     0       
7       AG06 白银1606      AB05        15/12/29 22:07:15    开多    16        3315.00    0       
8       AG06 白银1606      AB05        15/12/29 22:10:57    开多    16        3315.00    0       
9       AL03 沪铝1603      AB05        15/12/29 22:13:07    平多    19        0          0       
10      AG06 白银1606      AB05        15/12/29 22:15:08    开多    16        0.00       0       
11      RB05 螺纹钢1605    AB05        15/12/29 22:21:50    平多    13        0          0       


以上为交易记录节选,我程序意图是只开一次仓,但写好程序后会多次重复开仓,比如银子、螺纹

--  作者:c100010592
--  发布时间:2015/12/29 22:40:32
--  
而且发出信号后开仓持仓,和随后图表上标示的不一致,比如螺纹,开两次分别13手,平一次13手,应该还有13手,但图表上持仓是0.
--  作者:yukizzc
--  发布时间:2015/12/29 23:04:09
--  

是不是信号闪烁,盘中的时候出现了开仓信号但是盘后这个信号消失了。

C>UPPER这种条件在盘中因为c还没走完很有可能不确定是否大于上轨,调试的话可以考虑看下这个帖子实时的记录下条件值然后去看是不是盘中盘后条件变化导致的

http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=49428


--  作者:c100010592
--  发布时间:2015/12/30 16:20:51
--  
谢谢回答