以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  这样写可以实现加减仓吗?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=146974)

--  作者:梦若神机
--  发布时间:2017/1/16 17:32:12
--  这样写可以实现加减仓吗?
SELL(CROSS(m1,m2),holding,thisclose);
SELLSHORT(CROSS(m2,m1),holding,thisclose);


variable:num=0;//每次初始化num

num:=10;


if NUMPROFIT(1) >0 then num=num+1;//加仓

if NUMPROFIT(1) <0 then num=num-1;//减仓

t:=time>=1300&&time<=1500;


BUYSHORT(T&&CROSS(m1,m2)&&holding=0,num,THISCLOSE);
BUY(T&&CROSS(m2,m1)&&holding=0,num,THISCLOSE);



是这样写吗?可是为什么回测报告里面都是10手开仓,没有加减仓,为什么不会加减仓,老师,可以帮我修改下吗?为什么不会加减仓


--  作者:jinzhe
--  发布时间:2017/1/17 8:43:51
--  

num:=num+1;

num:=num-1;

少了 冒号就不对了


--  作者:梦若神机
--  发布时间:2017/1/17 14:52:32
--  
加上冒号就重复定义了
--  作者:梦若神机
--  发布时间:2017/1/17 15:04:40
--  
那我要限制最多加仓到20手就不在加仓,减仓到5手就不在减仓,这个怎么设置
--  作者:jinzhe
--  发布时间:2017/1/17 15:15:41
--  
以下是引用梦若神机在2017-1-17 14:52:32的发言:
加上冒号就重复定义了

不是,是赋值


--  作者:jinzhe
--  发布时间:2017/1/17 15:16:17
--  
if NUMPROFIT(1) >0 and num<20 and num>5 then num=num+1;//加仓

if NUMPROFIT(1) <0 and num<20 and num>5 then num=num-1;//减仓

--  作者:梦若神机
--  发布时间:2017/1/17 15:25:10
--  
还有个问题为什么都是9,10,11手呢,为什么不会继续增加或减少,怎么都是在10的基础上增加一手货减少一手
--  作者:jinzhe
--  发布时间:2017/1/17 15:35:03
--  
if NUMPROFIT(1) >0 and num<20 and num>5 then num:=num+1;//加仓

if NUMPROFIT(1) <0 and num<20 and num>5 then num:=num-1;//减仓
漏了冒号,现在加了

--  作者:梦若神机
--  发布时间:2017/1/17 15:39:55
--  
variable:num=0;//每次初始化num

num:=10;


if NUMPROFIT(1) >0 and num<=20 and num>=5 then num:=num+1;//加仓

if NUMPROFIT(1) <0 and num<=20 and num>=5 then num:=num-1;//减仓
这样子也不对啊,这样都是用10手来加减仓,假设前一笔盈利,那么就是11手,然后再盈利,然后他还是10+1手,为什么不会变12手


--  作者:jinzhe
--  发布时间:2017/1/17 15:45:27
--  


variable:num=10;//每次初始化num
t:=time>=1300&&time<=1500; 
 
SELLSHORT(CROSS(m2,m1),holding,thisclose);
BUY(T&&CROSS(m2,m1)&&holding=0,num,THISCLOSE);
 
SELL(CROSS(m1,m2),holding,thisclose);
BUYSHORT(T&&CROSS(m1,m2)&&holding=0,num,THISCLOSE);
 

if NUMPROFIT(1) >0 and enterbars=0 and num<20 and num>5 then num:=num+1;//加仓

if NUMPROFIT(1) <0 and enterbars=0 and num<20 and num>5 then num:=num-1;//减仓
你这样再试试看