程序化交易策略的进阶设计

合集下载

交易策略和原则:完整的交易系统设计方案(纯干货)

交易策略和原则:完整的交易系统设计方案(纯干货)

交易策略和原则:完整的交易系统设计方案(纯干货)导读:只有勇敢地剖析自己,才能将自己的交易提高一个层次。

当我们逐个回顾自己的交易,其中既有成功也有失败。

在此基础上,我们试图寻找某种模式:我们成功时有什么共同特征?我们失败的交易中又有什么重复的因素?本文是一位交易者几年前所制定的交易策略和原则,在实施过程中有较好的效果,但也存在一些问题待改进。

第一节、策略一、只参与那些行情趋势强烈或者说行情主要走势正在形成的市场,认清每一个市场当前的主要走势并只持有符合这一主要走势方向的头寸,或者是不予参与。

二、假定交易的方向与行情趋势一致,在以前或从属的趋势已产生的较大价差基础上建立头寸,或者把头寸建立在对当前行情主趋势的适度逆行位置上。

三、不同行情趋势强烈度下的操作策略:1、在市场处于活跃强势时期(成交量放大),这个时候的操作策略是'长多短空',操作战术是'追涨空头2、市场处于疲惫弱势时期(成交量萎缩),这个时候的操作策略是'长空短多',操作战术是'超跌为王'3、市场处于平衡箱体时期(成交量区间),这个时候的操作策略是'高卖低买',操作战术是'筹码分布';四、追市头寸形成有利变动时坚持持有,不从反趋势交易中迅速获利;在持有头寸的变动有利时可适当的增加所持有的头寸;除非趋势分析表明趋势已经反转,并且触及止损位,否则一路持有。

、市场的走势与预期的方向相反,则迅速逃避。

系统的、客观的风险控制和制约的方法包含四个方面:1、限制每一交易头寸的风险。

2、避免过渡交易。

3、截断损失。

4、有怀疑,即平仓离场。

五、坚持双重策略,即:在盈利的头寸上是一个长线持股者;在相反的头寸上是一个短线交易者。

六、收益原则是保持获利的稳定性与持续性,而不是最大化。

七、连战皆败后,减低入市头寸或停止交易。

八、不设定目标价位出入市,只服从市场走势;不因为价位太低而吸纳,也不因为价位太高而沽空。

程序化交易策略简介——周侠

程序化交易策略简介——周侠

数据来源:, 方正证券研究中心
研究源于数据
3
研究创造价值
程序化交易专题研究
图表 2
2002-2008 年 程序化交易基金管理资金规模
数据来源:, 方正证券研究中心
二、程序化交易的建立
由于市场上的趋势指标更容易定量化, 目前的程序化交易主要 以趋势追随系统为主。 建立一个完整程序化交易系统主要可以分为 三大部分:大势研判,市场时机选择和资金管理。 1. 大势研判 大势研判主要是判断市场所处的位置和预计的趋势。 这是交易 决策中极其关键的一步,预测过程确定了交易者是看多还是看空。 如果大势研判出错,那么整个交易决策都注定不会有太好的结果。 2. 市场时机选择 时机选择,又称为交易战术,是确定合适的交易品种,个股以 及具体的买入点和卖出点。 交易战术因人而异, 方法内容极其丰富。 单就判断指标而言,大致可以分为:基本面指标,技术面指标和风 格指标等三类。其中基本面指标和技术指标的应用最为广泛,而风 格指标在近几年也开始流行。 一般来说,为了风险分散化,一个成熟的程序化系统会包含多 个交易战术,而每个交易战术又会包含多个判断指标。 3. 资金管理 资金管理主要涉及资金的配置。它包括建立投资组合,分散投 资,在任一市场应拿多少资金去投资,建立止损策略,以及是采取 保守或激进交易等。 研究源于数据 研究创造价值
图表目录
图表 图表 图表 图表 1 1998-2008 年 Barclay Systematic Traders Index............................................................................... 3 2 2002-2008 年 程序化交易基金管理资金规模 ............................................................................... 4 3 简单的程序化交易流程图 ............................................................................................................... 5 4:世界各地市场相关性 (2005.1.1-2008.12.30)................................................................................ 10

