以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于后台某些功能实现的求助  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=75523)

--  作者:黄玉天一
--  发布时间:2015/2/10 11:19:29
--  关于后台某些功能实现的求助

各位大虾:

后台想实现几个功能,求编写代码

 

1、隔夜策略如股指,当日15:10分平仓,第二天开盘9:15开进去;

2、后台某一策略日内累积亏损额>某一数值,则停止运作该策略。

 

万分感谢!


--  作者:jinzhe
--  发布时间:2015/2/10 11:22:09
--  

if 平仓条件 and 持仓判断 then begin

    平仓语句;

    extgbdataset(\'time\',time);

end

 

if extgbdata(\'time\')=151000 and time=091600 then 开仓语句;

 

if tasset-ref(tasset,todaybar)>某一数值  then exit;


--  作者:黄玉天一
--  发布时间:2015/2/10 11:29:28
--  

if tasset-ref(tasset,todaybar)>某一数值  then exit;

 

 

这个Tasset是整个资产的意思吧,如果我跑10个策略,总计盈利10万,但我其中一个策略亏了3万,超过了我对单一策略2万亏损上限,但ASSET是增长的,这种情况下如何处理呢?大神


--  作者:fly
--  发布时间:2015/2/10 13:16:45
--  

单一策略中,每次平仓都用全局变量,记录当时的盈利状况

如果超过某个特定值,则不再开仓---就像一个开关一样,打开就可以开仓,关闭则停止开仓

 

下面是举的一个后台全局变量的例子,供您参考

 

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

ma5:=ma(c,5);

if islastbar then

 begin

 //在新一根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

  end

 

 

以下例子是个图标全局变量亏损控制的例子,记得要转成后台extgbdata格式的才能使用,对应的开平仓持仓相关函数,也要转化为后台的,提供给您参考

部分示例(2) :

日内累计亏损超限(如:超过3000)就停止交易

variable:zongkuisun=0;

ma5:=ma(c,5);

ma10:=ma(c,10);

buycond:=cross(ma5,ma10);

sellcond:=cross(ma10,ma5);

 

if holding>0 and sellcond then begin

   sell(1,1,limitr,c);

   zongkuisun:=zonngkuisun+min(0,c-enterprice);

end

 

if zongkuisun>-3000 and holding=0 and buycond then buy(1,1,limitr,c);

 

if time=closetime(0) then begin

   sell(holding>0,1,limitr,o);

   zongkuisun:=0;//收盘时要重新赋值为0

end