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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件新手乐园 → 金字塔使用技巧 [请不要跟帖]

   

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


  共有25087人关注过本帖平板打印复制链接

主题:金字塔使用技巧 [请不要跟帖]

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2013/6/20 17:34:03 [只看该作者]

2.14后台轮询模式

 

【金字塔使用技巧】----结合BARPOS和全局变量,控制是否开仓

运行环境:

//运行周期:1分钟

//运行模式:固定时间间隔,1秒轮询 

//运行品种:IF1303

会多个策略对该品种下单,希望各策略的开平仓独立,每个策略管好自己的开平仓 


 

策略简介:最高价突破EMA均线平空开多,最低价突破平多开空,有信号就下单。每根K线都只开平一次,开仓后当根K线后面的信号可以忽略

ss:=1; //手数

maa:ref(ema(c,10),1);//如果此处改为 ema(c,10) 会造成信号闪烁


 

buycond:=h>maa;

sellcond:=l<maa;

if holding>0 and sellcond then sell(1,ss,market);

if holding<0 and buycond then sellshort(1,ss,market);

if holding=0 and buycond then buy(1,ss,market);

if holding=0 and sellcond then buyshort(1,ss,market);


 

固定时间间隔,有信号就下单,信号闪烁情况下造成HOLDING值不稳定,故不能调用图表的HOLDING来控制仓位,必须使用后台程序化交易, 总体思路是用BARPOS和全局变量结合起来,控制是否开仓。

//序列模式运行

//t1_flag 0表示没有仓位,1表示持有多头,-1表示持有空头

//bar控制一根K线只能有一次开平仓

ss:=1; //手数

maa:ema(c,5);

buycond:=h>maa;

sellcond:=l<maa;


 

//平多

if extgbdata('t1_flag')>0 and sellcond  and barpos>extgbdata('bar')  then

  begin

  tsell(1,ss,mkt);

  extgbdataset('t1_flag',0);

  end


 

//平空

if extgbdata('t1_flag')<0 and buycond and barpos>extgbdata('bar')  then

  begin

  tsellshort(1,ss,mkt);

  extgbdataset('t1_flag',0);

  end  


 

//开多

if extgbdata('t1_flag')=0 and buycond then

  begin

  tbuy(1,ss,mkt);

  extgbdataset('t1_flag',1);

  extgbdataset('bar',barpos);

  end


 

//开空

if extgbdata('t1_flag')=0 and sellcond then

    begin

    tbuyshort(1,ss,mkt);

    extgbdataset('t1_flag',-1);

    extgbdataset('bar',barpos);

    end

全局变量使用注意事项:

策略运行过程中,手动平仓进行干预,请到"工具--数据--全局变量"里,将对应的全局变量清0,否则会引起开平仓混乱

论坛帖子http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=48919


 

【金字塔使用技巧】----后台轮询模式允许加仓,但是同一K线内部同样信号只允许做一次

//结合BARPOS和全局变量,控制是否开仓

IF  开多条件 and barpos>EXTGBDATA( STKLABEL&'bar')  then

     begin

     tbuy(1,1,mkt);

     EXTGBDATASET( STKLABEL&'bar',BARPOS) ;

     end


 

IF  加多条件 and barpos>EXTGBDATA( STKLABEL&'bar')  then

     begin

     tbuy(1,1,mkt);

     EXTGBDATASET( STKLABEL&'bar',BARPOS) ;

     End


 

【金字塔使用技巧】----后台轮询,如何记录变量在最后一周期内的最大最小及开盘值

ma5:=ma(c,5);

 

 //在新一根K线上记录初始化

  if barpos>extgbdata('t') then

   begin

   extgbdataset('FIR',ma5);//记录开盘值

   extgbdataset('MAX1',ma5);//记录最大

   extgbdataset('MIN1',ma5);//记录最小

   extgbdataset('t',barpos);

   end

  

  if barpos=extgbdata('t') then

   begin

   if ma5>extgbdata('MAX1') THEN extgbdataset('MAX1',ma5);

   if ma5<extgbdata('MIN1') THEN extgbdataset('MIN1',ma5);

   end

[此贴子已经被作者于2013/10/8 15:57:22编辑过]


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部