以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  策略编写求助区  (http://weistock.com/bbs/list.asp?boardid=11)
----  下单代码  (http://weistock.com/bbs/dispbbs.asp?boardid=11&id=52316)

--  作者:lufuding
--  发布时间:2013/5/22 17:43:30
--  下单代码
 
请代劳一下,金币不多,先谢过
写成后台的
 
//    假设盘口买一价为B1,卖一价为S1,买一挂单量为Vb,卖一挂单量为Vs,需要成交量为
//    Vd,每秒市场成交量是Vm,以1秒为最大成交延迟。

//    1)如果Vs≤Vm+Vd,报S1买;
//    2)如果未能成交,并且卖一价变成S1+1,Vs≤Vm+Vd,报S1+1买;
//    3)如果仍然未能成交,循环2)依次把委托价变成S1+2,S1+3,…S1+n;
//    4)如果Vs>Vm+Vd,报B1买;
//    5)满足4)的前提下,如果未成交时,Vb≤Vm+Vd,则撤单改报B1-1买;
//    6)如果5)之后Vb>Vm+Vd,则再撤单报B1买;
//    7)如果5)之后,买一价变成B1-1,Vs≤Vm+Vd,报S1-1买;
//    8)如果买一价变成B1-1,并且Vb≤Vm+Vd,撤单改B1-2买;
//    9)如果买一变成B1-2并且仍然Vb≤Vm+Vd,循环8)依次把委托价变成B1-3,B1-4,…B1-n
[此贴子已经被作者于2013-5-22 17:43:58编辑过]

--  作者:fly
--  发布时间:2013/5/23 9:16:11
--  

实盘中由于流动性,该策略并不会赚钱.

 

推荐楼主还是多完善完善策略思想


--  作者:lufuding
--  发布时间:2013/5/23 12:40:30
--  
策略已经写好,因为偏高频,(限价下单有很多单不能成交,这个模块对盘口有判断)所以呢想以这个下单模块来下单,实在不会写,请版主帮一下忙吧
--  作者:fly
--  发布时间:2013/5/27 16:02:29
--  

B1:=DYNAINFO( 28);//买一价
S1:=DYNAINFO( 34);//卖一价

Vb:=DYNAINFO( 25);//买一挂单量
Vs:=DYNAINFO( 31);//卖一挂单量
Vd:=vol;
Vm:=sum(vol,2);//每秒市场成交量

 

if Vs<=Vm+Vd then tbuy(1,1,lmt,DYNAINFO(34));

if TISREMAIN(1)=1 and TSUBMIT(1)>1 and Vs<=Vm+Vd and DYNAINFO(34)=TORDERPRICE(1,1)+1 THEN
tbuy(1,1,lmt,DYNAINFO(34));

 

实现的是你的1),2),3),您先看看是否是您需要的.


--  作者:lufuding
--  发布时间:2013/5/28 14:08:36
--  

版主能不能帮我完整的写完啊,上面只实现一部分啊


--  作者:lufuding
--  发布时间:2013/5/28 15:12:01
--  

金币是次要的,版你就帮帮在期货苦苦挣扎的可怜苍生吧,很多人都要这样的代码


--  作者:fly
--  发布时间:2013/6/6 17:03:26
--  

//供参考,用于后台程序化.希望能帮助到您

 

B1:=DYNAINFO( 28);//买一价
S1:=DYNAINFO( 34);//卖一价
Vb:=DYNAINFO( 25);//买一挂单量
Vs:=DYNAINFO( 31);//卖一挂单量
Vd:=vol;
Vm:=sum(vol,2);//每秒市场成交量????---在分笔周期上此表达该合约秒成交量

 

if Vs<=Vm+Vd and TISREMAIN(1)=0 then
begin
tbuy(1,1,lmt,DYNAINFO(34));
EXTGBDATASET(\'flag\',1);
end

if EXTGBDATA(\'flag\')=1 and TISREMAIN(1)=1 and TSUBMIT(1)>1 and Vs<=Vm+Vd and DYNAINFO(34)=TORDERPRICE(1,1)+1 THEN
tbuy(1,1,lmt,DYNAINFO(34)),ALLOWREPEAT;

//条件4
if Vs>Vm+Vd and TISREMAIN(1)=0 then
begin
tbuy(1,1,lmt,DYNAINFO(28));
EXTGBDATASET(\'B1\',DYNAINFO(28));//记录买一价
EXTGBDATASET(\'S1\',DYNAINFO(34));//记录卖一价
EXTGBDATASET(\'flag\',2);
end

//条件5
if EXTGBDATA(\'flag\')=2 and TISREMAIN(1)=1 and TSUBMIT(1)>1 and Vb<=Vm+Vd then
begin
TCANCEL(1,1);
tbuy(1,1,lmt,EXTGBDATA(\'B1\')-1);
EXTGBDATASET(\'flag\',3);
end

//条件6
if EXTGBDATA(\'flag\')=3 and TISREMAIN(1)=1 and TSUBMIT(1)>1 and Vb>Vm+Vd then
begin
TCANCEL(1,1);
tbuy(1,1,lmt,EXTGBDATA(\'B1\'));
end

//条件7
if EXTGBDATA(\'flag\')=3 and DYNAINFO( 28)=EXTGBDATA(\'B1\')-1 and Vs<=Vm+Vd then
begin
tbuy(1,1,lmt,EXTGBDATA(\'S1\')-1);
end

//条件8
if EXTGBDATA(\'flag\')=3 and DYNAINFO( 28)=EXTGBDATA(\'B1\')-1 and Vb<=Vm+Vd and TISREMAIN(1)=1 and TSUBMIT(1)>1 then
begin
TCANCEL(1,1);
tbuy(1,1,lmt,EXTGBDATA(\'B1\')-1);
EXTGBDATASET(\'flag\',4);
end

//条件9
IF EXTGBDATA(\'flag\')=4 and DYNAINFO( 28)=TORDERPRICE(1,1) and Vb<=Vm+Vd then
tbuy(1,1,lmt,DYNAINFO( 28)-1),ALLOWREPEAT;


--  作者:lufuding
--  发布时间:2013/6/15 15:39:47
--  
谢谢版主,万分感激!!