以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请老师帮忙改写一下模型  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=146537)

--  作者:wwdx
--  发布时间:2017/1/11 14:22:30
--  请老师帮忙改写一下模型
请老师帮忙解释一下这个做多的模型,想用在铁矿上,网格宽度为2,每两个点加多1手,midline=600


variable:level=0;//定义一个全局变量level数值为0

//dist:=barslast(date<>ref(date,1));
//oo:=ref(open,dist);
oo:=midline;

 //这段代码描述持仓为0时,开多单的条件
if holding=0 then begin
 dnprice:=oo-grid*mindiff;
 
 if low<=dnprice then begin
  buy(1,1,limitr,dnprice);
  level:=-1;
 end
end 


 //这段代码描述持仓为多单时,平多和开多的条件
if holding>0 then begin
 upprice:=oo+(level+1)*grid*mindiff;
 dnprice:=oo+(level-1)*grid*mindiff;
 
 if high>=upprice then begin
  sell(1,1,limitr,upprice);
  level:=level+1;
 end
 
 if low<=dnprice then begin
  buy(1,1,limitr,dnprice);
  level:=level-1;
 end
 
  if time=closetime(0) then
  sell(1,holding,limitr,close);
end 


盈亏:asset,noaxis,colormagenta;      
收益:(asset-50000)/50000,linethick0;
次数:totaltrade,linethick0;
胜率:percentwin,linethick0;
连亏:maxseqloss,linethick0;
连赢:maxseqwin,linethick0;
持仓:HOLDING,linethick0;



{
信号语句排列规则——先平后开
“费率设置”按钮——用于合理设置模型“费率”,以便在图形上正确输出如下帐户信息:

持仓:holding,linethick0;
资产:asset,noaxis;
可用现金:cash(0),linethick0;

您可以在查看菜单->交易系统模板 中设置自己需要的模板
}
[此贴子已经被作者于2017-1-11 14:23:00编辑过]

--  作者:jinzhe
--  发布时间:2017/1/11 14:36:04
--  

是要改写,还是要解释?


--  作者:wwdx
--  发布时间:2017/1/11 14:37:46
--  
改写,老师,因为我可能还要做一些修改,我不太理解里面的东西所以也烦请老师改写的过程中给我标注的详细一些谢谢
--  作者:jinzhe
--  发布时间:2017/1/11 14:48:28
--  
要写成什么样的?
--  作者:wwdx
--  发布时间:2017/1/11 14:54:25
--  
用在铁矿上,midline=600 ;定义一个网格宽度为2,价格每上涨1个网格宽度即2点开空1手,每回落1个网格宽度(2点)平空1手
--  作者:jinzhe
--  发布时间:2017/1/11 15:05:33
--  
midline是做什么用的?
--  作者:wwdx
--  发布时间:2017/1/11 15:11:23
--  
midline是一个基数,在这个基础上每上涨2个点做空1手,然后就是midline+2的基础上上涨2个点再加空1手……价格回落到midline+2的话平空1手,以此类推
--  作者:jinzhe
--  发布时间:2017/1/11 15:25:31
--  

variable:level=0;//定义一个全局变量level数值为0
midline:=600;
grid:=2;//网格的一个阶
oo:=midline;//网格起点
 //这段代码描述持仓为0时,开多单的条件
if holding=0 then begin
 dnprice:=oo-grid*mindiff;//设定初始的网格
 
 if low<=dnprice then begin//价格满足初始设定的网格价格后下单
  buy(1,1,limitr,dnprice);//初始的开仓语句
  level:=-1;//设定第一阶的网格值
 end
end

 //这段代码描述持仓为多单时,平多和开多的条件


if holding>0 then begin
 upprice:=oo+(level+1)*grid*mindiff;//这里定义的是回调后的价格,满足这个价格就平仓
 dnprice:=oo+(level-1)*grid*mindiff;//这里定义的是网格趋势的价格,满足这个价格就开仓
 
 if high>=upprice then begin
  sell(1,1,limitr,upprice);//平仓语句
  level:=level+1;//平仓之后,把网格回调一阶
 end
 
 if low<=dnprice then begin
  buy(1,1,limitr,dnprice);//开仓语句
  level:=level-1;//开仓之后,根据网格的趋势,再顺势加一阶
 end
 
  if time=closetime(0) then
  sell(1,holding,limitr,close);
end //收盘清仓


--  作者:wwdx
--  发布时间:2017/1/11 15:41:59
--  
如果我想把下单手数设定为一个参数为xdss的话,那么把所有的(1,1,limitr,dnprice)改成(1,xdss,limitr,dnprice),然后在设置参数那里设置 一下就行了?


[此贴子已经被作者于2017-1-11 15:42:12编辑过]

--  作者:jinzhe
--  发布时间:2017/1/11 15:50:24
--  
是的