源码:
inputs: Price( Close ), FastLength( 9 ), SlowLength( 20 ) ;
variables: var0( 0 ), var1( 0 ) ;
var0 = AverageFC( Price, FastLength ) ;
var1 = AverageFC( Price, SlowLength ) ;
condition1 = CurrentBar > 1 and var0 crosses under var1;
if condition1 then Sell Short ( "MA2CrossSE" ) next bar at market ;
condition2 = CurrentBar > 1 and var0 crosses over var1;
if condition2 then Buy ( "MA2CrossLE" ) next bar at market ;
➤ 使用最佳化?
一开始就使用过度最佳化可能不是个好办法,因为你必须要先能够掌控自己的策略好好的分析【为什么会进场?】【为什么赚钱?】还有【为什么赔钱?】,这个是我们不建议一开始就过度的依赖最佳化的功能的原因。因为,如果你了解自己的进出是有根据的,那么搭配使用滤网你可以让你的策略更符合你的交易情境,提升你对交易的掌控度。
➤ 用 RSI 帮忙过滤杂讯
RSI 是一个非常实用的滤网,我们可以通过观察 RSI 跟我们策略的属性做出顺势与逆势的滤网来有效的过滤杂讯,提升交易的品质。
我们在上面的策略范例中,加入下列的 RSI 滤网,看看对原本过度交易的策略发生了什么变化。
滤网:如果 rsi > 70 以上才做多,rsi < 30 以下才做空。
源码:
inputs: Price( Close ), FastLength( 9 ), SlowLength( 20 ) ;
variables: var0( 0 ), var1( 0 ) ;
var0 = AverageFC( Price, FastLength ) ;
var1 = AverageFC( Price, SlowLength ) ;
value1 = RSI( c, 14 );
condition1 = CurrentBar > 1 and var0 crosses under var1 and value1 < 30;
if condition1 then Sell Short ( "MA2CrossSE" ) next bar at market ;
condition2 = CurrentBar > 1 and var0 crosses over var1 and value1 > 70;
if condition2 then Buy ( "MA2CrossLE" ) next bar at market ;
➤ 滤网帮我们做了什么?
我们可以看到使用了 RSI 滤网帮助我们的策略做到几件事:
减少杂讯,RSI 滤网帮助过滤掉盘整的反复讯号
判断多空,> 70 表示强多,< 30 表示强空
增加讯号品质
当然滤网不是只有 RSI,有许多的技术指标都可以作为滤网使用,我们这边整理一些开发 MC 策略时,常用的滤网与功用给大家参考,希望对新入手 MC 程序化交易的人,能有帮助。
RSI 滤网
教科书教我们看 RSI 认为到超买( >70 )区,或是超买区(<30) 可能出现反转行情,实际使用可能不是那么一回事,你可以自己多观察 RSI 是不是可能有其他滤网的使用方式。
均线滤网
均线一直是用来判断目前行情多空的好帮手,取过去 N 根的收盘价格做平均。行情跌破均线做空,行情站上均线做多。
KD滤网
KDJ指标中则融合了移动平均线速度上的观念,形成比较准确的买卖信号依据。在实践中,K线与D线配合J线组成KDJ指标来使用,通常 KD > 50 可以想象为多,KD < 50 则比较偏空的趋势。
固定时间交易滤网
在 MC 你可以定义你的策略可交易的时间,来避开不好交易的时段。
If time > 0900 and time < 1130 then
小 结
在程序化交易可以使用的滤网其实还有更多的变化,你可以从观察指标或是配对使用都是不错的滤网方式,我们的范例可能有点【极端】,但文章想表示的是滤网如果用的正确对你的交易策略应该是能有不错的帮助,滤网可以协助【判断多空】、【避免过度交易】等好处肯定会是你开发策略的好帮手。
程序化交易的实现需要好的工具辅助
欢迎使用MultiCharts专策版v14
辅助你的量化交易!
立
即
体
验
▼
欢迎前往Multicharts官网,或公众号后台回复【MC14】,下载软件免费试用1个月;
开通指南:点击“阅读原文”/扫下方二维码 → 登录MC官网 → 购买内盘年度会员 → 会员中心付款 → 自动开通权限