|
- 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
复制代码
|
|