设为首页收藏本站

宽客俱乐部——量化投资与对冲基金交流平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
揭开股票高频交易的神秘面纱——股票日内回转T+0交易课程
神奇的期货冲量交易法培训(包学会)
查看: 2681|回复: 4

简易文华模型改金字塔方法

[复制链接]
发表于 2014-11-21 14:56:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
简易文华模型改金字塔方法
    
这是一个简易文华模型改金字塔教程
  
1、简易模型改法
  
文华boll模型
  
MID:MA(CLOSE,N);//求N个周期的收盘价均线,称为布林通道中轨
  
TMP2:=STD(CLOSE,M);//求M个周期内的收盘价的标准差
  
TOP:MID+P*TMP2;//布林通道上轨
  
BOTTOM:MID-P*TMP2;//布林通道下轨
  
CROSS(C,BOTTOM),BPK;//当最新价上穿下轨时,做多
  
CROSS(TOP,C),SPK;//当最新价下穿上轨时,做空
  
AUTOFILTER;
  
金字塔模型 简单改法:
  
input:n(26,5,300,1),M(26,1,100,1),P(2,1,10,1);//定义参数
  
MID:MA(CLOSE,N);//求N个周期的收盘价均线,称为布林通道中轨
  
TMP2:=STD(CLOSE,M);//求M个周期内的收盘价的标准差
  
TOP:MID+P*TMP2;//布林通道上轨
  
BOTTOM:MID-P*TMP2;//布林通道下轨
  
CROSS(C,BOTTOM),BPK,TFILTER;
  
CROSS(TOP,C),SPK,TFILTER;
  
金字塔模型 新交易系统改法:
  
input:n(26,5,300,1),M(26,1,100,1),P(2,1,10,1);//定义参数
  
MID:MA(CLOSE,N);//求N个周期的收盘价均线,称为布林通道中轨
  
TMP2:=STD(CLOSE,M);//求M个周期内的收盘价的标准差
  
TOP:MID+P*TMP2;//布林通道上轨
  
BOTTOM:MID-P*TMP2;//布林通道下轨
  
if  CROSS(C,BOTTOM) and holding<=0 then begin//当收盘价上穿下轨且有空仓或无仓时
  
sellshort(1,1,market);//平空 第一个1代表100%成立,第二个1代表下单手数(下同)
  
buy(1,1,market);//开多
  
end
  
if CROSS(TOP,C)  and holding>=0 then begin //当收盘价下穿上轨且有多仓或无仓时
  
sell(1,1,market);//平多
  
buyshort(1,1,market);//开空
  
end
  
2、解决AUTOFILTER
  
通过实际工作中的交流,发现用户经简单转换后,稍了解下金字塔机制,改用Holding函数来控制,不再使用此函数的非常多,我想通过此贴,让大家少走弯路。
  
我们来研究下Autofilter的机制,它实际作用是,当我第一次满足条件后开仓,之后再满足条件不在开仓。即用成立条件和持仓来判断。
  
我们依然以文华的Boll模型为例:
  
(这里我们不用cross函数,因为它是一个点.为了更直观的达到效果,我们用C>bottom ;C<top来替代金叉,死叉)
  
文华boll模型
  
MID:MA(CLOSE,N);//求N个周期的收盘价均线,称为布林通道中轨
  
TMP2:=STD(CLOSE,M);//求M个周期内的收盘价的标准差
  
TOP:MID+P*TMP2;//布林通道上轨
  
BOTTOM:MID-P*TMP2;//布林通道下轨
  
C>BOTTOM,BPK;//当最新价上穿下轨时,做多
  
TOP>C,SPK;//当最新价下穿上轨时,做空
  
AUTOFILTER;
  
现在我们在金字塔中用Holding函数可改为:
  
//中间变量
  
MID:MA(CLOSE,N);//求N个周期的收盘价均线,称为布林通道中轨
  
TMP2:=STD(CLOSE,M);//求M个周期内的收盘价的标准差
  
TOP:MID+P*TMP2;//布林通道上轨
  
BOTTOM:MID-P*TMP2;//布林通道下轨
  
//交易条件
  
开多平空条件:=C>BOTTOM  and holding<=0;//当最新价上穿下轨时,并且持空仓或无仓的情况下,做多
  
开空平多条件:=TOP>C and holding>=0;//当最新价下穿上轨时 并且持多仓或无仓的情况下,做空
  

  //交易系统
  
加仓条件:=c>mid and  holding=1;//当最新价大于中轨,且持一手多单,加仓
  
buy(加仓条件,手数,matket);
  
得到当前策略虚拟持仓量,多仓返回正数,空仓返回负数,无持仓返回0。
  
3、BARSBP、BARSSK、BAESSP在金字塔的实现
  
借助variable(全局变量)实现。
  
可以设置一个全局变量
  
以开多为例
  
variable:a=0;
  
if 开多条件 then begin
  
buy();
  
A:=A+1;//开始计数
  
end
  
……
  
……
  
if TYPEBAR(1 , 1)>0 then A:=A+1;//每根K线+1
  
补充:
  
typebar函数说明
  
得到当前位置之前上N次信号指定类型距当前周期
  
用法:
  TYPEBAR(N,TYPE)N表示上次信号,
  TYPE表示信号类型 0、无信号1、开多2、平多3、开空;4、平空  
  
例如:TYPEBAR(2,1)表示:倒数第2个开多信号历时
  
更多variable用法请参考金字塔初级教程。
  
4、BKPRICE、BPPRICE、SKPRICE、SPPRICE在金字塔的实现。
  
金字塔对于开平仓价格 只有2个函数  enterprice(上次开仓价)和exitprice(上次平仓价)。
  
策略若需更灵活的使用,请参考variable(全局变量)的使用。
    
至于金字塔的后台是什么,它与图表程序化的差别,请看论坛置顶的帖子
  
深度理解金字塔公式系统的工作机理: http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=55125
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|量化投资|对冲套利|高频|互联网接口|资产管理|宽客俱乐部 ( 沪ICP备16036585号   点击交谈

关注

GMT+8, 2019-1-21 01:17 , Processed in 0.137394 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表