以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教一下一个固定价格区间交易的后台编写  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=59615)

--  作者:michael000
--  发布时间:2013/12/6 14:39:24
--  请教一下一个固定价格区间交易的后台编写
我希望效果就是符合开仓条件后,相比开仓价格升高4元就平仓1手,下降4元就加仓一手,为了避免滑点,提前在升降或下降2元的时候就挂单,然后在追单菜单里面设置价位超过3元就撤单

想请教下各位这个后台编码应该怎么写,图表的测试程序写好了,但我对后台的编写不太会,弄不好。谢谢

--  作者:jinzhe
--  发布时间:2013/12/6 14:42:45
--  
处理中,请稍等
--  作者:michael000
--  发布时间:2013/12/6 14:53:44
--  
好,谢谢,我在图表时的编码是

1秒轮询模式:

if t1 and holding >0  and high>=平仓价-2  then begin 
    sell(1,1,limitr, 平仓价);
   平仓价:= 平仓价+aa*MINDIFF;
end

但图表交易时提前两个价位只要一发单,不管有没有成交都当作成交了,所以这样会导致我最新的平仓价错误,使下一次的价格区间发生错误了,所以可能只有用后台才行。

--  作者:jinzhe
--  发布时间:2013/12/6 15:11:50
--  

这个不就是在只有两点的时候报单了

if dynainfo(7)-tenterprice>2 then tbuy(1,1,mkt);

if tenterprice-dynainfo(7)>2 then tsell(1,1,mkt);


--  作者:michael000
--  发布时间:2013/12/6 17:44:26
--  
我自己根据上述思路改写的后台程序,但运行时有问题,麻烦看看是哪里出了问题


INPUT:ss(3,0,100,1),aa(4,0,200,1),n(5,0,100,5);

variable:开仓次数:=0,开仓价:=0;


组数:=b;
手数:=ss;




//交易条件
t1:=time<CLOSETIME(0) and time>OPENTIME(1)+200;
T2:=TIME=CLOSETIME(0) ;
均线:ma(c,n);
开多条件:=ref(c,1)>ref(均线,1);
开空条件:=ref(c,1)<ref(均线,1);

//多单加仓
if t1 and tholding2>0 and  开仓次数<10  and low<=开仓价-4*MINDIFF+2*MINDIFF    then begin  //(价格低于开仓价4元加仓,提前2元报价挂单)
tbuy(1,手数*x,lmt, 开仓价-4*MINDIFF );
开仓次数:=开仓次数+1;
end

//多单减仓
if t1  and tholding2>0 and  开仓次数<10  and  high>= 开仓价+4*MINDIFF -2*MINDIFF     then begin  //(价格高于开仓价4元减仓,提前2元报价挂单)
tsell(1,手数*x,lmt, 开仓价+4*MINDIFF );
开仓次数:=开仓次数+1;
end;




//开仓

if t1  and 开多条件 and tholding2=0 and  开仓次数=0  then begin
tBUY(1,手数*x,lmt,o);
开仓价:=tENTERPRICE;
开仓次数:=1;
end


--  作者:michael000
--  发布时间:2013/12/8 21:34:43
--  
或者我再归纳一下我的思路

比如现在我10元开了3手多仓,然后我希望在15元时减1手,但我不希望有滑点,所以想提前2元在13元的时候就挂15元平多仓的单,如果挂单成交了,就把开仓价从10元变为15元,如果挂单没成交,开仓价还是原来的10元,当最新价离开挂单价3元后撤单,但如果最新价回到13元又重新挂单。


。。。想了好久还是没想出来,用图表写不出,用后台的话,如果单策略倒还没问题,用真实持仓可以解决,如果有其他策略的话,仓位乱了就不会编了

--  作者:jinzhe
--  发布时间:2013/12/9 9:01:13
--  

后台全局变量要用超全局变量GLOBALVARIABLE