以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  [交易系统]突破策略  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=6371)

--  作者:z7c9
--  发布时间:2011/4/29 21:11:12
--  [交易系统]突破策略

图片点击可在新窗口打开查看

 

runmode:0;

input:period(70,5,90,5);
input:initialstop(2,0,3,1),coststop(2,1,3,1),trailingstop(3,1,6,1);
input:money(0,0,10,1);
input:slippage(1,0,1,1);
input:debug(0,0,1,1);

variable:myasset=500000;
variable:costprice=0,stopline=0;

begin 
 if stricmp(marketlabel,\'sh\')=0 then begin
  commission:=0.001;
  stamptax:=0.001;
  transferfee:=0.001;
 end
 
 if stricmp(marketlabel,\'sz\')=0 then begin
  commission:=0.001;
  stamptax:=0.001;
  transferfee:=0;
 end 

 topband:=ref(hhv(high,period),1)+mindiff;
 
 atr:=ref(ma(tr,10),1);
 
 initialstopnum:=trimprice(initialstop*atr);
 coststopnum:=trimprice(coststop*atr);
 trailingstopnum:=trimprice(trailingstop*atr);
 slippagenum:=slippage*mindiff;
end

if holding=0 then begin
 price:=0;
 lots:=0;
 
 if barpos>=period and high>=topband then
  price:=close+slippagenum;
 
 if price>0 then begin  
  mycash:=cash(0);
  
  lots1:=intpart(mycash/(price*volunit))*volunit;   
  
  if money=0 then begin
   lots:=lots1;
  end else begin
   lots2:=intpart(mycash*0.01*money/(initialstopnum*volunit))*volunit;
   lots:=min(lots1,lots2);
  end
 end  
  
 if lots>=1 then begin
  buy(1,lots,limitr,price); 
  
  if workmode=1 then
   tbuy(1,lots,limitr,price);
 end 
end

if holding>0 then begin
 price:=0;
 lots:=holding;
 
 if initialstop>0 then begin
  if stopline>0 and low<=stopline then
   price:=close-slippagenum;
   
  if stopline=0 then begin
   costprice:=trimprice((enterprice*(1+commission)+2*transferfee)/(1-commission-stamptax))+mindiff;
   
   stopline:=costprice-initialstopnum;
  end 
   
  if stopline<costprice and high-coststopnum>=costprice then
   stopline:=costprice;
  
  if stopline>=costprice and high-trailingstopnum>stopline then
   stopline:=high-trailingstopnum;    
 end 
 
 if price>0 then begin
  sell(1,lots,limitr,price);
  costprice:=0;
  stopline:=0;
  
  myasset:=asset;
  
  if workmode=1 then
   tsell(1,lots,limitr,price);
 end 
end

partline(debug=1 and holding=0,topband,colorred,1);

if initialstop>0 then begin
 if holding>0 then begin
  drawicon(stopline<costprice,stopline,11);
  drawicon(stopline=costprice,stopline,12);
  drawicon(stopline>costprice,stopline,10); 
 end
end

if debug=1 then begin
 盈亏:myasset,noaxis,colormagenta;      
 收益:(myasset-500000)/500000,linethick0;
 次数:totaltrade,linethick0;
 胜率:percentwin,linethick0;
 连亏:maxseqloss,linethick0;
 连赢:maxseqwin,linethick0;
end

[此贴子已经被作者于2011-10-3 11:21:53编辑过]

--  作者:期指新手
--  发布时间:2011/5/2 18:05:06
--  

是图表下用还是后台用?