程序化交易策略 如何拟定操作策略

程序化交易策略 如何拟定操作策略

如何拟定操作策略在期货市场上,除了精确的行情研判及良好的资金控管之外,最重要的莫过于拟定良好的操作策略。

缺乏完善的操作策略,纵使行情分析达百分之百的正确,也可能抱着亏损黯然离场;制定完善的策略,即使行情研判正确率不高,亦能在市场中有所崭获。

而操作策略要如何拟定呢?兹分述如下:一、操作方向:首先考量市场短、中、长期趋势的方向,决定欲进行的操作是属于那一种,从而进行操作上的布局。

趋势跟踪系统,震荡交易系统,套利交易系统,日内短线交易系统,超级短线交易系统,形态分析交易系统,波段交易系统,这么多交易系统,你的性格适合哪一类呢?打造自己的交易系统才能稳定盈利。

请百度搜索“云易汇”为您免费测试!长线的操作方向首重“势”,顺着行情所走的方向操作,不要主观的预设顶部与底部。

中线的操作较重“量”,亦即是市场中量价配合的表现,在中期波段走势之中,量价关系透露出相当重要的讯号,配合技术面的走势分析,作为操作上的参考。

在短线的操作方面,重点在于“破”,例如久盘之后的突破,纯粹从技术面的角度去寻求最佳的进场点,以短线的技术分析作为进出场的依据。

二、资金规划:决定操作的方向之后,必须作好整体资金规划。

首先决定欲操作的部位有多大,通常以投入资金为参考,长期部位可以较高的资金比例投入,短期部位最好不要超过总投入资金的三分之一。

在资金控管方面,最忌孤注一掷,倘若一次行情看错时即将所有的资金赔入,后续就没有资金再进行操作了。

此外,在策略订定时,须先行计算进行操作之后的盈亏比,通常以3:1较符合投机的原则,若每次进场均维持3:1的盈亏比,每次交易赚钱时将获利的50%加入下一笔交易作为交易金额,亏损时下一笔交易金额即扣除亏损金额减量经营。

则即使只有二分之一的胜率,进场交易五次其亏损的机率为0.1875,以长期的角度看来,亏损的机率几乎趋近于零。

因此,良好的资金规划几乎决定了操作策略的良莠,千万不可小看它。

三、攻守要有计划:策略的拟定首重防守,有了稳固的防守计划始能对外进行攻击,好比两军交战,若没有坚强的后盾或灵活的退路,则其胜算必然不高,反而容易流于背水一战,孤注一掷的赌博。

程序化交易系统设计与实现

程序化交易系统设计与实现

程序化交易系统设计与实现随着金融市场的迅速发展,交易方式不再是人工买卖,而是机器人操作,更加高效、自动化的程序化交易应运而生。

程序化交易是指通过计算机程序来执行交易策略的操作,其主要包括交易决策、风险控制和交易执行三个环节。

这种交易方式的优势显而易见:高效、准确、低成本。

随着互联网和信息技术的迅猛发展,程序化交易将在未来不断发展,并越来越多地应用于投资拍卖、证券市场、期货市场和外汇市场等金融领域。

一、程序化交易系统的设计与实现程序化交易系统是建立在金融市场上的,与市场的特点和规律密切相关。

因此,要建立一个稳定可靠的交易系统,需要依据市场的情况分析,明确交易策略、风控策略与技术手段。

1.明确交易策略交易策略是指基于市场情况、自身资金和风险承受能力,设置的一套交易方法和规则。

通过交易策略,投资者可以实现收益最大化或风险最小化。

一个好的交易策略需要考虑各种可能出现的情况,并以尽可能减小风险为首要目标,同时还应当考虑市场的变化、系统的效率和交易的成本等因素。

2.明确风控策略风控策略指的是通过设置阈值、止损、因子组合等方法尽可能降低交易风险的行为,以保证投资人的资金安全。

