欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → 求全局变量的编程示例

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4351人关注过本帖树形打印复制链接

主题:求全局变量的编程示例

帅哥哟,离线,有人找我吗?
双飞燕
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:17 积分:76 威望:0 精华:0 注册:2010/3/1 16:23:22
求全局变量的编程示例  发帖心情 Post By:2015/10/16 23:39:03 [只看该作者]

<!--[if gte mso 9]> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <![endif]-->

策略加载,15K线,分笔速率扫描,有信号立即成交。

日内开单最大手数:lot=10

开仓条件:1,价格>日线的开盘价+30*最小变动价位

                2,如果买入信号出现在收盘前5分钟内,那么开仓量为0.5*lot-原有的多单持仓,其他时间的开仓的量为lot-原有的多单持仓;

                3,采用挂单的方式,价格为当时成交价-3*最小变动价位。

                4,如果价格>委托价+10*最小变动价位或者计算机时间进入收盘前3分钟,那么立即撤未成交单,并追单,追单价位涨停价。追单的数量参照开仓条件2

 

 

平仓条件:1,价格<日线的开盘价-10*最小变动价位,那么平所有仓;

                2,如果计算机时间进入收盘前3分钟,平仓条件1不成立,那么留0.5*lot过夜,其余的平仓;

                3,平仓的委托价为当时成交价+3*最小变动价位。

             4,如果价格<委托价-10*最小变动价位或者计算机时间进入收盘前1分钟,那么立即撤未成交单,并追单,追单价位跌停价。

 

 

说明:1,如果由于某些些原因,不得不中途启动预警,如果当时开仓或平仓的条件成立,也必须立即挂单,进入交易状态。

         2,策略是多账户交易,请用多账户交易的相关函数。

         3,一天的开多次数最多2次;

<!--[if gte mso 9]> <![endif]--><!--[if gte mso 10]> <![endif]-->

 回到顶部
帅哥哟,离线,有人找我吗?
双飞燕
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:17 积分:76 威望:0 精华:0 注册:2010/3/1 16:23:22
  发帖心情 Post By:2015/10/16 23:48:35 [只看该作者]

 4,要求该策略能监控和交易多个品种

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/10/20 15:47:36 [只看该作者]

//时间用的商品做例子,如对中金所自己修改下时间那边即可。账户组用的TA这个用户自己做修改

//平仓条件中的2和4未写,不太明白你这不满足平仓条件然后平仓的意思。

//范例仅供参考,具体使用时客户还请先经一番测试

CloseDay:=callstock('',vtopen,6,0);
KD:=close-CLOSEDAY>30*MINDIFF;
PD:=CLOSEDAY-close>10*MINDIFF;
lot:=10;
GLOBALVARIABLE:KDNUM=0,KDTIMES=0;//num表示开多手数,times表示开多次数

if KD and DYNAINFO(207)<185500 and KDNUM<11 and KDTIMES<3 THEN
begin
tbuy(1,lot-TBUYHOLDING(1),lmt,DYNAINFO(7)-3*MINDIFF,0,'TA','');
KDTIMES:=KDTIMES+1;
KDNUM:=KDNUM+TENTERVOL;
end

if KD and DYNAINFO(207)>185500 and KDNUM<11 and KDTIMES<3 THEN
begin
tbuy(1,lot*0.5-TBUYHOLDING(1),lmt,DYNAINFO(7)-3*MINDIFF,0,'TA','');
KDTIMES:=KDTIMES+1;
KDNUM:=KDNUM+TENTERVOL;
end

if close>TENTERPRICE+10*MINDIFF or DYNAINFO(207)>185700 then
BEGIN
TCANCELex(1,1,'','');
tbuy(DYNAINFO(207)<185500,lot-TBUYHOLDING(1),mkt,0,0,'TA','');
tbuy(DYNAINFO(207)>185500,0.5*lot-TBUYHOLDING(1),mkt,0,0,'TA','');
end

if PD THEN
tsell(1,tbuyholding(1),lmt,DYNAINFO(7)+3*MINDIFF,0,'TA','');


 回到顶部