以文本方式查看主题

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

--  作者:豆芽
--  发布时间:2015/4/22 8:50:11
--  如何编写加仓
INPUT:N(1,1,100,1),K1(0.7,0.1,1,0.1),K2(0.7,0.1,1,0.1)
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
开盘价:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价
浮动区间:=MAX(HH-LL,HC-LL);//RANGE 
上轨:开盘价+K1*浮动区间;
下轨:开盘价-K2*浮动区间;

IF LOW<=下轨 THEN BEGIN
  SELL(HOLDING>0 AND ENTERBARS>0,0,market);
  BUYSHORT(HOLDING=0,1,market);
 END
IF HIGH>=上轨 THEN BEGIN
  SELLSHORT(HOLDING<0 AND ENTERBARS>0,0,market);
  BUY(HOLDING=0,1,market);
END


如何编写在已有开多或开空的情况下,每突破上轨或下轨都加一次仓(单个交易日只加一次),单边加三次为限。

--  作者:jinzhe
--  发布时间:2015/4/22 9:06:04
--  
 
INPUT:N(1,1,100,1),K1(0.7,0.1,1,0.1),K2(0.7,0.1,1,0.1);
variable:n=0,m=0;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
开盘价:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价
浮动区间:=MAX(HH-LL,HC-LL);//RANGE 
上轨:开盘价+K1*浮动区间;
下轨:开盘价-K2*浮动区间;

IF LOW<=下轨 THEN BEGIN
  SELL(HOLDING>0 AND ENTERBARS>0,0,market);
  if holding=0 then begin
      BUYSHORT(HOLDING=0,1,market);
      n:=0;
      m:=0;
  end
END
IF HIGH>=上轨 THEN BEGIN
  SELLSHORT(HOLDING<0 AND ENTERBARS>0,0,market);
  if holding=0 then begin
      BUY(HOLDING=0,1,market);
      n:=0;
      m;=0;
   end 
END

 

if l<=下轨 and holding<0 and n=0 and m<3 then begin

      buyshort(1,1,market);

      n:=1;

      m:=m+1;

end

 
if h>=上轨 and holding>0 and n=0 and m<3 then begin
      buy(1,1,market);
      n:=1;
      m:=m+1;
end
 
if time=closetime(0) then n:=0;

 

--  作者:豆芽
--  发布时间:2015/4/22 10:08:32
--  
为什么反手的会多开一手?
--  作者:jinzhe
--  发布时间:2015/4/22 10:10:59
--  
多开一手指的是什么?
--  作者:豆芽
--  发布时间:2015/4/22 10:18:08
--  
比如平多开空时,平多单正常(全平),反手开空单时(初次空单次只开一手,但实际会多开一手)。
--  作者:jinzhe
--  发布时间:2015/4/22 10:25:39
--  

if l<=下轨 and holding<0 and n=0 and m<3 and enterbars>0 then begin

      buyshort(1,1,market);

      n:=1;

      m:=m+1;

end

 
if h>=上轨 and holding>0 and n=0 and m<3  and enterbars>0 then begin
      buy(1,1,market);
      n:=1;
      m:=m+1;
end
 
从逻辑上来讲同根k线加仓是满足你上面的条件对吧?
那么不想要同根k线开仓就加条件:enterbars>0

--  作者:豆芽
--  发布时间:2015/4/23 9:41:19
--  
加仓部分没有问题,而是出在反手的时候,比如平多翻空,平多正常,开空单的时候设定开一手,但图形显示会开二手
--  作者:jinzhe
--  发布时间:2015/4/23 9:45:43
--  
请发一个能说明上述现象的截图
--  作者:豆芽
--  发布时间:2015/4/23 10:10:26
--  
如何截图?
--  作者:jinzhe
--  发布时间:2015/4/23 10:14:40
--  

截图可以使用QQ软件进行截图

论坛的发图方式按照下面的方式发图:

http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=31614&page=3