一旦市场出现不利变化,风控策略应该能够让程序化交易系统快速平仓,以减小投资人承受的风险。

3.选择合适的技术手段程序化交易系统使用的技术手段主要包括时间序列分析、统计学原理、数据挖掘和人工智能等。

这些技术手段可以帮助分析数据、判断市场情况,使得交易系统能够对市场行情做出快速准确的反应。

二、程序化交易系统的实现流程程序化交易系统的实现流程一般分为以下几个步骤:1. 数据采集:程序化交易系统需要从金融市场采集实时的财经数据。

2. 数据处理:对采集数据进行筛选、整理和处理,形成适用于程序化交易的有效数据集。

3. 策略编写:编写适于金融市场的交易策略和风险控制策略,并考虑随机波动因素和不确定性因素。

4. 交易接口:根据选定的交易平台,编写针对该平台的交易接口。

程序化交易模型三步走

程序化交易模型三步走

程序化交易模型三步走作者:杨清婉策略设计、历史检验和实盘验证这三个过程是建立一个完整的程序化交易模型必走的三步曲。

一、策略设计首先,交易策略什么类型是交易者要明确知道的,是进行套利交易还是投机交易?如果是套利交易,是跨期套利还是期现套利?如果是投机交易,是长线还是短线交易?之后根据交易策略的类型,选择相关的期货品种或期货合约。

如果选择期现套利,现货方面有相对较多的选择种类,比如,交易者可以根据自己的需要选择合适的基金组合、股票组合或者股票基金双组合等方式,期货方面通常选择主力合约。

如果是跨期套利,交易者可以选择主力合约与次主力合约,也可以根据需求选择相关的合约,最多可选择四只股指期货合约在股指期货市场进行综合套利。

最后,根据交易策略设计交易模型,使策略程序化,交易者往往在此过程中需要很多参数,比如使用周期、资金比例等。

二、历史检验历史检验只需交易者用历史数据对程序化交易模型进行检验,在程序化交易设计过程中相对来说比较简单。

但有,历史检验需要在模型中考虑交易成本,交易成本将吞噬大部分盈利,特别是一些日内的高频交易,这点需要注意。

统计各种检验指标在检验时十分重要,例如:最大资金回撤比例,交易的盈利与亏损比率,交易最大盈亏比,最大连续亏损和最大连续盈利次数等。

然后,对交易模型根据各类检验指标进行设计调整,对相关参数进行优化。

除此之外,还需要考虑交易者的风险承受能力。

每一次经过调整之后的交易模型都要重新对其进行历史测算,直到交易模型达到一个相对理想的状态。

三、实盘验证只经过历史数据检验之后的程序化交易模型并不能直接使用,必须经过实盘的验证以观察其可行性和稳定性。

实盘验证和历史检验有很多的不同,所有的买卖指令在历史检验中都是按照可成交来计算的,而在实盘当中,不能成交的原因多种多样,比如下单时出现滑价导致成交失败等。

很多问题只有在实盘模拟的时候才可能出现,这些问题在进行历史检验时会过于理想化。

如果问题出现在实盘模拟验证中,就必须返回到交易模型的策略设计的步骤进行修改。

程序化交易策略

程序化交易策略

程序化交易策略量化投资注重数理分析与逻辑推导,不依赖主观判定形成交易决策,当模型思想来源于投资者市场体会,基于历史数据所作的几率统计,也可以是技术指标,甚至基本面分析,只要能形成一定数理逻辑并得到市场验证即可作为量化投资策略。

程序化交易(programe trading)可以定义为“在指定模型参数的约束下,按照模型给出的指令自动的买入和卖出特定数量的证券或证券组合的交易行为”。

根据交易风格不同,可以分为主动型交易策略和被动型交易策略。

根据巴克莱的统计,自从1988 年以来,量化交易团队(Systematictraders)的年化复合收益为11.50%,而与此相对应的主观交易团队(Discretionary Traders)的平均年化收益为9.77%。

从长时间来看,量化交易团队更具有优势。

