以文本方式查看主题

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

--  作者:智慧
--  发布时间:2014/10/16 19:27:34
--  加仓问题
请教:用顾比倒数策略条件平开仓,增加条件:如果前一次开多仓(或空)平仓后盈利,则反向开仓为一手,如果是亏损,又反向一手,如果又是亏损,则再次反向单2手,又亏损则又反手2手,再亏损又反向6手,再亏损又反向下手。其中任何一次盈利,均反向1手。如此反复。即1-1-2-2-6-6。每次开仓,均先平已有持单。
--  作者:jinzhe
--  发布时间:2014/10/17 8:55:41
--  
原策略就是平仓反手,你这样的思路就不行了,不能再反向了
[此贴子已经被作者于2014/10/17 8:56:07编辑过]

--  作者:jinzhe
--  发布时间:2014/10/17 8:57:23
--  
你的意思是在原有的反向基础上,再来个平仓反手?
--  作者:jinzhe
--  发布时间:2014/10/17 8:58:13
--  

IF HOLDING>0 THEN BEGIN   //若持有多单
 IF TMP>0 THEN BEGIN      //且TMP>0
  SELL(1,HOLDING,LIMITR,CLOSE);   //平多单
  BUYSHORT(1,1,LIMITR,CLOSE);    //开空单
 END

END

改成?

IF HOLDING>0 THEN BEGIN   //若持有多单
 IF TMP>0 THEN BEGIN      //且TMP>0
  SELL(1,HOLDING,LIMITR,CLOSE);   //平多单
  BUYSHORT(1,1,LIMITR,CLOSE);    //开空单

  SELLSHORT(1,0,LIMITR,CLOSE);

  BUY(1,1,LIMITR,CLOSE);
 END

 

 这样的?


--  作者:智慧
--  发布时间:2014/10/17 16:59:41
--  
我的意思遵守原策略的开仓和平仓,只是根据盈亏增加下次的下单数量
--  作者:jinzhe
--  发布时间:2014/10/17 17:10:30
--  

所谓的112266就是:

连亏一次开1手,连亏两次开2手,连亏三次开6手

连赢一次开1手,连赢两次开2手,连赢三次开6手

吗?

[此贴子已经被作者于2014/10/17 17:10:36编辑过]

--  作者:jinzhe
--  发布时间:2014/10/17 17:20:51
--  

前面的代码不变,后面的这样改

 

tmp:=-k;
variable:shoushu=1;
variable:n=0,m=0;
if holding=0 then begin   //若持仓为0
 if tmp<=0 then           //且tmp<=0
  buy(1,1,limitr,close);  //开多单
end
if holding=0 then begin   //若持仓为0
 if tmp>0 then            //且tmp>0
  buyshort(1,1,limitr,close);  //开空单
end
if holding>0 and tmp>0 then begin   //若持有多单
     
  sell(1,holding,limitr,close);   //平多单
 
  if numprofit(1)>0 then begin
   buyshort(1,shoushu,limitr,close);    //开空单
   n:=n+1;
   m:=0;
  end
 
  if numprofit(1)<0 then begin
   buyshort(1,shoushu,limitr,close);
   n:=0;
   m:=m+1;
  end
 
end
if holding<0 and tmp<0 then begin    //若持有空单
    
  sellshort(1,holding,limitr,close);  //平空单
 
if numprofit(1)>0 then begin
   buy(1,shoushu,limitr,close);    //开空单
   n:=n+1;
   m:=0;
  end
 
  if numprofit(1)<0 then begin
   buy(1,shoushu,limitr,close);
   n:=0;
   m:=m+1;
  end
end
if n=1 or m=1 then shoushu:=1;
if n=2 or m=2 then shoushu:=2;
if n>=3 or m>=3 then shoushu:=6;


--  作者:智慧
--  发布时间:2014/10/17 18:36:19
--  
是的
--  作者:智慧
--  发布时间:2014/10/17 19:46:34
--  

我的意思是:

连亏一次开1手,连亏两次开2手,连亏三次开6手

赢都开1手。


--  作者:智慧
--  发布时间:2014/10/17 19:48:51
--  
不是

我的意思是:

连亏一次开1手,连亏两次开2手,连亏三次开6手

只要是赢都开1手。