相關標簽:惠比特交易和配種專區,夢三國交易專區,夢三國交易專區速秒,靈緹格力交易專區,中京交易市場下載專區,古幣銀元交易專區,長毛德牧交易專區,夢三國交易專區在哪里,qq交易專區,
模型策略源碼:runmode:1; input:unitoftime(15,5,15,5),length(4,1,6,1); input:initialstop(2,2,6,1),trailingstop(4,2,6,1); input:startdate(1110104,1,9999999,1),intraday(1,0,1,1); input:money(0,0,10,1);{m.kzuj.com.cn} input:slippage(0,0,1,1); input:debug(0,0,2,1); strategyname:=\'fs1\'; prefix:=\'ac1_\'+stklabel+\'_\'+strategyname+\'_\'; costprice:=prefix+\'cost\'; stopline:=prefix+\'stop\'; myaccount:=\'888888\'; if initialstop>trailingstop then exit; if startdate>1 and date<startdate then exit; begin if stricmp(marketlabel,\'sq\')=0 then label:=strleft(stklabel,2); if stricmp(marketlabel,\'dq\')=0 then label:=strleft(stklabel,1); if stricmp(marketlabel,\'zq\')=0 then label:=strleft(stklabel,2); if stricmp(marketlabel,\'zj\')=0 then label:=strleft(stklabel,2); if stricmp(label,\'cf\')=0 then begin marginratio:=0.17; commission:=12; tradeable:=true; end if stricmp(label,\'sr\')=0 then begin marginratio:=0.16; commission:=6; tradeable:=true; end //if not(tradeable) then exit; end begin entertime1:=t0totime(timetot0(opentime(1))+60*(unitoftime+2)); entertime2:=t0totime(timetot0(closetime(0))-60); exittime1:=t0totime(timetot0(closetime(0))); entertime:=time>=entertime1 and time<=entertime2; exittime:=time>=exittime1; cond:=day<>ref(day,1) or barpos=1; n:=barpos-valuewhen(cond,barpos)+1; settlementprice:=trimprice(sum(amount,n)/sum(vol,n)/multiplier); period:=unitoftime*length; topband:=ref(hhv(high,period),1)+mindiff; botband:=ref(llv(low,period),1)-mindiff; atr:=trimprice(ref(ma(tr,unitoftime),1)+mindiff); initialstopnum:=atr*initialstop; trailingstopnum:=atr*trailingstop; slippagenum:=slippage*mindiff; longcond:=barpos>=period and entertime and high>=topband and topband<dynainfo(54); longprice:=close; shortcond:=barpos>=period and entertime and low<=botband and botband>dynainfo(55); shortprice:=close; end if workmode=1 then begin if tbuyholdingex(myaccount,stklabel,1)=0 and tsellholdingex(myaccount,stklabel,1)=0 then begin extgbdataset(costprice,0); extgbdataset(stopline,0); end if tbuyholdingex(myaccount,stklabel,1)=0 then begin price:=0; lots:=0; if longcond then price:=longprice; if price>0 then begin mycash:=taccount2(19,myaccount); lots1:=intpart(mycash/(price*multiplier*marginratio)); if money=0 then begin lots:=lots1; end else begin lots2:=intpart(mycash*0.01*money/(initialstopnum*multiplier)); lots:=min(lots1,lots2); end end if lots>=1 then tbuy(1,lots,lmt,price+slippagenum,0,myaccount,stklabel); end if tsellholdingex(myaccount,stklabel,1)=0 then begin price:=0; lots:=0; if shortcond then price:=shortprice; if price>0 then begin mycash:=taccount2(19,myaccount); lots1:=intpart(mycash/(price*multiplier*marginratio)); if money=0 then begin lots:=lots1; end else begin lots2:=intpart(mycash*0.01*money/(initialstopnum*multiplier)); lots:=min(lots1,lots2); end end if lots>=1 then tbuyshort(1,lots,lmt,price-slippagenum,0,myaccount,stklabel); end if tbuyholdingex(myaccount,stklabel,1)>0 then begin price:=0; lots:=tbuyholdingex(myaccount,stklabel,1); if close=dynainfo(54) then price:=close; if exittime then begin if intraday=0 then begin price:=close; end else begin if costprice<settlementprice and settlementprice<stopline then exit; else price:=close; end end begin if extgbdata(stopline)>0 and close<=extgbdata(stopline) then price:=close; if extgbdata(stopline)=0 then begin if commission>1 then extgbdataset(costprice,trimprice(tavgenterpriceex2(myaccount,stklabel,0)+2*commission/multiplier)+mindiff); else extgbdataset(costprice,trimprice(tavgenterpriceex2(myaccount,stklabel,0)*(1+commission)/(1-commission))+mindiff); extgbdataset(stopline,extgbdata(costprice)-initialstopnum); end if extgbdata(stopline)<extgbdata(costprice) and high-initialstopnum>=extgbdata(costprice) then extgbdataset(stopline,extgbdata(costprice)); if extgbdata(stopline)>=extgbdata(costprice) and high-trailingstopnum>extgbdata(stopline) then extgbdataset(stopline,high-trailingstopnum); end if price>0 then tsell(1,lots,lmt,price-slippagenum,0,myaccount,stklabel); end if tsellholdingex(myaccount,stklabel,1)>0 then begin price:=0; lots:=tsellholdingex(myaccount,stklabel,1); if close=dynainfo(55) then price:=close; if exittime then begin if intraday=0 then begin price:=close; end else begin if costprice>settlementprice and settlementprice>stopline then exit; else price:=close; end end begin if extgbdata(stopline)>0 and close>=extgbdata(stopline) then price:=close; if extgbdata(stopline)=0 then begin if commission>1 then extgbdataset(costprice,trimprice(tavgenterpriceex2(myaccount,stklabel,1)-2*commission/multiplier)-mindiff); else extgbdataset(costprice,trimprice(tavgenterpriceex2(myaccount,stklabel,1)*(1-commission)/(1+commission))-mindiff); extgbdataset(stopline,extgbdata(costprice)+initialstopnum); end if extgbdata(stopline)>extgbdata(costprice) and low+initialstopnum<=extgbdata(costprice) then extgbdataset(stopline,extgbdata(costprice)); if extgbdata(stopline)<=extgbdata(costprice) and low+trailingstopnum<extgbdata(stopline) then extgbdataset(stopline,low+trailingstopnum); end if price>0 then tsellshort(1,lots,lmt,price+slippagenum,0,myaccount,stklabel); end end if workmode=0 then begin margin:close*multiplier*marginratio,linethick0; ss:settlementprice,colorwhite,linethick2; if tbuyholdingex(myaccount,stklabel,1)=0 and tsellholdingex(myaccount,stklabel,1)=0 then begin tb:topband,linethick0; bb:botband,linethick0; drawicon(entertime and islastbar and topband<dynainfo(54),topband,10); drawicon(entertime and islastbar and botband>dynainfo(55),botband,11); end if tbuyholdingex(myaccount,stklabel,1)>0 or tsellholdingex(myaccount,stklabel,1)>0 then begin cp:extgbdata(costprice),linethick0; sl:extgbdata(stopline),linethick0; wl:if(tbuyholdingex(myaccount,stklabel,1)>0,(sl-cp)*multiplier*tbuyholdingex(myaccount,stklabel,1),(cp-sl)*multiplier*tsellholdingex(myaccount,stklabel,1)),linethick0; end if tbuyholdingex(myaccount,stklabel,1)>0 then begin drawicon(islastbar and extgbdata(stopline)<extgbdata(costprice),extgbdata(stopline),11); drawicon(islastbar and extgbdata(stopline)=extgbdata(costprice),extgbdata(stopline),12); drawicon(islastbar and extgbdata(stopline)>extgbdata(costprice),extgbdata(stopline),10); end if tsellholdingex(myaccount,stklabel,1)>0 then begin drawicon(islastbar and extgbdata(stopline)>extgbdata(costprice),extgbdata(stopline),11); drawicon(islastbar and extgbdata(stopline)=extgbdata(costprice),extgbdata(stopline),12); drawicon(islastbar and extgbdata(stopline)<extgbdata(costprice),extgbdata(stopline),10); end end 點擊復制上述代碼粘貼到到公式管理器
{別忘了將本網告訴您身邊的朋友,向朋友傳達有用資料,也是一種人情,你朋友會感謝你的。}