【MultiCharts(MC)程序化(量化)网上培训学习系列】第110节:Countif的用法以及利用Countif写一个简单的策略并进行回测查看效果
[attach]26717[/attach]1、效果图;
2、通过期货论坛推荐新开立期货账号享受特惠政策:[url]http://www.qhlt.cn/thread-25049-1-1.html[/url];
3、通过期货论坛开立期货账号并绑定MC享受专属优惠政策:[url]http://www.qhlt.cn/thread-80442-1-1.html[/url];
4、代写与求助:[url]http://www.qhlt.cn/forum-109-1.html[/url];
5、期货论坛策略源码区:[url]http://www.qhlt.cn/forum-109-1.html[/url] ;
6、期货论坛官方MC量化策略群,对视频中策略有想法、建议、优化以结交量化好友,动动手,扫二维码加入微信群,跟一众量化好友切磋吧:[url]http://www.qhlt.cn/thread-262-1-1.html[/url] ; 策略视频链接:[mp4]http://mp4.qhlt.club/Rec%200110.mp4[/mp4] 视频中程序码
**** Hidden Message *****
程式码解析:
[attach]26723[/attach] 日线上面效果及回测:
[attach]26718[/attach][attach]26719[/attach] 2小时
[img]http://www.qhlt.cn/attachments/month_2101/2101130628931b54195c5f69b1.png.thumb.jpg[/img] [attach]26720[/attach] 1小时:
[attach]26722[/attach][attach]26721[/attach] CountIF
[color=#800080]CountIF[/color] 函数计算一定数量柱状线上真实自定义测试条件发生的次数。
[color=#800080]CountIF[/color] 函数可用于数据挖掘和测试历史统计市场行为。例如,您可以提出这样的问题,“上个月有多少天价格上涨而成交量下跌,之后有多少天上涨或下跌?”语法[p=30, 2, left][color=#800080]CountIF[/color](Test,Length)[/p]返回(整数)
真实测试条件发生的次数。参数[table=98%]
[tr][td][p=30, 2, left]名称[/p][/td][td][p=30, 2, left]类型[/p][/td][td][p=30, 2, left]说明[/p][/td][/tr]
[tr][td]
Test [/td][td]
TrueFalse[/td][td]
指定必须为 TRUE 的柱状线或指示条件(True/False 表达式)。[/td][/tr]
[tr][td]
Length [/td][td]
数值[/td][td]
设置测试条件要考虑的柱状线数量。[/td][/tr]
[/table]备注
输入参数 Test 可以是任意柱状线或多数据条件,如 [color=#0000ff]Close[/color] > [color=#0000ff]Open、High[/color][1] < [color=#0000ff]High[/color][2]、Data1 的[color=#0000ff]Close[/color]
[color=#0000ff]– data2 的 Close[/color] > 0 或 [color=#0000ff]Volume[/color] >= 100000。 也可以是任何数学计算,如 ([color=#0000ff]High[/color] + [color=#0000ff]Low[/color]) / 2 > [color=#800080]Average[/color]([color=#800080]TrueRange[/color],10), 或一个数值指示函数,如 [color=#800080]RSI[/color](C,14) < 30 或 [color=#800080]ADX[/color](C,14) > 25[color=#800080]。[/color] 也可能是另一个 True/False 函数。
True/False 条件必须包含以下运算符之一:[b]=[/b]、[b]>=[/b]、[b]<=[/b]、[b]>[/b]、[b]<[/b]、[b]<>[/b]、[b]crosses above[/b] 或 [b]crosses below[/b]。您也可以使用 [b]OR[/b] 和 [b]AND[/b] 在一个表达式中测试多个条件。使用圆括号 ([b]()[/b]) 将条件按逻辑分类。
输入参数 Length 的值应该始终是一个大于 0 的正整数。示例
将最后 12 根柱状线中收盘价大于开盘价的柱状线数量赋予 Value1,然后绘制 Value1:[p=30, 2, left]Value1 [color=#800080]=[/color] [color=#800080]CountIF[/color]([color=#0000ff]Close[/color] > [color=#0000ff]Open[/color], 12);[/p][p=30, 2, left][color=#0000ff]Plot1[/color](Value1, "C > O");[/p]
将最后 24 根柱状线中收盘价与成交量均大于前一柱状线的柱状线数量赋予 [color=#800000]Value1[/color],然后绘制 [color=#800000]Value1[/color]:[p=30, 2, left]Value1 [color=#800080]=[/color] [color=#800080]CountIF[/color]([color=#0000ff]Close[/color] > [color=#0000ff]Close[/color][1] AND [color=#0000ff]Volume[/color] > [color=#0000ff]Volume[/color][1], 24);[/p][p=30, 2, left][color=#0000ff]Plot1[/color](Value1, "C+V+");[/p] 谢谢分享
页:
[1]