金字塔上下突破多空策略交易系统-金字塔公式
更多金钻指标股票技术讨论QQ群:966329692 技术讨论QQ群:220302856 技术讨论QQ群:39652085 如群满可换一个

金字塔公式 金字塔模型策略源码: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

复制上述代码粘贴到到公式管理器

源码解析:

输出RUNMODE:0
输出INPUT:周期
 输出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
 COMMISSION赋值:0.001
 STAMPTAX赋值:0.001
 TRANSFERFEE赋值:0.001
 COMMISSION赋值:0.001
 STAMPTAX赋值:0.001
 TRANSFERFEE赋值:0
 TOPBAND赋值:昨日周期日内最高价的最高值+MINDIFF
 ATR赋值:昨日真实波幅的10日简单移动平均
INITIALSTOPNUM赋值:TRIMPRICE(INITIALSTOP*ATR)
 COSTSTOPNUM赋值:TRIMPRICE(COSTSTOP*ATR)
赋值:TRIMPRICE(TRAILINGSTOP*ATR)
 SLIPPAGENUM赋值:SLIPPAGE*MINDIFF
 PRICE赋值:0
 LOTS赋值:0
 PRICE赋值:收盘价+SLIPPAGENUM
 MYCASH赋值:CASH(0)
 LOTS1赋值:MYCASH/(PRICE*VOLUNIT)的整数部分*VOLUNIT
 LOTS赋值:LOTS1
 LOTS2赋值:MYCASH*0.01*MONEY/(INITIALSTOPNUM*VOLUNIT)的整数部分*VOLUNIT
 LOTS赋值:LOTS1和LOTS2的较小值
  END END     逻辑判断 LOTS>=1 THEN BEGIN  BUY(1,LOTS,LIMITR,PRICE)
      逻辑判断 WORKMODE=1 THEN   TBUY(1,LOTS,LIMITR,PRICE)
 PRICE赋值:0
 LOTS赋值:HOLDING
 PRICE赋值:收盘价-SLIPPAGENUM
 COSTPRICE赋值:TRIMPRICE((ENTERPRICE*(1+COMMISSION)+2*TRANSFERFEE)/(1-COMMISSION-STAMPTAX))+MINDIFF
 STOPLINE赋值:COSTPRICE-INITIALSTOPNUM
 STOPLINE赋值:COSTPRICE
 STOPLINE赋值:最高价-TRAILINGSTOPNUM
      END   逻辑判断 PRICE>0 THEN BEGIN  SELL(1,LOTS,LIMITR,PRICE)
 COSTPRICE赋值:0
 STOPLINE赋值:0
 MYASSET赋值:ASSET
     逻辑判断 WORKMODE=1 THEN   TSELL(1,LOTS,LIMITR,PRICE)
  END ENDPARTLINE(DEBUG=1 AND HOLDING=0,TOPBAND,画红色,1)
逻辑判断 INITIALSTOP>0 THEN BEGIN 逻辑判断 HOLDING>0 THEN BEGIN  当满足条件STOPLINE<COSTPRICE时,在STOPLINE位置画11号图标
  当满足条件STOPLINE=COSTPRICE时,在STOPLINE位置画12号图标
  当满足条件STOPLINE>COSTPRICE时,在STOPLINE位置画10号图标
 输出  ENDENDIF DEBUG=1 THEN BEGIN 盈亏:MYASSET,NOAXIS,画洋红色
 输出       收益:(MYASSET-500000)/500000,线宽为0
输出 次数:TOTALTRADE,线宽为0
输出 胜率:PERCENTWIN,线宽为0
输出 连亏:MAXSEQLOSS,线宽为0
输出 连赢:MAXSEQWIN,线宽为0
 END

 


选股票看什么指标最好 >股票指标网