量化交易策略从执行过程上可以分为三个步骤:进入策略、退出策略和过滤策略;从方法来讲有指数套利策略、数量化程序交易策略、动态对冲策略、配对交易策略和久期平均策略。

在程序化交易中,我们对于一个交易策略的评价不仅要关注其过去的表现,还要关注策略有效性的周期。

因为在一个阶段表现好的策略在另一段时间可能表现并不好,只关注与过去表现很可能会出现误选模型的情况。

我们将在随后的报告中对于一些基本策略在我国期货市场的表现,策略参数的选择,策略之间的相关性,策略的有效期等进行深入的研究,并最终形成量化交易的实验平台,为客户提供一个量化交易测试的空间。

一 引言程序化交易(programe trading)可以定义为“在指定模型参数的约束下,按照模型给出的指令自动的买入和卖出特定数量的证券或证券组合的交易行为”。

它起源于1975 年美国出现的“股票组合转让与交易”,即专业投资经理可以根据计算机与交易所联机,来实现组合的一次性买卖。

程序化交易根据交易风格不同,可以分为主动型交易策略和被动型交易策略。

被动型交易策略的理念是追随市场,主要思路是复制指数,尽管该策略是被动的,但诸如指数增强型资策略也可以在被动复制的同时加入自己的主观预期。

程序化交易-策略设计与执行_冯正平

程序化交易-策略设计与执行_冯正平

基本思路是反等价鞅策略 ✓开始时用较低的杠杆做出安全垫 ✓有了获利逐渐加大杠杆 ✓亏损减少杠杆
制定能承受连续失利(至少三个月)的资金管理计划,也就是一段时间内连续遇到最糟糕的行情, 也不会达到deadline。
悍马定理十一:市场自身并没有振荡与趋势之分,所谓的趋势和振荡都是交易 者自己定义的。定义趋势和振荡主要的考虑因素是波动率、波动形态和交易者 主观上想做多大的行情。
✓ 对趋势和震荡的定义,还与交易的计算机(包括网络)技术、数学分析能力有 关。
✓ 悍马定理九十一:用最简单的话来定义趋势和震荡:涨了之后还要涨,或者跌 了之后还要跌,就是趋势;涨了之后要跌了,或者跌了之后要涨了,总之要反 转了,就是震荡。至于涨多少算涨,跌多少算跌,这个就要看交易者个人的理 解和捕捉机会的能力了。
有效期短——长则几个月,短则几周,甚至几天
需要经常调整震荡参数或挖h掘新的震荡行情量化特征
23
震荡策略设计
通过一个行情分析函数(或函数组)判断当前行情是否符合自己的震荡标准 在符合的条件下,使用震荡系统进行操作,震荡系统的设计思路有: ✓夹板策略:RB/DT/BOLLING等的上下轨作为夹板 ✓乖离策略:以均线乖离程度为特征 ✓快速偏离策略:短时间内价格快速单向运动后,反向运动概率高 ✓其他的在震荡区间内的统计特征(比如:K线形态)
一种计算策略相关性及头寸配置的方法 ——用权益的动态变化来计算相关性
根据前面第三步得出的表格进行规划求解
h
35
一种计算策略相关性及头寸配置的方法 ——用权益的动态变化来计算相关性
根据配置目标进行线性规划计算各模 型的头寸配置
比如最大收益、最小回撤、夏普率等 等
考虑到未来行情发展的无限种可能性, 对策略组合的计算结果,往往需要进 行降低仓位的谨慎处理。

程序化交易高级教程

程序化交易高级教程

注:此教程适用于赢智Wh8。

