以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  简易文华模型改金字塔方法(原来用文华的小伙伴看过来!)  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=51340)

--  作者:RogarZ
--  发布时间:2013/4/23 12:10:49
--  简易文华模型改金字塔方法(原来用文华的小伙伴看过来!)

这是一个简易文华模型改金字塔教程

 

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:8080/page/video/013.php

 

至于金字塔的后台是什么,它与图表程序化的差别,请看论坛置顶的帖子

《深度理解金字塔公式系统的工作机理》

[此贴子已经被作者于2014/11/19 11:01:03编辑过]

--  作者:reboot
--  发布时间:2013/9/21 23:32:09
--  
多谢分享。