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

[策略探讨] 突破策略之参数自动化

[策略探讨] 突破策略之参数自动化

原文参考合作:http://www.bituzi.com/2013/01/blog-post_18.html

刚开始进入程式交易世界时,很多人会用最佳化参数的方式来挑选参数使用,但是随着环境的不同,就会开始自己一直去调整参数。当然,也不是所有参数都需要一直去做调整,但是,如果可以让自己的程式中的参数,随着环境改变而自动去调整变化,这样也许可以让程式变得更有弹性。

先介绍一个简单的交易策略当作范例,那就是N天的区间突破策略,其实也可以看成N根K棒的突破策略。

一般这种顺势突破策略在什么市场最容易赚大钱呢?
那当然是在趋势明显走一段的大多头或大空头市场,
但是如果遇到盘整格局的走势时,可能会有多空讯号反覆的问题。
不过盘整盘是所有顺势策略的死穴,不单单是这策略的问题。

N天的区间突破策略的问题在于N

那这个N会有什么问题呢?你想想,当你设定N为5时,
如果现在趋势明显,很好,进场会进的很快,
可是当趋势混沌不明,忽上忽下时,这时候不就惨了,
一下作多一下作空,每天都被杀好玩的。

所以,如果在趋势明显的时候,可以让N小一点,
在盘整的时候,可以让N变得大一点,这样多有弹性阿!
重点来了,你要怎么让N去自动变化呢?

首先,想要决定N的大小,关键在于趋势是否明显。
如果趋势明显,也表示指数的波动会比较大。
如果趋势是盘整,就表示指数会一直在某个区间整理,
这样的波动会比较小,所以大家想到了吗?
换句话来说,关键在于波动的大小。


假设我们一开始所设定的N是20,
因此也可以算出20根K棒的标准差,叫V20好了。
但是我们想用短一点的时间来衡量标准差,10根K棒好了,
所以也可以得到10根K棒的标准差,就叫做V10吧! 。

那如何藉由波动率的变化来改变N?
请看以下策略源码体会体会


N天的区间突破策略原理:

当今天的价格的高点突破过去N天的最高点时买入,当今天的低点跌破过去的N天的最低点时卖出。

此策略适合趋势比较明显的商品,尤其是单边商品。


测试商品股指IF,使用两图表,子图1周期为1 hour,子图2周期为1 day。源码如下:


inputs: x(20),y(10) ;

//定义波动率参数

Vars: V20(10),V10(10),N2(10),N1(10),N(10);

//定义变量


V20=Volatility(x)of data2;

V10=Volatility(y)of data2;

//定义波动率取日线数据,取子图2的日线线数。这个Volatility函数是分别取20日跟10ATR的移动平均数值

if V10<>0 and N2<>0 then begin

N1=(N*V20)/V10;

//定义N1的值,前提让分母不为0时执行,

//这N1=(N*V20)/V10是此参数自动化的核心, 代表你将原本固定N天的参考值改成会/根据V20和V10而变动的N1值, V20是较长期的,而V10是近期,大家看到这个公式应该可以发现,当你近期的波动率变大时,表示趋势出现,你的N1就会变小,而近期的波动率变得越小时,表示在盘整,N1就会变大,这样新的N变化似乎比较合理一点。


N2=IntPortion(N1);

//N1取整赋值给N2

end;


value1=Average(high of data2,N2)of data2;

value2=Average(low of data2,N2)of data2;

//定义前N2天的高点跟低点的值给value1value2


if close crosses above value1  then begin

buy next bar at market;

end;

//当价格上穿高点时买入或者反向


if close crosses below value2  then begin

sellshort next bar at market;

end;

//当价格下穿低点时开空或者反向


论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   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

MC源码:
  1. inputs: x(20),y(10) ;
  2. Vars: V10(10),V20(10),N(10),N1(10),N2(10);
  3. V20=Volatility(x)of data2;
  4. V10=Volatility(y)of data2;

  5. if V10<>0 and N2<>0 then begin
  6. N1=(N*V20)/V10;
  7. N2=IntPortion(N1);
  8. end;

  9. value1=Average(high of data2,N2)of data2;
  10. value2=Average(low of data2,N2)of data2;

  11. if close crosses above value1  then begin
  12. buy next bar at market;
  13. end;

  14. if close crosses below value2  then begin
  15. sellshort next bar at market;
  16. end;
复制代码
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

爱心页面打包,亲们就不用自己再设置页面了,装上MC后,直接解压这个,就能在MC中打开了。下载地址:突破策略之参数自动化.rar


效果图如下:(其它这也算是一个不错的趋势性策略,做螺纹、天胶类的趋势性好的品种也问题不大的)


如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

返回列表