欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]后台模型编写问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3273人关注过本帖树形打印复制链接

主题:[求助]后台模型编写问题

帅哥哟,离线,有人找我吗?
bbosaabb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:250 威望:0 精华:0 注册:2012/6/15 15:05:02
[求助]后台模型编写问题  发帖心情 Post By:2013/8/30 14:55:04    Post IP:183.27.226.220[只看该作者]

麻烦你们一下帮我看看以下的后台模型有没有编错,这是我第一次编写的后台模型,谢谢

 

VARIABLE:Z=0;//定位开仓价
VARIABLE:ZD=0;//多头变量
VARIABLE:ZK=0;//空头变量
VARIABLE:开多=0;
VARIABLE:平多=0;
VARIABLE:开空=0;
VARIABLE:平空=0;
N:=barslast(DATE<>REF(DATE,1))+1;//开盘到当前周期数
//引用15分钟周的MACD
DIFF15:="BB.DIFF1#MIN15";
DEA15:="BB.DEA1#MIN15";
DIFF5:="BB.DIFF1#MIN5";
DEA5:="BB.DEA1#MIN5";
MA5日:="DD.MA5#DAY";

//日内MACD
variable:ema12=c,ema26=c,dea=0;
if day<>ref(day,1) then begin
ema12:=c;
ema26:=c;
DEA:=0;end
ema12:=ema12*11/13+c*2/13;
ema26:=ema26*25/27+c*2/27;
DIFF:=ema12-ema26;
DEA:=DEA*4/5+DIFF/5;

//分时图上的加权平均价
dm:=4-INTPART(LOG(C));
AA:ROUNDS(IF(sum(vol,N)=0,C,sum(C*vol,N)/sum(vol,N)),dm+2),colorred;

MA12:=EMA(C,12);

H15:=REF(MA(H,15),1);
L15:=REF(MA(L,15),1);
//CCI
TYP := (HIGH + LOW + CLOSE)/3;
CCI:=(TYP-MA(TYP,14))/(0.015*AVEDEV(TYP,14));


MA5:=MA(C,5);
MA21:=MA(C,21);

//指标线
多12:=VALUEWHEN(CROSS(DEA,0),C);
空12:=VALUEWHEN(CROSS(0,DEA),C);
多11:=VALUEWHEN(CROSS(MA5,MA21),L);
空11:=VALUEWHEN(CROSS(MA21,MA5),H);
IF  DEA>0 THEN D: 多12,COLORRED;
IF  DEA<0 THEN K: 空12,COLORGREEN;

//开仓条件
B1:= CROSS(C,D)&&DEA>0&&C>H15&&C>AA&&DIFF>DEA&&CCI>100&&TIME>=100000;
S1:= CROSS(K,C)&&DEA<0&&C<L15&&C<AA&&DIFF<DEA&&CCI<-100&&TIME>=100000 ;
B2:= CROSS(C,D)&&DEA>0&&C>AA&&DIFF>DEA&&DIFF15>DEA15&&CCI>100&&TIME<=100000;
S2:= CROSS(K,C)&&DEA<0&&C<AA&&DIFF<DEA&&DIFF15<DEA15&&CCI<-100&&TIME<=100000;

//平仓条件
PB1:=CROSS(AA,C)&&K>AA&&DEA<0;
PS1:=CROSS(C,AA)&&D<AA&&DEA>0;

//资金风险控制
BBS1:=ASSET-REF(ASSET,N),noaxis ,linethick0 ;//当天盈亏合计
BBS2:=TNUMLOSSTRADE-REF(TNUMLOSSTRADE,N);//当天亏损次数
BBS3:=BBS2<2;//限制开仓次数
BB1:=BBS1>=-5000&&BBS1<=12000 ;//限制开仓

//平空或同时开多
IF TIME>=091600&&TIME<143500&&(B1||B2)&&THOLDING<=0&&BB1&&H-L<20 THEN
BEGIN TSELLSHORT(THOLDING<0,1,LMT,C);
      TBUY(THOLDING=0,1,LMT,C);
      Z:=TENTERPRICE;
      ZD:=H-Z;END
     
IF TIME>=091600&&TIME<143500&&(B1||B2)&& THOLDING<0&&BB1 THEN  TSELLSHORT(THOLDING<0,1,LMT,C); 
  
 //平多或同时开空