目录第一章如何优化你的交易策略 (1)1.1 PANZHENG函数,减少盘整行情中的交易次数 (1)1.2 CHECKSIG函数,实现更具有优势进场价格 (7)1.3 MULTSIG函数,在一根k线上灵活进出 (12)1.4 TRADE_OTHER函数,在指数交易中的应用 (17)1.5 拓展思路—结合盘口数据研发策略 (27)第二章多模型组合回测 (35)2.1 回测一篮子合约 (35)2.2 多模型组合回测 (38)2.3 段落式交易回测 (42)第三章编写资金管理模型 (45)3.1 加码模型 (45)3.2 回撤控制模型 (47)3.3 资金曲线跟随模型 (48)第四章盘口模型的基本结构与应用 (49)4.1 盘口模型的分类 (49)4.2 盘口模型使用的函数类型和运行机制 (50)4.3 盘口模型的语法及编写规则 (50)4.4 盘口模型的加载流程 (54)第五章盘口高频模型的编写 (56)5.1 什么是高频交易 (56)5.2 盘口高频模型的编写—追涨高频策略 (57)5.3 盘口高频模型的编写—辅助判断趋势策略 (61)5.4 盘口高频模型的编写—基差策略 (62)第六章盘口模型控制滑点 (63)6.1 了解滑点的产生 (63)6.2 盘口模型控制滑点的原理 (64)6.3 盘口模型控制滑点策略编写 (64)第七章后台程序化 (71)7.1 运行模组 (71)7.2 盘口模型运行池 (80)第八章远程监控 (86)8.1 设置运行模式 (86)8.2 日志邮件 (88)第一章如何优化你的交易策略1.1 PANZHENG函数,减少盘整行情中的交易次数很多趋势模型,在行情出现趋势的时候,都可以很好的抓住趋势,实现盈利,但长期运行下来,最终的结果却是小赚甚至亏钱,问题出在哪里?原因在于,盘整行情中模型在不断的反复交易,而盘整中的交易都是不盈利甚至亏损的,行情中绝大部分又都是盘整行情,长时间的连续小亏损导致之前的利润全部回吐关键函数:PANZHENG,判断当前行情是否为盘整注:返回1:表示盘整,返回0:表示不是盘整。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

套利对冲策略的测试
用Data0, Data1…的Buy/Sell指令
价差K线公式 (1)
价差K线公式 (2)
价差的四周规则系统(1)
价差的四周规则系统(2)
胶和锌对冲
铜和白糖对冲
谢谢大家!
39
15

出场部分设计

采用更小周期的反向突破作为保护性止损; 同时采用跟踪止盈的策略。 ……
StopLine = LoBand2; If (StopLine < HigherAfterEntry - ATRValue[1] * TrailStopNumATR) StopLine = HigherAfterEntry - ATRValue[1] * TrailStopNumATR; If(Low <= StopLine) { MyPrice = Min(StopLine, Open); Sell(0,MyPrice); }
MA = AverageFC(Close,Length); UpperBand = MA[1] * (1 + FilterPercent * 0.01 ); LowerBand = MA[1] * (1 - FilterPercent * 0.01 );

方法二:均线加ATR的一定比例
ATRValue = AvgTrueRange(ATRLength); MA = AverageFC(Close,Length); UpperBand = MA[1] + ATRValue[1] * EnvNumATR; LowerBand = MA[1] – ATRValue[1] * EnvNumATR;

组合报告
等市值测试
策略评估指标
收益风险比 调整收益风险比 最大资金回撤 根据评估指标计算最优头寸

对冲交易的优势
防范系统风险 提高波动率,增加交易机会 通过算法交易,提高流动性 降低博弈强度

套利对冲策略的设计
价差回归型的对冲策略 价差趋势跟踪策略

价差K线及技术指标 运用经典的趋势跟踪策略
13
例2:四周规则突破

交易规则:
价格突破20周期高点(日线即四周),做多; 价格突破20周期低点,做空;
14
进场部分代码

计算四周高低价 HiBand = highest(high[1],Length); LoBand = lowest(low[1],Length); 突破四周高点进场做多(以多头模型为例) If ( MarketPosition == 0 && high >= HiBand) { MyPrice = Max( HiBand, Open); buy(lots,MyPrice); return; }
11
出场条件设计

