: | : | :期货程序化 | :期货程序化研究 | :期货量化学习 | :期货量化 |
返回列表 发帖

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

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

注:BLOG 上就把2个帖子并一块吧

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


此贴原为第一届模拟大赛专区的帖子

希望对原来用文华的用户有帮助。

文华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






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

去年模拟大赛期间,曾做过一个 简易文华模型改金字塔方法 的帖子。解决了刚上手金字塔用户对于AUTOFILTER转换的疑问之后的工作中,发现论坛上有很多使用过文华的用户,提出许多共性的问题。此贴意在总结经验。




1、Autofilter与Holding

    首先,还是要讲这个函数。虽然之前的《简易文华模型改金字塔方法(一)》解决了初级的代码转换的问题。通过实际工作中的交流,发现用户经简单转换后,稍了解下金字塔机制,改用Holding函数来控制,不再使用此函数的非常多,我想通过此贴,让大家少走弯路。  

     我们来研究下Autofilter的机制,它实际作用是,当我第一次满足条件后开仓,之后再满足条件不在开仓。即用成立条件和持仓来判断。

我们依然以文华的Boll模型为例:

(这里我们不用cross函数,因为它是一个点.为了更直观的达到效果,我们用C>bottom ;C来替代金叉,死叉)


文华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;//布林通道下轨

手数:=ss;//这个参数 自己定义下

//交易条件

开多平空条件:=C>BOTTOM and holding<=0;//当最新价上穿下轨时,并且持空仓或无仓的情况下,做多

开空平多条件:=TOP>C and holding>=0;//当最新价下穿上轨时 并且持多仓或无仓的情况下,做空


//交易系统

平空:SELLSHORT(开多平空条件,手数,MARKET);

平多:SELL(开空平多条件,手数,MARKET);

开多:BUY(开多平空条件,手数,MARKET);

开空:BUYSHORT(开空平多条件,手数,MARKET);


大家乐于使用holding的原因是,用此函数对于实现复杂的加减仓策略(如:金字塔式加减仓) 就非常方便了。

比如在上面的例子我加入一个加仓条件:

加仓条件:=c>mid and holding=1;//当最新价大于中轨,且持一手多单,加仓

对应加仓的语句:

buy(加仓条件,手数,matket);


Holding函数说明:

得到当前策略虚拟持仓量,多仓返回正数,空仓返回负数,无持仓返回0。

用法:HOLDING


2、BARSBK、BARSBP、BARSSK、BARSSP在金字塔的实现

      这些函数金字塔没有刻意的去做封装,而是提供了更自由的方式。普通的可通过Barslast(X)函数实现。

      复杂的,可通过variable(全局变量)实现。

      以barsbk为例:

      可以设置一个全局变量variable:a=0;并在代码最后增加 A:=A+1;

      if 开多条件 then begin

          buy();
          a:=0;

      end

      ……

      A:=A+1;

      那么如何判断某根K线是上次开仓到现在的距离呢?

      我们来分析下,每根K线都有一个A的值,当开多单后,这个值被重置为0 并在之后重新计算。

      那么判断开多这根K就可以用下列公式来判断

      REF(a,1)>0 and a=0  //上一根K的a值大于0 并且 当根K线的a值等于0.

      这种方式能很灵活的与其他各种条件混用。

      Variable是金字塔初级用户必学的一个技巧,掌握它就能很好的实现移动止损等等模块。相关资料请阅读金字塔的相关教程,此贴不再赘述。


3、BKPRICE、BPPRICE、SKPRICE、SPPRICE在金字塔的实现。

       金字塔对于开平仓价格 只有2个函数 enterprice(上次开仓价)和exitprice(上次平仓价)

       策略若需更灵活的使用,请参考variable(全局变量)的使用。

4、关于后台

    金字塔的后台与文华的后台是2个完全不同的概念。

    文华的后台是用于图表程序化交易的。而金字塔的图表下单的方式与其不同。具体的实现请看以下视频。(10分钟)

    http://www.weistock.com:8080/page/video/013.php

    至于金字塔的后台是什么,它与图表程序化的差别,请看论坛置顶的帖子深度理解金字塔公式系统的工作机理》

    考虑到后台需要掌握较多的知识,我们建议刚上手的新用户忽略其相关的要点,先专注于使用好图表程序化交易。   







论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表