123
返回列表 发新帖
楼主: 金字塔客服
打印 上一主题 下一主题

金字塔教程之阿火秘笈——汇集各种模型编写方法(适用于所有模型的组合)

  [复制链接]
4
 楼主| 发表于 2011-12-27 21:51:58 | 只看该作者
本帖最后由 火焰之神 于 2015-4-8 16:55 编辑

五、自行计算最大回撤的方法,放到逐K线模式的模型最后面即可: zichan:asset,noaxis; if barpos=1 then begin MaxAsset:=zichan; Maxhc:=0; end if zichan>MaxAsset then MaxAsset:=zichan; if MaxAsset-zichan>Maxhc then Maxhc:=MaxAsset-zichan; 最大回撤:Maxhc,linethick0; 交易次数:totaltrade,linethick0; 正确率:percentwin,linethick0; //这里的变量"MaxAsset”、"Maxhc" 其实是全局变量,可不必声明。有重新赋值变量值才会改变
3
 楼主| 发表于 2011-12-27 21:48:16 | 只看该作者
本帖最后由 火焰之神 于 2015-4-8 16:55 编辑

四、日内满仓反手的写法 因为满仓的情况下,要等平仓单成交、保证金释放后,开仓下单才能成功。 用系统自带的orderqueue在平仓单没有第一时间成交的情况下有一定的局限性,可用如下的方法: runmode:0; input:cw(3,1,10,1); variable:cc=0; ma5:=ma(c,5); ma20:=ma(c,20); entertime:=time>100000 and time<144500; if holding>0 and cc<=0 then sell(1,cw,limitr,o); if holding<0 and cc>=0 then sellshort(1,cw,limitr,o); //此方法撤单和追单时间要控制在出信号的K线时间以内 if holding=0 and cc>0 and cw+tholding2>=cw then buy(1,cw,limitr,o);//平空成交后,"cw+tholding2>=cw "才会成立并开多 if holding=0 and cc<0 and cw-tholding2>=cw then buyshort(1,cw,limitr,o);//平多成交后,"cw-tholding2>=cw "才会成立并开空 if cc>0 and ma5ma20 then cc:=0; if cc=0 and ma5>ma20 and entertime then cc:=1; if cc=0 and ma5=150000 then begin cc:=0; end
2
 楼主| 发表于 2011-12-27 21:35:22 | 只看该作者
本帖最后由 火焰之神 于 2015-4-8 16:54 编辑

三、逐K线模式的模型,用免费版下单交易的方法 runmode:0; variable:cc=0; ma5:=ma(c,5); ma20:=ma(c,20); entertime:=time>100000 and time<144500; exitlong:cc<>1,tfilter; exitshort:cc<>-1,tfilter; enterlong:ref(cc,1)<>1 and cc=1,tfilter; entershort:ref(cc,1)<>-1 and cc=-1,tfilter; if cc>0 and ma5ma20 then cc:=0; if cc=0 and ma5>ma20 and entertime then cc:=1; if cc=0 and ma5=150000 then cc:=0; 原理是,用全局变量cc记录仓位,然后根据仓位的变化情况来确定下单信号
1
 楼主| 发表于 2011-12-27 20:50:56 | 只看该作者
本帖最后由 火焰之神 于 2015-4-8 16:54 编辑

二、移动止损的编写方法: 还是以之前的模型为例,希望加入移动止损,即:开仓后的最高点回落10个点要盘中止损离场 加入一个全局变量 hl,记录开多后的最高点,开空后的最低点: runmode:0; variable:zs=0,cc=0,hl=0; ma5:=ma(c,5); ma20:=ma(c,20); entertime:=time>100000 and time<144500; if holding>0 and cc<=0 then sell(1,1,limitr,o); if holding<0 and cc>=0 then sellshort(1,1,limitr,o); if holding=0 and cc>0 then buy(1,1,limitr,o); if holding=0 and cc<0 then buyshort(1,1,limitr,o); if cc>0 and l sell(1,1,limitr,min(o,zs-0.6)); cc:=0; end if cc<0 and h>zs then begin sellshort(1,1,limitr,max(o,zs+0.6)); cc:=0; end if cc>0 and ma5ma20 then cc:=0; if cc=0 and ma5>ma20 and entertime then begin cc:=1; zs:=c-10; hl:=h; end if cc=0 and ma5 hl:=l; end if cc>0 and h>hl then begin//创新高后,上移hl hl:=h; zs:=hl-10; end if cc<0 and l hl:=l; zs:=hl+10; end if time>=150000 then begin cc:=0; end
您需要登录后才可以回帖 登录 | 注册入住  

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号