使用了反向突破止损和跟踪止盈相结合的出场方式; 跟踪止盈采用的是盈利峰值价回落ATR的一定比例后触发止损。 多头出场部分代码如下: 止损价的设置 StopLine = LowerBand; if (StopLine < HigherAfterEntry - ATRValue[1] * TrailStopNumATR) StopLine = HigherAfterEntry - ATRValue[1] * TrailStopNumATR; 止损的触发 If(Low <= StopLine) { MyPrice = StopLine; If(Open < MyPrice) MyPrice = Open; Sell(0,MyPrice); bLongStoped = true; }
程序化交易策略的进阶设计
蔡云华 深圳开拓者科技有限公司
1
内容安排

经典交易策略的设计思路和实现

组合测试和策略评估
套利对冲策略的设计

2
选择什么样的交易策略?

顺势还是逆势? 长线还是短线? 日内还是隔夜?

投机还是对冲?
策略简单测试

顺势策略
单均线、四周规则、布林线、MACD。。。
12
再进场条件设计

再进场必须突破跟踪止盈出场前的高点或低点
If ( bLongStoped and MarketPosition == 0 and High >= UpperBand and High > HigherAfterEntry ) { MyPrice = Max(UpperBand,HigherAfterEntry); If(Open > MyPrice) MyPrice = Open; Buy(Lots,MyPrice); bLongStoped = false; Return; }
16
例3:双均线交叉系统

交易规则: 如果短期均线上穿长期均线,做多,如原来持有空单 ,则先平空单,再建多仓 如果短期均线下穿长期均线,做空,如原来持有多单 ,则先平多单,再建空单
17
出场部分设计

我们使用三种类型的止损设置:
进场后设置初始止损;
有一定盈利后设置保本止损; 盈利增大后使用追踪止盈(峰值价回落ATR倍数);

逆势策略
RSI、KDJ、假突破系统 。。。。

结果:
顺势系统基本都是盈利的系统 震荡指标逆势策略很难盈利 震荡指标顺势策略也是盈利的系统
RSI 逆势系统
RSI逆势系统收益曲线
RSI 顺势系统
RSI顺势系统收益曲线
交易策略设计的几大环节



进场条件 出场条件 出场后的再进场条件 其他过滤条件 头寸管理
9
例1:单均线包络线

交易规则:
以简单移动平均线判断趋势,收盘价在均线之上为多
ቤተ መጻሕፍቲ ባይዱ
头趋势,在均线之下为空头趋势;
为过滤均线假突破,在均线基础上加减一定百分比形
成围绕均线的上下两条通道;
价格盘中突破上轨,进场做多或平空反多; 价格盘中突破下轨,进场做空或平多反空;
10
包络线的设计

方法一:均线百分比

为此,设置三个止损参数:
Numeric InitialStop(20); Numeric BreakEvenStop(30); Numeric TrailingStop(50); // 初始止损(千分之N) // 保本止损(千分之N) // 追踪止损(千分之N)

三种止损的代码可以放在一起处理,取最有利的 价格作为止损(赢)价。
多头止损部分的代码
// 初始止损 StopLine = EntryPrice * (1-InitialStop/1000); // 达到保本止损条件,将止损位上移到保本的价位 If (HigherAfterEntry >= EntryPrice * (1+BreakEvenStop/1000)) StopLine = EntryPrice;
进出场的更多过滤条件

技术指标 K线形态 成交量或持仓量 背离走势 (举例)
头寸调整

问题的提出:
一个正期望的系统能否通过亏损增加头寸的头 寸调整方式改进收益曲线?
测试代码 (1)
测试代码 (2)
测试代码 (3)
测试结果
组合测试
单品种多策略组合 多品种单策略组合 TB组合测试 组合测试的头寸分配
// 追踪止损的价位超过保本止损价,止损价随盈利峰值价的上升同步提高 If (StopLine < HigherAfterEntry*(1-TrailingStop/1000)) StopLine = HigherAfterEntry*(1-TrailingStop/1000);
Commentary("止损价:"+Text(StopLine)); // 止损触发 If(Low <= StopLine) { MyPrice = StopLine; If(Open < MyPrice) MyPrice = Open; Sell(Lots,MyPrice); bLongStoped = True; // 止损后设置标志 Commentary("Long Position Stoped at "+text(MyPrice)); }
相关文档
最新文档