IF TIME>=091600&&TIME<143500&&(S1||S2)&&THOLDING>=0&&BB1&&H-L<20 THEN
BEGIN  TSELL(THOLDING>0,1,LMT,C);
       TBUYSHORT(THOLDING=0,1,LMT,C);
       Z:=TENTERPRICE;
       ZK:=Z-L;
END
IF TIME>=091600&&TIME<143500&&(S1||S2)&& THOLDING>0&&BB1 THEN TSELL(THOLDING>0,1,LMT,C);

//持仓浮动盈亏风险控制
IF H-Z>ZD then ZD:=H-Z;//当前持仓最大浮盈计算(多单)
IF Z-L>ZK THEN ZK:=Z-L;//当前持仓最大浮盈计算(空单)
IF THOLDING=0|| THOLDING>0 THEN ZK:=0;
IF THOLDING=0|| THOLDING<0 THEN ZD:=0;
BSD:=C-Z<=ZD-15&&THOLDING>0;//多头持仓从最高浮动盈亏回撤15个点以上
BSK:=Z-C<=ZK-15&&THOLDING<0;//空头持仓从最高浮动盈亏回撤15个点以上
BSD3:=C-Z>=70&&THOLDING>0;//多头持仓浮盈70个点以上
BSK3:=Z-C>=70&&THOLDING<0;//多头持仓浮盈70个点以上
BSD1:= C-Z<=0.6*ZD && ZD>=25&&THOLDING>0;//多头浮盈从25个点以上回撤40%
BSD2:= C-Z<=ZD-15 && ZD>=45&&THOLDING>0;//多头浮盈从45个点以上回撤15个点
BSK1:= Z-C<=0.6*ZK && ZK>=25&&THOLDING<0;//多头浮盈从25个点以上回撤40%
BSK2:= Z-C<=ZK-15 && ZK>=45&&THOLDING<0;//多头浮盈从45个点以上回撤15个点   

 

//风险控制平多
IF (TIME>150500||BSD||BSD1||BSD2||BSD3||BBS1<=-6000||PB1)&&THOLDING>0 THEN
BEGIN TSELL(THOLDING>0,1,LMT,C);
END

//风险控制平空
IF (TIME>150500||BSK||BSK1||BSK2||BSK3||BBS1<=-6000||PS1)&&THOLDING<0 THEN
BEGIN TSELLSHORT(THOLDING<0,1,LMT,C);
END

//监控(开多)未成交单
KD:=TREMAINQTY(1,'','');
IF KD<>0 THEN BEGIN
开多:=KD;
END
//对(开多)未成交单撤单,并追单
IF KD>0 THEN BEGIN
TCANCEL(1,1);
TBUY(KD=0,开多,MKT);
END

//监控(平多)未成交单
PD:=TREMAINQTY( 2,'','');
IF PD<>0 THEN BEGIN
平多:=PD;
END
//对(平多)未成交单撤单,并追单
IF PD>0 THEN BEGIN
TCANCEL(1,2);
TSELL(PD=0,平多,MKT);
END

//监控(开空)未成交单
KK:=TREMAINQTY( 3,'','');
IF KK<>0 THEN BEGIN
开空:=KK;
END
//对(空开)未成交单撤单,并追单
IF KK>0 THEN BEGIN
TCANCEL(1,3);
TBUYSHORT(KK=0,开空,MKT);
END

//监控(平空)未成交单
PK:=TREMAINQTY( 4,'','');
IF PK<>0 THEN BEGIN
平空:=PK;
END
//对(平空)未成交单撤单,并追单
IF PK>0 THEN BEGIN
TCANCEL(1,4);
TSELLSHORT(PK=0,平空,MKT);
END

//在图表显示数据
多:=IF(THOLDING>0,C-Z,0);
空:=IF(THOLDING<0,Z-C,0);
最高:=MAX(ZK,ZD);
盈亏:=asset-REF(ASSET,N);
持仓:=TODAYHOLDING;
DEBUGOUT('当前持仓量%.2f',持仓);
DEBUGOUT('当前盈亏%.2f',盈亏 );
DEBUGOUT('持仓最高浮盈%.2f',最高 );
DEBUGOUT('多单浮盈%.2f',多 );
DEBUGOUT('空单浮盈%.2f',空 );

 


 回到顶部
帅哥哟,离线,有人找我吗?
lichenghu
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5895 积分:3774 威望:0 精华:0 注册:2012/1/1 0:00:01
  发帖心情 Post By:2013/8/30 15:35:14    Post IP:58.246.57.26[只看该作者]

好的,有空帮您看看。


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部