以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  “后台下单模板”,可用于各种模型。不会写后台模型的塔友,以后不用写了,复制此模板即OK  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=9112)

--  作者:阿火
--  发布时间:2011/11/24 9:50:42
--  “后台下单模板”,可用于各种模型。不会写后台模型的塔友,以后不用写了,复制此模板即OK

为了支持金字塔全速发展,切实解决塔友实际困难

响应金字塔号召

特公布此模板

 

只要把此模板放在 模型的最后面,就可以后台全自动化交易了。

有个性化需求的,也可在此模板上的基础上定制。

 

runmode:0;
Globalvariable:hold=drawnull;
……//这里添加上你自己的模型

……//这里添加上你自己的模型

cc800988:=holding;//这句放在信号稳定的地方
drawtextex(1,1,800,0,\'虚拟持仓为:\'+numtostr(cc800988,0));//在图表上输入虚拟持仓以便监控
if not(islastbar) or workmode<>1 then exit;
xiadan800988:=cc800988-hold;
if xiadan800988>0.5 then begin
 cang:=min(xiadan800988,abs(hold));
 if hold<0 then begin
  tsellshort(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平空 %.0f\',cang);
 end
 cang:=xiadan800988+min(hold,0);
 if cang>0 then begin
  tbuy(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开多 %.0f\',cang);
 end
end
if xiadan800988<-0.5 then begin
 cang:=min(abs(xiadan800988),abs(hold));
 if hold>0 then begin
  tsell(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平多 %.0f\',cang);
 end
 cang:=abs(xiadan800988)-max(hold,0);
 if cang>0 then begin
  tbuyshort(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开空 %.0f\',cang);
 end
end
hold:=cc800988;

 

 

 

 

完整实例如下:

实例一、 K线走完模式的模型

Globalvariable:hold=drawnull;
cc800988:=holding;//这句放在信号稳定的地方

//蓝色部分改为你自己的模型(K线走完模型)
buycond:=count(c>o,2)=2;
sellcond:=count(c<o,2)=2;
if holding>0 and sellcond then sell(1,1,thisclose);
if holding<0 and buycond then sellshort(1,1,thisclose);
if holding=0 and buycond then buy(1,1,thisclose);
if holding=0 and sellcond then buyshort(1,1,thisclose);

 

drawtextex(1,1,800,0,\'虚拟持仓为:\'+numtostr(cc800988,0));//在图表上输入虚拟持仓以便监控
if not(islastbar) or workmode<>1 then exit;
xiadan800988:=cc800988-hold;
if xiadan800988>0.5 then begin
 cang:=min(xiadan800988,abs(hold));
 if hold<0 then begin
  tsellshort(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平空 %.0f\',cang);
 end
 cang:=xiadan800988+min(hold,0);
 if cang>0 then begin
  tbuy(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开多 %.0f\',cang);
 end
end
if xiadan800988<-0.5 then begin
 cang:=min(abs(xiadan800988),abs(hold));
 if hold>0 then begin
  tsell(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平多 %.0f\',cang);
 end
 cang:=abs(xiadan800988)-max(hold,0);
 if cang>0 then begin
  tbuyshort(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开空 %.0f\',cang);
 end
end
hold:=cc800988;


 

 

 

实例二、即时下单模型(固定时间间隔)

Globalvariable:hold=drawnull;

//蓝色部分改为你自己的模型
buycond:=h>ref(hhv(h,10),1);
sellcond:=l<ref(llv(l,10),1);
if holding>0 and sellcond then sell(1,1,market);
if holding<0 and buycond then sellshort(1,1,market);
if holding=0 and buycond then buy(1,1,market);
if holding=0 and sellcond then buyshort(1,1,market);

cc800988:=holding;//这句放在信号稳定的地方


drawtextex(1,1,800,0,\'虚拟持仓为:\'+numtostr(cc800988,0));//在图表上输入虚拟持仓以便监控
if not(islastbar) or workmode<>1 then exit;
xiadan800988:=cc800988-hold;
if xiadan800988>0.5 then begin
 cang:=min(xiadan800988,abs(hold));
 if hold<0 then begin
  tsellshort(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平空 %.0f\',cang);
 end
 cang:=xiadan800988+min(hold,0);
 if cang>0 then begin
  tbuy(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开多 %.0f\',cang);
 end
end
if xiadan800988<-0.5 then begin
 cang:=min(abs(xiadan800988),abs(hold));
 if hold>0 then begin
  tsell(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平多 %.0f\',cang);
 end
 cang:=abs(xiadan800988)-max(hold,0);
 if cang>0 then begin
  tbuyshort(1,cang,mkt,0,0,\'800988\'),allowrepeat;
  debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开空 %.0f\',cang);
 end
end
hold:=cc800988;

[此贴子已经被作者于2012-2-16 15:40:21编辑过]

--  作者:miluse
--  发布时间:2011/11/24 10:07:40
--  

火哥

给力啊!


--  作者:空心菜
--  发布时间:2011/11/24 10:10:26
--  
图片点击可在新窗口打开查看
--  作者:xian_0_9
--  发布时间:2011/11/24 10:39:27
--  
图片点击可在新窗口打开查看
--  作者:D
--  发布时间:2011/11/24 10:41:01
--  

顶啊,这源码老有用了!!!图片点击可在新窗口打开查看


--  作者:newbasic
--  发布时间:2011/11/24 10:58:58
--  
谢谢阿火
--  作者:guotx2010
--  发布时间:2011/11/24 16:19:23
--  

太好了,论坛需要这样的乐于奉献的朋友!

 


--  作者:wtx128153
--  发布时间:2011/11/25 13:13:27
--  

谢谢阿火。

 


--  作者:solarhe2006
--  发布时间:2011/11/25 14:03:16
--  [公告]上海中期北京营业部与金字塔合作
if xiadan800988>0.5 then begin cang:=min(xiadan800988,abs(hold)); if hold<0 then="then" begin tsellshort(1,cang,mkt,0,0,\'800988\'),allowrepeat; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 平空 %.0f\',cang); end cang:=xiadan800988+min(hold,0); if="if" cang="cang" >0 then begin tbuy(1,cang,mkt,0,0,\'800988\'),allowrepeat; debugfile(\'D:\\800988.txt\',numtostr(hold,0)+\' \'+numtostr(cc800988,0)+\' 开多 %.0f\',cang); end end 请高手注释下,逻辑关系没看懂
--  作者:solarhe2006
--  发布时间:2011/11/25 14:49:03
--  [公告]上海中期北京营业部与金字塔合作
这个后台加载后,图的信号明显变慢,硬盘一直响。 我的机子,标准戴尔双核,2G内存。 逐K加后台,监控中数据运算量太大。