期货程序化模型(期货程序化模型是什么)
程序化交易的优点与缺点
全球10大 顶尖模型 集合(有源码)
[交易系统]Dual Thrust
金字塔Dual Thrust交易系统源码
国外知名期货投资策略Dual Thrust介绍及效果测试.pdf
使用的学习网站在最后。
======================================================================
程序化交易系统是指将设计人员交易策略的逻辑与参数在电脑程序运算后,并将交易策略系统化。说白了也就是把一些固定的交易策略通过写程序固定下来,进行重复智能化操作就好,所以重要的还是交易策略,程序本身如虎添翼而已。
程序化交易的优点在于:
1、避免了人为的主观性
避免人为主观性既是程序化交易的优点也是程序化交易的缺点,在进行期货交易时,正是人的主观判断得以利润的攫取,有一部分非常优秀的炒单手在期货市场的交易中获得了巨大的利润,他们的主观性是程序化交易所不能替代的。但是,更多的投资者的主观性可以说在期货市场的交易中是不合理的,该进场的时候退却,该离场的时候却是犹豫。采用程序化交易可以避免这些思想也就是避免绝大多数人在期货交易中不恰当的主观性。程序化交易最后获得的利润会低于优秀炒单手的利润,却会大大高于普通投资者的收益。
2、极大的分散了投资风险
期货市场的交易很大程度上是博取概率事件的胜率,没有人能保证每笔交易的盈利。因此,这就需要我们分散我们的交易,同时对多个品种交易,同时采用不同的交易策略对一个品种的交易。这些如果通过人工来完成必将耗费大量的人力,且无法避免一些人性的弱点。采用程序化交易可以完美完成上述策略,达到最大限度的风险分散。
国际程序化交易系统情况
据美国权威交易系统评选杂志《Futures Truth Magazine》2011 年10 月发布的交易系统排名,NatGator、Catscan、DCS II 等模型的业绩在过去一年进入了前十名榜单,前三名模型年收益率均在200%以上。
Delphi II Aggressive、Trend Finder Tiger、TSL_CEL_NG_1.1等模型 进入了发布超过18个月的交易系统业绩排名榜单,前十名模型的年收益率介于74.6%-170.5%之间。
表1:前十大交易系统排名(过去1年)排名 交易系统名称 年收益率%1 NatGator 237.80% 2 Catscan 222.10%3 DCS II 215.90%4 Strategic 173.50%5 Sidewinder 169.90%6 ATS 6400 169.00%7 Aberration 167.90%8 Waverider 166.30%9 Moving Average 164.40 Reversal 162.60%注:收益截至2011年7月31日,收益率计算基于3倍保证金。
表2:前十大交易系统排名(自系统发布以来)排名 交易系统名称 年收益率%1 Delphi II Agressive 170.50% 2 Trend Finder Tiger 162.50%3 TSL_CEL_NG_1.1 161.90%4 Natural Gas Offense 157.60%5 Trend Finder Lion 2 141.90%6 Auto Core Duo 90.10%7 Propero ES 81.80%8 Dual Thrust 81.70%9 TSL_SP_1.0Z 76.90 Trend Weaver 74.60% 日,收益率计算基于3倍保证金。 注:交易系统必须发布18个月以上,收益截至2011 年7月31日。由于这些交易系统一般都被用于商品、外汇、农产品、股指等多个市场,因此杂志还专门对标准普尔500指数的交易系统进行了排名。
FT Classic、TSL_SP_1.0Z、TSL_CEL_SP1 等模型进入了前十名榜单,前十大模型的年收益率介于36.3%-107.3%之间。
表3:前十大S&P 交易系统排名排名 交易系统名称 年收益率%
1 FT Classic 107.30%3 TSL_CEL_SP1 74.50% 2 TSL_SP_1.0Z 76.90%4 Keystone 54.10%5 Impetus SP 50.50%6 Big Blue 2 49.60%7 Strategic 500 45.50%8 STC SP Daytrader 42.00%9 R-Breaker 37.10%
10 C Daybreaker 36.30% 注:排名基于系统发布以来业绩,收益截至2011年7月31日,收益率计算基于3 倍保证金。
尽管国外市场上的交易系统举不胜举,但对于成熟的交易策略,开发者一般不愿公开,投资者也较难深入了解诸多交易策略的原理。
拿鼎鼎大名的Dual Thrust策略举个例子吧,Dual Thrust系统是 Michael Chalek 在80 年代开发的 Dual Thrust。在自动化交易排名中,目前为止,仍然排名第二左右。下表是我自己按5分钟周期跑回测的结果,效果非常好:
这是上表成绩最好的沪铜指数的成绩走势图:
通过几个关键数据的对比发现,该模型对于多品种还是有一定的普适性,模型中的参数也采用默认,未针对个别产品进行优化,虽然选出的四个产品都达到了正收益,但由于品种的差异性,区别还是较大。
我们可以看下它的源代码,并不复杂:
Inputs: K1(.5),K2(.5),Mday(1),Nday(1); Vars: BuyRange(0), SellRange(0); Vars: BuyTrig(0),SellTrig(0); Vars: HH(0),LL(0),HC(0),LC(0); If CurrentBar > 1 Then Begin HH = Highest(High,Mday); HC = Highest(Close,Mday); LL = Lowest(Low,Mday); LC = Lowest(Close,Mday); If (HH - LC) >= (HC - LL) Then Begin SellRange = HH - LC; End Else Begin SellRange = HC - LL; End; HH = Highest(High,Nday); HC = Highest(Close,Nday); LL = Lowest(Low,Nday); LC = Lowest(Close,Nday); If (HH - LC) >= (HC - LL) Then Begin BuyRange = HH - LC; End Else Begin BuyRange = HC - LL; End; BuyTrig = K1*BuyRange; SellTrig = K2*SellRange; If MarketPosition = 0 Then Begin Buy at Open of next bar + BuyTrig Stop; Sell at Open of next bar - SellTrig Stop; End; If MarketPosition = -1 Then Begin Buy at Open of next bar + Buytrig Stop; End; If MarketPosition = 1 Then Begin Sell at Open of next bar - SellTrig Stop; End; End;
短短几十行而已,难度并不大,但其背后的交易策略却是很厉害。
它的逻辑原型是较为常见的日内交易策略之一开盘区间突破策略,以今日开盘价加减一定比例的昨日振幅,确定上下轨。日内突破上轨时平空做多,突破下轨时平多做空。
开盘区间突破策略基本原理
1. 在今天的收盘,计算两个值:最高价-收盘价,和收盘价-最低价。然后取这两个值较大的那个,乘以k值0.7。把结果称为触发值。
2. 在明天的开盘,记录开盘价,然后在价格超过(开盘+触发值)时马上买入,或者价格低于(开盘-触发值)时马上卖空。
3. 没有明确止损。这个系统是反转系统,也就是说,如果在价格超过(开盘+触发值)时手头有一口空单,则买入两口。同理,如果在价格低于(开盘-触发值)时手上有一口多单,则卖出两口。
Dual Thrust在开盘区间突破策略上进行了相关改进:
1、在范围(range)的设置上,引入前N日的四个价位,使得一定时期内的范围相对稳定,可以适用于日间的趋势跟踪;
2、Dual Thrust对于多头和空头的触发条件,考虑了非对称的幅度,做多和做空参考的Range可以选择不同的周期数,也可以通过参数K1和K2来确定。当K1时,多头相对容易被触发,当K1>K2时,空头相对容易被触发。
因此,在使用该策略时,一方面可以参考历史数据测试的最优参数,另一方面,则可以根据自己对后势的判断,或从其他大周期的技术指标入手,阶段性地动态调整K1和K2的值。
就是一个典型的观望、等待信号、进场、套利、离场的套路,却效果卓著。
因此对于学习程序化,一是对编程语言和工具的掌握,这个和所有的码农进阶之路一样,练是硬道理,技术要求与你的策略复杂程度成正相关。二就是对交易策略的领会,赚钱本身是体力活,赚钱的逻辑才是脑力活。
日内交易模型的设计思路
【入市设计】 系统模型入市的设计思路,事实上应与投资者的交易风格喜好、交易时间框架密切相关,可以分别是趋势跟踪、震荡交易、套利交易等,近年来甚至也出现了基于基本面分析数据的量化模型,以及带有人工智能性质的神经网络、遗传算法等具备自学习、自适应市场能力的高级交易系统模型。不过,最简单、最实用、最适合普通投资者的交易系统入市设计思路仍然是趋势跟踪,而趋势跟踪的实质就是追涨杀跌或者美其名曰:顺势而为。突破,是趋势跟踪系统设计中最为简洁实用的设计思路,具体应用设计思路可能包括:
⒈通道突破。最著名的此类程式设计代表作为:海龟交易法则与四周规则。其入市信号触发设计为:价格突破最近N根K线的高低点。长期来看,这种设计思路虽然简单,但永远也不会失效或显得过时。事实上,越简单的反而越有效。
⒉ 均线突破。该设计思路的代表作品有:克罗均线,它由4、9、18等三条均线组成;鳄鱼组线,它由5、8、13等三条移中平均线组成;自适应均线,它由考夫曼博士提出,以市场效率生成弹性浮动参数,以均线拐头为信号触发。
⒊ 指标突破。常见的技术分析指标,如MACD、KDJ、RSI、BOLL、SAR、WR、ADX等,均可独立构成一个简单的趋势跟踪系统,当然,是使用系统默认参数,还是使用优化参数;是使用其常规用法,还是使用创新用法,可能存在仁者见仁、智者见智的分歧。
⒋ 形态突破。形态突破,包括K线形态组合突破、经典技术分析形态突破等,K线形态组合的突破,以酒田战法为最经典,著名的红三兵、黑三兵、希望之星等经典K 线形态均源于此,共分为酒田战法70型。至于经典的双顶、双底、趋势线突破、横盘突破、头肩顶底、三角形态、楔形、旗形、钻石型、圆弧顶底等技术形态,因普通的模型编写语言较难精确描述而存在一定的设计使用障碍,需要使用转向函数及图形模糊识别技术来克服。
⒌ 波动性突破。波动性可以定义为:最高价与最低价、当根K线的最高价与昨收盘、当根K线的最低价与昨收盘,这三组价格差额的最大者即该品种的波动性值,波动性既可以进行横向比较品种间的波动性水平,也可以用于纵向判断价格波动的异常,并作为入市信号的触发器。
⒍ 时间价格突破。在趋势行情的必经之路,守株待兔,是我们进行突破系统设计的基本思路。而时间、价格突破,从速度、幅度的两维视角预约了趋势行情,堪称突破系统设计的典范。基本设计思路为价格在N时间范围内、上涨或下跌了N个点位。进一步拓展思路后,还可以引入周间日、日间时的概念,细化不同时间段的突破标准,以便更好地适应品种个性,此外,还可以时间、价格过滤器的方法来实现对趋势行情的确认,以减少价格盘整阶段的假突破现象。
【离市设计】 ⒈ 止损。止损,是交易系统模型设计中一个不可或缺的元素,资金止损、技术止损,是两种主要的考虑方案,采用两者孰低的方案可能更为科学。一方面,你要确保每笔交易不冒过大的风险,另一方面,你要背靠一个关键的压力、支撑技术位置,采用反向交易信号作为自动止损的依据,则是持续在市的交易系统模型的一个常用止损方法。
⒉止盈。虽然固定点位的止盈、止损,也是系统设计中可以采用的方法,但我们更倾向于兼顾利润保护和放大功能的跟踪止盈或SAR抛物线止盈模式,随着利润的扩大,而不断抬高甚至收紧止盈目标位置,可以在一定程度上起到利润最大化的设计目标。
⒊ 时间清仓。以时间为因素考虑离场,无论是作为一种辅助离场方法,还是作为一种独立的出市方法,都是一个不错的思路。比如三根K线过后,如果既没有达到止盈位、也没有触及止损位,就主动离场。
绩效指标的迷失
1、总获利金额(Net Profit):
有没有合理考虑成本?从每笔交易纪录中,推算成本金额,是否合理包含交易税,手续费与滑价损失。另外,换约必然产生的成本,有无考虑?
有没有考虑合理执行达标率?讯号产生到实际交易执行成功,之间的滑价,是否合理估计,这包含交易执行的准备时间充不充分,交易单的方式合不合理?
多久的交易期间?系统总是有表现好的时后,与表现不好的时候。如果交易期间太短(低于5年),可能只是把表现比较好的一面呈现出来,不具整体代表性。
多大的风险代价?如果最大的连续亏损过大(占之前净值高点比例过大),这样的获利报酬的代价是不是可以被接受,如果无法接受,那这样的报酬是无法真正实现的。因为在持续亏损下,早就放弃执行这样的系统,或者,获利之后,又容易回吐殆尽。
2、报酬率:
报酬率期间长度(用多少时间来计算报酬率的分子:盈亏金额)。是年报酬率?还是月报酬率?时间长短不同,累积的报酬率自然不同。
取样的期间长度(总交易期间)。是单年的报酬率?还是多年的平均报酬率?与多久的交易期间观念相同。
报酬率的基准金额为何(报酬率分母)。起始账户资金为何?资金管理模式为何?有一种报酬率,称为最小账户资金报酬率(ROA)。是用过去最大连续亏损金额(MDD),加上原始保证金来当报酬率的分母。这是最大风险下的报酬率。
多大的风险代价?若以ROA代表报酬率,是必须承受将近百分百的账户亏损风险,才能得到这样的报酬率,并不切实际。每个人的风险承受能力不同,但100%的风险承受并不是正常合理的假设。单口系统不易表现出合理的风险报酬率,但可以约略从净值曲线与一些风险报酬进阶指标看出。适当的资金管理多口数系统,可以合理表现报酬率。
3、交易频率:
频率太低,交易次数少,不具代表性。取样期间内应该超过36笔交易。
频率太高,交易次数多,执行的精神成本过高。因人而异,每日不超过3笔交易为宜。
4、实际绩效与模拟绩效:
模拟绩效
一般系统绩效多是以历史数据来仿真的,必须了解系统仿真的原理与假设。因为K线资料只有4个统计值(开盘价 / 最高价 / 最低价 / 收盘价),所以,必须有所谓的K线假设(Bar Assumptions),来模拟行情在K线中的走势,当K线的时间架构越大(如日线,周线)时,误差就会越大。在TradeStation中,即使时间架构是日线,仍然可以用分线,甚至是实际每笔交易纪录,这种用更细微的时间单位(Resolution),来仿真过去交易与绩效,误差就大为减少了。当然,前提是历史的数据必须是存在与正确的。
有些仿真程序与TradeStation一样,都有所谓的收盘进场讯号,这本来在实际执行交易上,逻辑是行不通的。之前,最后一盘为5分钟集中撮合,可以在这5分钟内,以市价单来进出场,可以让收盘进场的讯号适用,现在期交所已经取消最后5分钟的集中撮合。另外,有些程序系统参考收盘价,来决定是否收盘进出场,这在仿真程序可以做到,但在实务上,却是无法执行的,也造成了模拟绩效的误谬。
实际绩效
有些人会把实际账户的交易绩效,以交易报告书公布出来。除非是长时间的详细交易纪录,否则,都无法证实是系统完全执行下的结果。
有的系统绩效时好时坏,若只能比对短时间,系统与实际账户的绩效,比较难证明系统与实际账户的一致性。
如果只是公布账户资金的变动,而没有实际的交易纪录,报酬率也可能是虚胖的。比如,股指多手数系统,可以设定10%的总资金风险,来控制交易手数。这时,只要把10%~20%的资金放在保证金账户就可以了,单以保证金账户来看,报酬率与实际总资金报酬率,多了5到10倍。
相关内容
相关资讯
-
虚拟货币怎么挖的到的
图为比特币疯牛矿机图为显卡矿机在运营门槛上,比特币矿机和显卡矿机有非常高的要求:首要条件:充沛且廉价的电力矿机需7X24小时计算,发热量高,功耗大,矿机普遍额定功率在1000-2000W,布置100台
-
举报虚拟货币有钱拿吗
齐鲁网·闪电新闻2月25日讯 近日,记者从山东省发展改革委获悉,为贯彻落实《国家发展改革委等部门关于整治虚拟货币“挖矿”活动的通知》、国家发展改革委令2021年第49号要求,加速促进产业结构优化,推动
-
虚拟币跑分(认清“USDT跑分”骗局,远离洗钱活动)
通过仔细询问,我发现这个所谓的USDT跑分平台果然是一种新型骗局,并且所有参与到里边的人很有可能都涉嫌了协助洗钱犯罪
-
2005年比特币多少钱一枚(2006年比特币一个多少人民币)
比特币的概念最开始是在2009年是由一个叫中本聪的人士提出的,比特币是一种P2P形式的数字货币,在比特币概念刚被提出的时候,比特币是没有价格的,直到第一次交易发生,比特币才产生了价值,比特币最开始的时
-
如何玩转虚拟货币视频
通常 Web 应用的交互模式是由客户端向服务端发送 HTTP 请求, 服务端根据客户端的的请求返回相应的数据, 在这样的交互模式下, 通信双方并不是对等的, 因为所有的请求都是由客户端主动发起, 对于
实时快讯
-
2023-09-08渤海银行白金卡年费(渤海银行白金卡免费)
-
2023-09-08都安县社保局电话(都安县社保局官网)
-
2023-09-08朱利叶斯兰德尔(朱利叶斯兰德尔身高臂展)
-
2023-09-08最新100美元换人民币汇率(100美元兑人民币汇率走势)
-
2023-09-08芋头蒸肉(芋头蒸肉图片)
-
2023-09-08货款哪家银行好货(贷款的话哪个银行好些)
-
2023-09-08国内黄金走势图(国内黄金走势图情)
-
2023-09-08招商银行对公账户电话号码(招行对公账户客服电话)