使用 Python 将数据转化为见解并构建策略
原文:https://blog.quantinsti.com/data-insights-trading-strategy-python-project-lokesh-kumar/
这篇文章将帮助你学习如何分析数据,通过实时的股票市场数据和数据集获得洞察力。它还将帮助你学习如何使用 Python 编程创建自己的交易策略。
本项目中使用的完整数据文件和 python 代码也可以在本文末尾下载。
本文是作者提交的最后一个项目,作为他在 QuantInsti 的算法交易管理课程( EPAT )的一部分。请务必查看我们的项目页面,看看我们的学生正在构建什么。
关于作者
Lokesh Kumar 是孟买一家最大的美国银行的风险经理。他在银行和金融领域拥有超过 6 年的经验,曾在监管模型、信贷决策模型、宏观经济研究和分析领域工作。
Lokesh 拥有德里大学经济学荣誉学士学位和马德拉斯经济学院金融经济学硕士学位。此外,他还持有风险管理证书(FRM-美国 GARP)。他也是 EPAT 大学的校友。
研究动机
我是一名经济学学生和风险经理。过去 6 年来,我一直在使用各种统计软件(R、SAS、STATA、EVIEWS)进行数据分析、统计、计量经济学、机器学习建模,但从未有机会处理印度股票数据。
这个项目被证明是一个踏脚石,跟随我的兴趣,并在印度股票市场的职业生涯。此外,我已经跟踪印度金融市场和全球新闻 5 年了。
数据
- 用于分析的数据包括这些变量。
- 每个部门 2 只(流动性强、波动性大、年回报率正)股票。
- 数据的频率是每天。
型号
动量、均值回归和配对交易:分析-超额回报、夏普比率、最大提取、提取持续时间、样本内和样本外测试、绝对回报、相对回报、盈利能力分析。
回溯测试模型
评估战略绩效
项目摘要
这个项目研究股票价格的行为和运动。我们分析了 2010 年 10 月至 2018 年 12 月期间 Nifty 行业指数的详尽股票列表中的 20 只股票;基于较高的年平均滚动回报率和波动性,考虑每个行业的 2 只股票。
我们研究了股票价格和交易量数据,建立了 3 个策略——基于交易量和价格、均值回归和趋势跟踪(RSI)。我们发现没有一种特定的策略对所有的股票都有效。
我们评估了策略的性能,发现了高回报率和命中率。我们还对 2019 年 1 月至 2019 年 3 月的小样本期间进行了样本外测试,以观察我们是否可以在实时市场中使用这些策略,然后我们可以产生多少利润。
简介
我们的目标是使用不同的建模方法来确定进场点和出场点,高信心地做多和做空交易。我们专注于构建能够产生高回报且易于实施的战略。
首先,我们探讨了量价关系,因为有许多基于量价的技术指标。如果交易量随着价格的上涨而增加,那么上升趋势就是强劲健康的,当市场进入反趋势时,上升趋势就会减弱。
第二,我们探索了横截面均值回归策略,该策略试图利用来自同一行业的两只证券之间的暂时错误定价。
第三,我们探索了趋势跟踪策略,即当价格上涨时做多,当价格下跌时做空。我们计算了相对强度指数(RSI ),该指数评估股票价格的超买和超卖情况。
数据挖掘
我们从印度股票市场的每一个板块中选择了两只股票。我们首先看了漂亮的行业指数和每个指数中包含的股票列表。这些指数由流动性最强、资本化程度最高的股票组成,反映了每个行业的行为和表现。
我们使用 20 天滚动窗口,根据平均年化滚动回报和滚动波动性分析了总共 126 只股票。
我们根据高波动性、高回报和正回报最终确定了每个行业的两只股票。
我们从雅虎财经中提取了 2010 年 1 月至 2018 年 12 月期间的股价和成交量数据。
最终数据集由 2010 年 10 月至 2018 年 12 月期间的 20 只股票组成。所有 20 只股票的数据都是从 2010 年 10 月开始的。
用于分析的股票列表:
| Sr 号 | 符号 | 公司名称 | 行业 |
| one | 阿波罗泰尔 | 阿波罗轮胎有限公司 | 汽车 |
| Two | 阿肖克利 | 阿肖克·利兰有限公司 | 汽车 |
| three | 声望 | 威望地产项目有限公司 | 建筑 |
| four | 上世界 | 奥贝罗伊房地产有限公司 | 建筑 |
| five | 朱布尔福德 | 喜洋洋食品厂有限公司 | 生活消费品 |
| six | UBL | 联合酿酒有限公司 | 生活消费品 |
| seven | 陆军一等兵(Private First Class) | 电力金融有限公司 | 金融服务 |
| eight | RECLTD | 雷克有限公司 | 金融服务 |
| nine | 尼泰克 | 尼伊特技术有限公司 | 信息技术 |
| Ten | 我的天 | 明德树有限公司 | 信息技术 |
| Eleven | 今天 | 今日电视网络有限公司 | 媒体和娱乐 |
| Twelve | INOXLEISUR | 伊诺克斯休闲有限公司 | 媒体和娱乐 |
| Thirteen | 威尔公司 | 韦尔斯普林有限公司 | 金属 |
| Fourteen | HINDALCO | 欣达尔科工业有限公司 | 金属 |
| Fifteen | 阿尔科法尔马 | 奥罗宾多制药有限公司 | 制药公司 |
| Sixteen | 百康 | 百康有限公司 | 制药公司 |
| Seventeen | 印度的 | 印度银行 | 公共银行 |
| Eighteen | 班克 boarda | 巴罗达银行 | 公共银行 |
| Nineteen | 联邦银行 | 联邦银行有限公司 | 私营银行 |
| Twenty | 轴心银行 | Axis 银行有限公司 | 私营银行 |
数据分析
我们计算了股票收益率、命中率和累计盈亏的描述性统计量。
以下是项目中使用的每个策略的技术说明:
在基于成交量和价格的交易策略中,如果当前成交量小于最近 3 天的移动平均成交量,且当前价格小于最近 3 天的移动平均价格,我们将生成做空信号。我们尝试了不同的短时间框架,如 3、4、5、14 天,但 3 天是最好的结果,也试图产生长信号,但这并没有给任何股票带来积极的结果,所以我们只进行了卖空交易。
在均值回复配对交易策略中,我们考虑了来自每个部门的 2 只类似股票,计算了价格比,并检查了价格比(价差或 P S1 /P S2 )是否是协整的,那么这些股票是均值回复的,可以应用配对交易策略。
我们发现许多价格比率不是协整的。我们使用扩展的 Dicky Fuller (ADF)检验来检验协整性。我们创造了信号——当价差低于低波段时在 S1 做多,当价差高于移动平均线时在 S1 做多,当价差高于高波段时在 S1 做空,当价差低于移动平均线时在 S1 做空,并在 S2 建立相反的头寸。
我们尝试了不同的时间框架,如 5 天、14 天、21 天来计算滚动回报和波动性,但 5 天给出了最佳结果,还尝试了+/- 1 或+/- 2 标准差来计算上下波动带,并根据结果最终确定了+/- 1 标准差。
在趋势跟踪 RSI 策略中,70 或以上的值表明证券超买,因此股票做空,30 或以下的值表明证券超卖,因此股票做多。我们用 21 天的时间来计算 RSI。然而,我们研究了不同的时间框架,如 5、14、21、30、60 天,但 21 天的结果最好。
主要发现
我们提供了 20 只股票的汇总统计数据。负偏度表示收益的分布是负偏的。
过度峰度(峰度大于 3)表明收益分布具有较厚的尾部(较高的极端结果)。
| 符号 | 表示 | Std。偏差 | 最小值 | 最大值 | 第 25 百分位 | 第 50 百分位 | 第 75 百分位 | 偏斜度 | 峰度 |
| 阿波罗泰尔 | Zero point zero six | Two point five one | -29.37 | Ten point one six | -1.34 | Zero point zero six | One point four three | -0.96 | Eleven point zero seven |
| 阿肖克利 | Zero point zero five | Two point three nine | -15.09 | Twelve point eight one | -1.30 | Zero | One point three four | Zero point zero two | Two point nine two |
| 声望 | Zero point zero one | Two point eight two | -13.35 | Sixteen point six two | -1.69 | -0.12 | One point five | Zero point four three | Two point one two |
| 上世界 | Zero point zero two | Two point three five | -11.70 | Sixteen point zero six | -1.32 | -0.10 | One point one three | Zero point seven two | Three point eight three |
| 朱布尔福德 | Zero point zero eight | Two point four nine | -11.91 | Fifteen point zero three | -1.25 | Zero | One point three four | Zero point one six | Three point one two |
| UBL | Zero point zero six | Two point five three | -12.67 | Seventeen point one eight | -1.16 | -0.02 | One point zero eight | Zero point seven eight | Six point six one |
| 陆军一等兵(Private First Class) | -0.03 | Two point seven two | -15.52 | Thirteen point four | -1.62 | -0.08 | One point five seven | Zero point zero seven | One point six six |
| RECLTD | -0.02 | Two point five nine | -13.55 | Twelve point nine nine | -1.47 | -0.07 | One point five | -0.04 | One point five seven |
| 尼泰克 | Zero point zero eight | Two point three six | -12.60 | Thirteen point nine one | -1.26 | -0.04 | One point two six | Zero point three five | Three point zero five |
| 我的天 | Zero point zero nine | Two point zero four | -18.36 | Nine point four two | -0.99 | Zero point zero three | One point zero nine | -0.13 | Six point one five |
| 今天 | Zero point zero eight | Three point zero four | -18.15 | Eighteen point two three | -1.44 | -0.19 | One point three | One point one six | Seven point four five |
| INOXLEISUR | Zero point zero six | Two point six four | -15.21 | Sixteen point nine | -1.38 | -0.09 | One point two six | Zero point seven four | Four point seven |
| 威尔公司 | -0.03 | Three point three one | -31.45 | Eighteen point two three | -1.76 | -0.19 | One point six four | -0.24 | Eight point one nine |
| HINDALCO | Zero | Two point five two | -10.17 | Twelve point six eight | -1.57 | -0.06 | One point five two | Zero point one three | One point two five |
| 阿尔科法尔马 | Zero point zero nine | Two point five one | -18.44 | Twelve point four four | -1.31 | Zero | One point four eight | -0.03 | Three point one three |
| 百康 | Zero point zero seven | Two point zero four | -12.46 | Fourteen point four seven | -1.02 | Zero point zero one | One point zero eight | Zero point five six | Five point one two |
| 印度的 | -0.01 | Two point seven four | -13.11 | Nineteen point one two | -1.56 | -0.11 | One point two seven | Zero point nine three | Five point six six |
| 班克 boarda | -0.02 | Two point five three | -17.89 | Twenty-seven point three three | -1.38 | -0.03 | One point two eight | Zero point eight five | Twelve point zero six |
| 联邦银行 | Zero point zero three | Two point one nine | -13.04 | Seventeen point four seven | -1.21 | -0.04 | One point one eight | Zero point three | Four point seven eight |
| 轴心银行 | Zero point zero four | Two point one three | -9.96 | Fourteen point six | -1.15 | -0.02 | One point one nine | Zero point two | Three point zero three |
基于数量/价格的卖空策略
我们对所有 20 只股票都采用了这种策略。数据显示,这种策略导致平均 55%的命中率和 9.7%的年化回报。累计 PnL 显示,2010 年 10 月的投资额(1 卢比)在 2018 年 12 月平均为 2.291 卢比。
| 符号 | #积极交易 | #总交易量 | 命中率 | 累积 PnL | 平均。年化回报率 |
| 阿波罗泰尔 | Three hundred and twenty-four | Six hundred and five | 54% | Two point two nine four | 10.9% |
| 阿肖克利 | Three hundred and twenty-eight | Five hundred and seventy-six | 57% | Three point zero eight nine | 15.1% |
| 声望 | Four hundred and twenty-one | Six hundred and ninety-five | 61% | Four point seven zero three | 21.4% |
| 上世界 | Four hundred and five | Six hundred and eighty-three | 59% | Four point two five one | 19.8% |
| 朱布尔福德 | Three hundred and forty | Six hundred and one | 57% | Two point three two five | 11.1% |
| UBL | Three hundred and eighty-one | Six hundred and sixty-nine | 57% | Two point seven one two | 13.3% |
| 陆军一等兵(Private First Class) | Two hundred and ninety-two | Five hundred and sixty-two | 52% | One point four eight six | 5.1% |
| RECLTD | Three hundred and three | Six hundred and five | 50% | One point two two five | 2.6% |
| 尼泰克 | Three hundred and forty-six | Six hundred and sixty-nine | 52% | One point zero five two | 0.6% |
| 我的天 | Three hundred and forty-three | Six hundred and seventeen | 56% | Two point one zero five | 9.8% |
| 今天 | Four hundred and thirty-six | Seven hundred and fifty-one | 58% | Two point four four six | 11.8% |
| INOXLEISUR | Three hundred and eighty-four | Seven hundred and forty-nine | 51% | One point zero zero two | 0.0% |
| 威尔公司 | Four hundred and sixteen | Six hundred and ninety-one | 60% | Four point two seven one | 19.9% |
| HINDALCO | Two hundred and ninety-one | Five hundred and seventy-three | 51% | One point four zero two | 4.3% |
| 阿尔科法尔马 | Two hundred and ninety-five | Five hundred and sixty-three | 52% | Two point zero eight nine | 9.6% |
| 百康 | Three hundred and twenty-nine | Six hundred and twenty-two | 53% | One point eight eight six | 8.3% |
| 印度的 | Three hundred and seventy-two | Six hundred and thirty-nine | 58% | Two point seven five | 13.5% |
| 班克 boarda | Three hundred and thirteen | Six hundred and one | 52% | One point four five five | 4.8% |
| 联邦银行 | Three hundred and twenty-four | Five hundred and ninety-five | 54% | One point eight seven six | 8.2% |
| 轴心银行 | Two hundred and ninety-six | Five hundred and fifty-three | 54% | One point four zero two | 4.3% |
均值回归对交易策略
在我们的分析中,我们发现只有 2 对股票是协整的。PFC & RECLLTD 的 p 值小于 10%的显著性水平,TVTODAY & INOXLEISUR 的 p 值小于 1%的显著性水平。
数据显示,这种策略导致平均 52%的命中率和 13.7%的年化回报。累计 PnL 显示,2010 年 10 月的投资额(2 卢比)在 2018 年 12 月平均变成了(5.677 卢比)。
| 符号 | #积极交易 | #总交易量 | 命中率 | 累积 PnL | 平均。年化回报率 |
| 陆军一等兵(Private First Class) | One thousand four hundred and seventy-five | Two thousand eight hundred and ninety-six | 51% | Four point six zero one | 11.0% |
| RECLTD |
| 今天 | One thousand five hundred and twenty-one | Two thousand eight hundred and seventy-nine | 53% | Six point seven five three | 16.4% |
| INOXLEISUR |
趋势跟随 RSI 策略
我们为 NIITTECH 开发了这种策略,因为基于数量和价格的卖空策略未能产生良好的回报,而且这对组合没有进行协整。
数据显示,这种策略导致平均 69%的命中率和 6.5%的年化回报。累计 PnL 显示,2010 年 10 月的投资额(1 卢比)在 2018 年 12 月平均为(1.652 卢比)。
| 符号 | #积极交易 | #总交易量 | 命中率 | 累积 PnL | 平均。年化回报率 |
| 尼泰克 | Forty-six | Sixty-seven | 69% | One point six five two | 6.5% |
样本外回测
我们根据 2010 年 10 月至 2018 年 12 月期间的历史数据优化了策略。
我们运行一个样本外回溯测试,看看如果我们可以在市场上使用这些策略来产生利润,该策略的表现如何。分析中使用的样本外回测期为 2019 年 1 月至 2019 年 3 月。
基于数量/价格的卖空策略
根据历史数据结果,我们对过去产生超过 10%回报率的股票测试了这一策略,并观察了如果我们在 2019 年 1 月至 2019 年 3 月期间将资金投入市场,这一策略会如何表现。
数据显示,这种策略导致平均 55%的命中率和 25.3%的年化回报。
| 符号 | #积极交易 | #总交易量 | 命中率 | 累积 PnL | 平均。年化回报率 |
| 阿波罗泰尔 | Twelve | Nineteen | 63% | One point zero zero two | 0.8% |
| 阿肖克利 | Ten | Seventeen | 59% | One point zero two five | 10.8% |
| 声望 | Sixteen | Twenty-four | 67% | One point one seven three | 93.1% |
| 上世界 | seven | Sixteen | 44% | Zero point nine six | -15.4% |
| 朱布尔福德 | six | Thirteen | 46% | Zero point nine nine six | -1.8% |
| UBL | six | Sixteen | 38% | Zero point nine four six | -20.5% |
| 今天 | Sixteen | Twenty-two | 73% | One point one five six | 82.3% |
| 威尔公司 | Seventeen | Twenty-seven | 63% | One point one six eight | 90.0% |
| 印度的 | seven | Fifteen | 47% | Zero point nine seven one | -11.3% |
均值回归对交易策略
数据显示,这种策略导致平均 45%的命中率和 5.4%的年化收益。
| 符号 | #积极交易 | #总交易量 | 命中率 | 累积 PnL | 平均。年化回报率 |
| 陆军一等兵(Private First Class) | Forty | Eighty-three | 48% | Two point two zero two | 48.8% |
| RECLTD |
| 今天 | Forty | Ninety-five | 42% | One point seven eight one | -38.1% |
| INOXLEISUR |
趋势跟随 RSI 策略
数据显示,这种策略导致平均 50%的命中率和 4.5%的年化收益。
| 符号 | #积极交易 | #总交易量 | 命中率 | 累积 PnL | 平均。年化回报率 |
| 尼泰克 | Two | four | 50% | One point zero one one | 4.5% |
限制
为了计算回报,我们没有包括交易成本。
实施方法
这是一个完全活的项目,可以很容易地在交易系统中实现。
基于数量和价格的卖空策略
如果当天交易量低于过去 3 天的平均交易量,当天收盘价低于过去 3 天的平均收盘价,则在第二天以开盘价买入股票,以收盘价卖出股票。
均值回归对交易策略
如果当日价差(股票 1/股票 2 的价格比)低于下限(价差的 5 天移动平均值-价差的 5 天移动标准差),第二天在股票 1 中做多。
如果当日价差(股票 1/股票 2 的价格比)超过价差的 5 天移动平均线,第二天在股票 1 处做多。
如果当日价差(股票 1/股票 2 的价格比)高于上限(价差的 5 天移动平均线+价差的 5 天移动标准差),第二天在股票 1 中做一个短线。
如果当天的价差(股票 1/股票 2 的价格比)低于价差的 5 天移动平均线,在第二天做空股票 1。同时在 stock2 中取相反的位置。
如果多空信号是新的,以开盘价交易,否则以收盘价交易。
趋势跟随 RSI 策略
如果当天 RSI 低于 30,第二天做多股票。
如果当日 RSI 超过 70,第二天做空该股。
如果多空信号是新的,以开盘价交易,否则以收盘价交易。
结论
我们研究了股票价格和交易量数据,建立了 3 个策略——基于交易量和价格、均值回归和趋势跟踪(RSI)。
我们发现没有一个特定的策略对所有的股票都有效。我们评估了策略的性能,发现了较高的总体回报率和命中率。
然而,我们可以探索我们在课程中学到的许多其他策略,并产生比这些策略更高的回报。
如果你想学习算法交易的各个方面,那就去看看算法交易(EPAT) 的高管课程。该课程包括各种培训模块,让你具备在算法交易中建立一个有前途的职业生涯所需的技能。
参考书目
文件在下载
- Python 中的项目编码策略
- R 中的项目代码数据提取
免责声明:就我们学生所知,本项目中的信息是真实和完整的。学生或 QuantInsti 不保证提供所有推荐。学生和 QuantInsti 否认与这些信息的使用有关的任何责任。本项目中提供的所有内容仅供参考,我们不保证通过使用该指南您将获得一定的利润。
Julia 中的数据操作和可视化技术
原文:https://blog.quantinsti.com/data-manipulation-visualization-using-julia/
安舒尔·塔亚尔
在本文中,我们将研究 Julia 中的数据操作和可视化技术。然而,我不会进入每个函数的每个参数的细节,因为这个系列的目标是使用 Julia 作为工具来实现我们的目标,即构建和回测交易策略T5。所以,我们会继续关注这一点。
如果你需要一个函数来解决你在编程时面临的任何特殊挑战,你可以参考它的详细文档。
本文分为以下几个部分:
在这个 Julia 编程系列的前几篇文章中,我介绍了语言,并从 Julia 编程的基本语法开始。你也可以去看看。
数据操作
无论何时使用任何编程语言,都需要理解处理大型异构数据集的数据结构。在 Julia 的世界里,它们被称为数据帧。
Julia 的 DataFrames.jl 包提供了一种结构化和操作数据的方法。
可以使用“Pkg”模块进行安装。
创建新的数据框架
这是一个创建新数据帧的示例。
*
职业成长
教程
- Automated transaction
- Excel & R 进行交易
- foreign exchange & password transaction
- Machine learning
- Mathematics and Econometrics
- mean regression & risk management
- Python trades
- Popular transaction
- Technical index
**
关于
活动和公告
快速链接
版权所有 2021QuantInsti.com保留所有权利。
[](javascript:void(0))
Our cookie policyWe use cookies (necessary for website functioning) for analytics, to give you the best user experience, and to show you content tailored to your interests on our site and third-party sites. By closing this banner, scrolling this page, clicking a link or continuing to use our site, you consent to our use of cookies. Read more[Accept](javascript:😉****
数据预处理:Python,机器学习,例子等等
数据预处理是任何好的机器学习模型的基本要求。预处理数据意味着使用机器学习模型容易读取的数据。在本文中,我们将讨论数据预处理的基础知识,以及如何使数据适合机器学习模型。
本文涵盖:
- 什么是数据预处理?
- 为什么需要数据预处理?
- 使用 Python 对不同数据集类型进行数据预处理的示例
- 不同的日期格式
- 从哪里可以了解更多关于数据预处理的知识?
什么是数据预处理?
数据预处理是准备原始数据并使其适合机器学习模型的过程。数据预处理包括数据清洗,使数据准备好提供给机器学习模型。
我们关于数据清理的综合博客帮助您了解作为数据预处理一部分的数据清理,涵盖了从基础、性能等所有内容。
数据清洗后,数据预处理需要将数据转换成机器学习模型可以理解的格式。
为什么需要数据预处理?
数据预处理主要用于以下情况:
- **准确数据:**为了使数据对机器学习模型可读,需要准确,没有缺失值、冗余值或重复值。
- **可信数据:**更新后的数据应尽可能准确或可信。
- **可理解数据:**更新的数据需要正确解读。
总而言之,数据预处理对于机器学习模型从这种数据中学习是重要的,这种数据是正确的,以便将模型引导到正确的预测/结果。
使用 Python 对不同数据集类型进行数据预处理的示例
由于数据有多种格式,让我们讨论如何将不同的数据类型转换成 ML 模型可以准确读取的格式。让我们看看如何通过以下方式从数据集中获取正确的要素:
- 缺少值
- 极端值
- 过度拟合
- 没有数值的数据
- 不同的日期格式
缺少值
缺失值是处理数据时常见的问题!由于各种原因,如人为错误、机械错误等,这些值可能会丢失。
在你开始算法交易过程之前,数据清理是一个重要的步骤,算法交易过程从历史数据分析开始,以使预测模型尽可能准确。
基于这个预测模型,你创建交易策略。因此,将遗漏的值留在数据集中可能会造成严重破坏,给出错误的预测结果,从而导致错误的策略创建,而且结果也不会很明显。
为了找出最准确的特征,有三种技术可以解决缺失值问题,它们是:
- 落下
- 数值插补
- 分类插补
掉落
删除是处理丢失值的最常见方法。丢弃数据集中具有缺失值的那些行或整个列,以避免在数据分析中出现错误。
有一些机器被编程为自动删除包含缺失值的行或列,从而减少训练规模。因此,这种下降会导致模型性能下降。
一个简单的解决方法是使用插补法来解决由于数值下降而导致的训练规模减小的问题。我们将进一步讨论有趣的插补方法。在跌落的情况下,您可以为机器定义一个阈值。
例如,阈值可以是任何值。可以是数据的 50%、60%、70%。让我们在我们的示例中取 60%,这意味着模型/算法将接受 60%的缺失值的数据作为训练数据集,但是缺失值超过 60%的特征将被丢弃。
为了删除这些值,使用了以下 Python 代码:
泽维尔是如何从日内交易转向算法交易的
Xavier 是一名来自澳大利亚的兼职交易员,他试图建立自己的算法交易平台。
他做过工程学和计算机科学硕士,有 8 年工作经验。通过尝试各种职业和工作,Xavier 最终决定成为一名 Algo 交易员。这是他的旅程。
嗨,Xavier,告诉我们你自己的情况
大家好,我是来自澳大利亚堪培拉的 Xavier Anthony。我攻读了工程学和计算机科学硕士学位。我尝试过很多工作,比如在大的咨询公司做程序员、建筑师,最后进入管理层。
我在神经网络领域做了一些研究,我喜欢玩技术和与技术互动。我目前是一名 IT 架构师。
你是如何超越算法交易的?
当我学习工程学的时候,我对金融市场产生了兴趣。所以,为了了解金融市场,我做了一些专业工作。我叔叔的市场故事总是让我感兴趣,这让我迷上了学习市场。
那些日子,数据分析和数据挖掘等等。还没有完全建立起来,我想我会进入这个领域,因为我能够发现市场的潜力。我打算做自己的老板,而不是为别人工作,而且这是我喜欢的事情。
我的思维方式也是以研究为导向的,因为我在硕士期间就一直在追求这种思维方式。通过研究和分析提取数据让我非常兴奋。
我发现金融市场是一个庞大的行业,有大量的数据。当我在澳大利亚攻读硕士学位时,我也对人工智能产生了兴趣。
我过去常常检查资产负债表,检查公司在做什么,他们的投资,股息等等。当我和我的朋友们热衷于投资时,我们经常创造模拟的交易场景来测试我们的技能。
由于工作的限制,我不能直接进入交易行业,因为当时我在一家著名的跨国公司担任重要职务。我也不知道如何在交易中追求自己的兴趣。然而,经过 4 年的经验,我开始进入日内交易。
进入金融市场,进入算法交易,对我来说是一件好事。我赚了一些钱,赔了一些钱,进入商品市场,有一次不太好的石油交易经历,这迫使我思考。这让我大开眼界。
我仍然缺乏适当的金融知识和如何进入这个领域的算法交易。我需要一些东西来到这个世界。幸运的是,在正确的时间,我找到了 EPAT。
我当时有很多疑惑和矛盾。
我的学历呢?
我应该把钱投到哪里?
我该怎么学?
我该去找谁?
在那里,当我探索更多的选择时,我遇到了 EPAT。毫无疑问,我会说我学到了很多,它教会了我很多东西。现在,我的处理方式完全不同了。
你和 EPAT 相处得怎么样?
EPAT 课程确实适合每个人,相信我,它非常有帮助。
EPAT 有一个很好的课程结构,而且很容易导航。这里的教职员工很棒,他们有经验丰富的专业人员在学习的每一步指导你。管理时间是一个挑战,但 EPAT &出色的支持团队非常有帮助。
我的支持经理 Dhiraj 非常支持我,并在我的 EPAT 之旅中全程指导我。由于我的个人情况,我在课程期间遇到了一些挑战,他帮助我克服了这些挑战。
出于某种原因,我从商品交易和股票交易中走出来,对期权交易产生了兴趣,这是一个很大的学习领域。
在 EPAT 之后,我更加自信了,自信是我以前没有的东西。这些天,我制定策略。现在,我知道了价值观,也知道了一些问题的答案,比如我为什么要选择这个策略,回溯测试报告是什么。
定位细胞是一个巨大的帮助。他们经常根据我的需要通过电子邮件和工作邀请给我发送工作机会。我想对一直帮助和支持我的支持经理和其他教职员工表示感谢。
当我开始用实时交易系统进行实时交易时,我肯定需要一些指导,告诉我犯了什么错误,哪里需要改进,我很确定 EPAT 会在这方面支持我。
你对那些有抱负的量化分析师有什么话要说?
- 永不放弃!
- 进入市场,做好遭受损失的准备。
- 花时间在你的教育上。
- 当专家给出建议时,试着理解他们为什么这么说。
我通过犯错误,然后从中吸取教训,学会了所有这些东西。当问题出现时,你可能想放弃,或者不想完成 EPAT 课程。不要放弃。
你可以在几个月后,或者甚至几年后再回来。EPAT 大学提供终身学习课程的机会,你以后可以在生活中的任何时候重新学习。
这一系列视频是 QuantInsti 专门为算法交易(EPAT)管理课程的学生进行的讨论表的记录。
https://www.youtube.com/embed/0ZWqH6l8v40?rel=0
非常感谢泽维尔与我们分享您的旅程。我们相信读者会被你的故事所感动。我们希望您能够实现自己的梦想,建立自己的算法交易平台,建立自己的业务。祝你一切顺利!
如果你也渴望用终身技能来武装自己,这些技能将永远帮助你提升你的交易策略,这个 algo 交易课程正是你所需要的。拥有统计学&计量经济学、金融计算&技术、机器学习等课题,确保你精通在交易领域出类拔萃所需的每一项技能。现在就来看看 EPAT 吧!
免责声明:为了帮助那些正在考虑从事算法和量化交易的人,这个成功的故事是根据 QuantInsti EPAT 项目的学生或校友的个人经历整理的。成功案例仅用于说明目的,不用于投资目的。EPAT 方案完成后取得的成果对所有人来说可能不尽相同。T3】
初学者指南:如何进行日内交易?
在这篇文章中,我们将详细讨论日内交易实践。虽然日内交易原则可能很简单,但要使你的策略更好确实需要时间和努力。
如果你是金融市场新手,我们建议你先了解金融市场的基础知识。
让我们在这篇 covers:的文章中找出作为日内交易者交易的必要方面
- 什么是日内交易?
- 新手日交易
- 什么都可以交易?
- 最佳日交易股票的特征
- 日内交易策略
什么是日内交易?
日间交易指的是在同一个交易日内买卖金融工具的证券投机行为。在日交易中,为了避免在非交易时间由于不可预见的事件而可能发生的损失风险,所有头寸都必须在当天市场关闭前平仓。例如,日交易者可以避免当天收盘价和第二天开盘价之间的价格差距,这可能会影响决策。
现在让我们来看看适合新手的日间交易练习。
作为初学者的日内交易
任何领域的初学者都需要尽可能多地收集该领域的知识。虽然可以从经验中获得很多,但我们将讨论这些信息,这可能有助于您作为初学者顺利完成您的旅程。该信息与以下几点有关:
- 先决条件
- 技能
- 需要考虑的事项
- 阅读蜡烛图
- 风险和资金管理
- 订单类型
先决条件
有一些先决条件,每天交易者在开始练习时必须检查,因为这些是帮助你有效操作的要素。这些是:
- 个人电脑
- 经纪人
- Demat 帐户
- 可靠的互联网连接
PC
PC 的技术规格应该是有利的,例如 RAM 和操作系统。此外,由于分析市场很重要,每天的金融市场分析屏幕应该看起来很舒服。
经纪人
你必须为你的日内交易选择正确的经纪人,在我们关于算法交易指南的博客文章中,我们有一份来自印度、美国、英国、欧盟和加拿大的可靠经纪人名单。您可以查看这里提到的代理和 API。
Demat 账户
如果您不是通过经纪人进行交易,您可以在您的银行合作伙伴处开立 Demat 账户。这是因为经纪人会为你提供这样的设施。
可靠的互联网连接
一个可靠的互联网连接是日内交易的最重要的先决条件之一,因为你不希望你的互联网服务器在你交易过程中出现故障。
技能
拥有一套技能不仅对日内交易者是非常重要的,对任何领域的专业人士也是如此。
进行交易通常需要一些技能,但要想成功地进行日间交易,你需要具备以下条件,才能顺利进行交易:
- 交易/金融市场知识
- 快速做出决策,以便抓住市场机会
- 执行交易策略的数学技巧
- 预测和分析市场趋势的知识
- 风险管理和资金管理的专业知识
- 资产管理技能
- 决定交易策略的计划技巧
需要考虑的事项
日内交易本身带来了很多作为初学者需要注意的事情。首先,让我们讨论一些简单但非常有用的事情,你可以在从事日内交易时注意:
- 只交易最适量的钱
- 被告知
- 保住你的日常工作
- 有足够的时间跟踪市场
只交易最佳金额的资金
你必须用那些不会让你失去财富或让你陷入债务的钱来交易,因为一旦亏损,你将无力偿还。
你不能在每笔交易中冒险投入太多资金。你需要知道你交易的仓位大小。
这里的仓位大小意味着你在交易中持有的股票数量。在决定股票数量之前,你必须考虑作为投资者的账户规模和风险承受能力。这样,你可以在进场时设置止损价格。
通常,风险资金/交易风险=最佳头寸规模
风险资金是你能够承担风险的金额,交易风险是市场交易的总体风险。
被通知
在你开始日内交易之前,你必须具备最大化收益所需的知识。你必须充分了解你计划交易的股票的走势,以及股市中任何可能影响股价的不太可能发生的事件的最新消息。
为了保持消息灵通,应该随时查看业绩公告,因为这样,投资者可以在分析上一季度或年度业绩后投资证券。通过这种方式,日间交易员可以在分析公司提供的财务补充/披露后,分析股票回报的可行性。可以评估回报率指标,如 RoE(股本回报率)、股息支付率、运营效率、P/E 比率等,以便做出明智的决策。
另一个重要的获得信息的方法是在交易中借助情绪分析。通过分析新闻和推文描绘的情绪,你可以创建这样的交易策略,这将有助于你获利。情感分析最好可以通过各种机器学习技术来完成,比如自然语言处理,分类和支持向量机。然后,可以使用 VADER 等技术计算情感得分。这在我们的交易情绪分析学习课程中有很好的解释。
保住你的日常工作
作为初学者,你可能不会很快熟悉股市的所有涨跌。开始的时候,你可能运气不错,可以在市场上维持下去。这种可能性更大,尤其是在有利的市场环境下。虽然,在市场形势不利的情况下,你的策略实际上会受到考验。看完了市场的所有涨跌,如果你觉得你可以全职交易下去,那就暴跌吧。
有足够的时间跟踪市场
在日内交易中,你需要投入的最重要的事情就是你的时间。这段时间用来跟踪市场,寻找合适的机会。因为这些机会在交易时间的任何时候都会出现,所以你需要保持警惕。
阅读蜡烛图
阅读蜡烛图是这里的另一个重要话题。当你日内交易时,你必须知道烛台上不同的点是什么意思。如你所见,在下图中,有两个烛台。一个看涨,一个看跌烛台。让我们找出方法。
每个点描述了:
- 高价意味着在此期间交易的最高价格。
- 低价意味着交易的最低价格。
- 开盘价描绘了蜡烛线形成后的第一个交易价格。如果价格与前一天的收盘价相比呈上升趋势,蜡烛将变成绿色/蓝色。另一方面,如果价格下跌,蜡烛会变红。
- 收盘价意味着蜡烛线形成期间的最后交易价格。如果收盘价低于开盘价,蜡烛就会变红。反之,如果收盘价高于开盘价,蜡烛线将变成蓝色/绿色。
左图显示了看涨的烛台,描绘了开盘价高于前一天的收盘价。然而,右边的图像显示了一个看跌的烛台,描绘了一天结束时的收盘价低于开盘价。
风险和资金管理
风险和资金管理是交易中最重要的两件事,日内交易者需要具备同样的知识。
在这里,我们将讨论一些重要的交易领域的事情,可能有助于获利日交易实践:
票据交易
由于纸交易是一种使用虚拟货币的交易行为,所以参与纸交易是最安全的。所谓虚拟货币,我们指的是不能在现实世界中交易,但可以用来进行纸面交易的货币。纸面交易平台要么是技术公司,要么是由在线经纪商提供的演示交易功能。它们或者以虚拟游戏的形式提供纸面交易,或者以一般的方式提供纸面交易账户,作为对真实交易账户的补充。
目标利润分析
你还必须做一个目标利润分析,而日间交易,这意味着找出估计的业务活动,以执行,以赚取目标金额的利润。
找出目标利润分析的公式:
SpQ = VeQ + Fe +Tp
这里,
Sp =单位销售价格
Q =在此期间生产或销售的数量
Ve =制造和销售每单位产品的可变费用
Fe =固定费用总额
Tp =目标利润
保证金杠杆
通常,日内交易者也可以利用保证金杠杆。
保证金是投资者要求存入交易对手(经纪人或交易所)的抵押品,用于覆盖交易对手在金融市场可能面临的风险。
另一方面,杠杆意味着投资者在经纪人或交易所的帮助下卖空或购买高于保证金的证券。在这里,卖空意味着投资者如果认为标的资产的价格在未来会下跌时所使用的策略。在美国,投资者可以以 2:1 的比例(最高)进行初始杠杆操作,这是法规 T 所允许的。要了解详细信息,你也可以看看我们关于算法交易规则-美国的博客文章。
但是,如果你使用保证金杠杆,就会有追加保证金的风险,我们接下来会讨论这一点。
追加保证金通知
在保证金杠杆的情况下,交易者可能有保证金通知的风险。经纪人在估计市场风险后,不断修正担保证券的价值。追缴保证金意味着,每当担保证券的市场价值低于修订后的保证金时,需要将投资者方的额外资金纳入保证金账户。
例如,如果投资者持有的投资组合贬值到低于经纪人的保证金要求,那么就要追加保证金。因此,投资者可以选择存入保证金或清算现有资产。
因此,你必须在一天结束时检查你能承受的损失后,再决定要杠杆的保证金数额。
订单类型
接下来,您必须了解订单类型,并根据您的偏好决定要选择的订单类型。
你不能冒险超出你当天的既定上限。一旦你达到上限,你需要停止交易。
例如,如果你输的钱超过了你赢的钱,那你就彻底输了。例如,如果你在盈利的一天赚了 200 美元,在亏损的一天,你的亏损不能超过 200 美元。
为了确保您最终不会损失超出您承受能力的资金,让我们来看看几种订单类型,它们是:
- 市场定购单
- 限价订单
- 止损单
- 限价止损单
- 括号顺序
市场订单
在市价单中,交易者或投资者指示经纪人或交易目的地立即以市场上的最佳时价买入或卖出股票。因此,当订单执行的确定性优先于执行价格时,使用市价订单。
例如,一个投资者下单购买 1000 股 XYZ 股票,而最佳报价是每股 3 美元。如果先执行其他订单,投资者的市价订单可能会以更高的价格执行。
限价单
限价订单是以特定或更好的价格买入或卖出股票的订单。买入限价单只能以限价或更低的价格执行,卖出限价单只能以限价或更高的价格执行。如果获得一个特定的价格比成交更重要,限价单是合适的。
例如,一个投资者想以不超过 70 美元的价格购买一只 ABC 股票,这只股票目前的交易价格是 75 美元。投资者发出限价单,以 70 美元的价格购买 ABC 的股票。如果 ABC 股票价格跌至 70 美元或以下,订单将被执行。如果价格从未降至 70 美元或以下,订单将不会执行。下限价单有风险;如果股票跌到 71 美元,之后又涨到 100 美元。投资者可能会错过从 71 美元涨到 29 美元的机会。
止损单
止损单是在股票价格达到指定价格(称为止损价)时买入或卖出股票的订单。止损价格不是止损单的保证执行价格。止损价格是导致止损单成为市价单的触发器。
例如,假设你以每股 50 美元的价格购买了 XYZ 的股票,你担心它会下跌,如果价格跌至每股 45 美元以下,你可以使用止损单卖出,以保护自己免受更大的损失。风险在于,如果价格下跌非常快,并且在你之前已经有其他订单,股票最终可能会以低于 45 美元的价格卖出。
限价止蚀单
投资者可以通过设置止损限价单来避免订单以意外价格执行的风险。止损限价单结合了止损和限价单的特点。一旦达到止损价格,止损限价单就会变成限价单,以指定的价格执行。
例如,假设你以每股 50 美元的价格购买了 XYZ 股票。你不想每股损失超过 5 美元,所以你设置了 45 美元的止损限价单。如果股价跌至 45 美元,止损价格就会触发限价单,在 45 美元卖出。如果价格迅速跌至 45 美元以下,限价将确保你不会以更低的价格出售。限价单只会在股价再次达到 45 美元时执行。
括号顺序
支架订单旨在投资者可以通过将一个订单与两个相反的订单“支架”在一起来限制他们的损失并锁定利润。
买入挂单:买入挂单由通常高于买入挂单价格的卖出限价挂单和通常低于买入挂单价格的卖出止损挂单组成。这使得投资者可以通过上涨锁定利润,限制下跌损失。
卖出委托单:卖出委托单由一个较高价格的买入止损委托单和一个较低价格的买入限价委托单组成。
例如,如果你以 50 美元的价格买入一只股票,以 55 美元的价格卖出限价单,以 45 美元的价格卖出止损单。如果价格上升到 55 美元或下降到 45 美元,头寸将被卖出。交易者要么通过限价单获得 5 美元的收益,要么通过止损单遭受 5 美元的损失。
接下来,让我们讨论一下在金融市场上可以交易什么。
什么都可以交易?
在我们之前关于金融市场简介的文章中,我们已经详细介绍了在交易所交易的内容。在这里,我们列出了一些你可以交易的市场,并简要解释了它们。
作为日内交易者,你可以探索如下市场:
- 外汇
- 股票
- 加密货币
- 商品
- 结合
外汇
外汇市场是世界上最受欢迎和最具流动性的市场。在这个市场上,你可以用印度卢比、英镑、美元和欧元等货币进行交易。
通过我们免费的外汇交易课程,学习创建和回溯测试您在外汇市场的交易策略。
此外,这里有一个简短的视频,解释如何使用 Python 进行外汇交易:
https://www.youtube.com/embed/mWA4a4Afezc?feature=oembed
股票
股票市场为你提供了投资属于同一行业或不同行业的不同公司股票的机会。你可以投资常规和杠杆 ETF、期货和股票期权。
如果你想了解更多关于如何选择股票进行日内交易的信息,你必须观看下面这段来自 Quantra 的视频:
https://www.youtube.com/embed/TJni2fxrEMY?feature=oembed
加密货币
第三个市场是加密货币市场。投资这个市场会给你带来大量交易比特币和以太坊等加密货币的机会。
为了更好地了解加密市场,您可以选择 Quantra 上的这三个课程:
您还可以从本博客中获得一些关于印度加密货币市场之旅的知识。
期货
投资期货合约是日间交易的另一个选择。
商品
最后但并非最不重要的是商品交易。在日内交易中,你可以投资石油和天然气、农产品、金属、矿产等商品。此外,你可以在商品市场投资从黄金到可可的任何东西。如果你想了解这个话题,你可以参考我们关于商品市场的详细博客。
结合
债券是固定收益证券,公司或政府(称为债券发行人)通过它向投资者(称为债券持有人)筹集债务。
有不同类型的债券,如不支付利息的债券(零息债券)、可在指定到期日之前赎回的债券(T2)、可赎回债券(T3)、可转换为公司股票的债券(T4 可转换债券(T5))等。大多数公司或政府债券在交易所公开交易,其他的在场外交易。
接下来,让我们看看最好的日交易股票具有哪些特征。
最佳日交易股票的特征
在寻找最好的日内交易股票时,你必须知道使它们适合日内交易的特征。这些特征是:
- 跟踪良好的股票
- 良好的音量
- 中等至高波动性
跟踪良好的股票
一只被你很好跟踪的股票,在各种因素的背景下,比如波动性、价格变化触发因素等,都会是你熟悉的股票。
良好的音量
高交易量的股票会带来流动性,而流动性是一个让你,作为一个交易者,在不影响价格的情况下买卖股票的因素。市场上的高交易量意味着一段时间内交易的股票数量。例如,10 笔 100 股的交易与 100 笔 10 股的交易相同。这是因为总共交易了 100 股。由于每天交易的股票数量可以在网上查到,人们可以很容易地跟踪交易量。
中等至高波动性
价格波动很大的股票被认为是波动性很大的股票,因此适合日内交易。
日内交易者必须分析股票,跟踪其走势。一旦你熟悉了股票市场的过程,你的知识将帮助你根据股票过去的表现来决定何时买入和卖出。
现在,我们将讨论日内交易策略。
日内交易策略
在选择了日内交易的内容后,你还必须选择正确的策略,以便从交易中获得最大收益。你可以专注于一个特定的策略,也可以选择不同策略的组合。在这里,你会发现简明的交易策略的解释。
在我们的一篇博客文章中,我们详细介绍了所有的交易策略。在我们的 algo 交易策略文章中,你可以随意探索和了解它们。
让我们在这里简单地找出流行的交易策略,你会在课程中找到细节。这些战略是:
- 动量交易策略
- 黄牛策略
- 滴答策略
这一系列视频是 QuantInsti 专门为算法交易(EPAT)管理课程的学生进行的讨论表的记录。
https://www.youtube.com/embed/0ZWqH6l8v40?rel=0
动量交易策略
动量原理表明,如果证券在向上移动,那么它将继续向同一方向移动。
同样,如果它在向下运动,那么它也会向同一个方向运动。您可以通过两种方式利用动量,即时间序列动量和截面动量。这两种方法在动量交易策略课程中都有详细解释。
黄牛策略
刷单是一种交易策略,交易者在很短的时间内持有一个头寸,以便能够获得少量利润。实施这种策略的交易者被称为黄牛党。他们希望在每笔交易中获得小利润,随着交易次数的增加,这些小利润会累积成一大笔钱。黄牛党就像做市商一样,希望以的买入价买入,以的要价卖出,以获取买卖差价。
滴答策略
分笔成交点是衡量证券价格最小上下波动的指标。分笔成交点也可以指一种证券在不同交易中的价格变化。
如果一笔交易的价格比上次交易的价格高出一个点或更多,这就叫做上涨。
类似地,如果一笔交易的价格比上次交易的价格低了一个点或更多,那么它被称为下跌点。
比如说;如果最小报价单位是 0.01 美元,股票从 10 美元涨到 10.01 美元,那么它将被视为上涨。相反,如果从 10 美元涨到 9.99 美元,那就是下跌。
此外,如果股票的报价单位大小为 0.1 美元,当前价格为 10 美元,则相关价格可以移动到 10.1 美元、10.2 美元或 9.9 美元、9.8 美元,但不能移动到 10.05 美元或 9.95 美元,因为它不符合 0.1 美元的报价单位大小。
现在,滴答作响的策略是从买卖价差中获利。这意味着你以高于最佳出价的价格买入,以低于最佳出价的价格卖出,以实现收益最大化。
另外,看看这段视频,了解日内交易策略的介绍:
https://www.youtube.com/embed/K3Q_tR30ZIc?feature=oembed
要深入研究,你可以报名参加 Quantra 上的日交易策略课程,这是专门为初学者提供的知识。
结论
在这篇文章中,我们介绍了日内交易的基础知识,以及新手需要了解的内容。作为初学者,你可以获得一些关于日内交易实践和日内交易者如何运作的知识。全面了解可以帮助新手在日内交易中承担计算好的风险。
免责声明:股票市场的所有投资和交易都涉及风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。T3】
在 Python 中处理错误和异常
原文:https://blog.quantinsti.com/dealing-python-error-exceptions/
马里奥·比萨·培尼亚
所有程序员迟早都会发现自己花了大量时间处理代码中的错误。因此,有必要了解我们发现的错误类型以及如何处理它们。想了解更多关于 Python 进行交易的知识,也可以查看这篇文章
这篇文章将尝试用简单的语言回顾 Python 错误解释和 Python 错误解决的各个方面。
理解 Python 中的错误和异常
有两种错误:Python 语法错误和 Python 异常。
Python 语法错误通常很容易检测和修复。除非我们在不包含 Python 解析器的文本编辑器中编写代码,否则编辑器通常会告诉我们何时出现了语法错误,也就是说,何时我们编写了 Python 无法理解的代码。
Python 异常则相反,是只有在代码执行时才能检测到的错误。在这里,代码在语法上是正确的,但是在执行时,它在某一行遇到了一些问题,导致代码无法继续执行。
Python 语法错误必须立即纠正,否则,我们无法对代码做任何事情。Python 异常是运行时可能发生的异常情况,我们能做的最好的事情是控制它们,以防止异常结束执行。
让我们看看如何处理这类错误。
Python 语法错误
用一个非常简单的例子,让我们看看 Python 语法错误是如何表现的。
我们将看到的第一件事是一个语法正确的代码,我们希望用 Python 3 在屏幕上打印一条消息:
由于没有 Python 语法错误,Python 给出了我们正在寻找的输出。
现在让我们试着做同样的事情,但是用 Python 2 的风格(记住,这里我们用的是 Python 3):
虽然对于 Python 2 来说,这个语句不成问题,但是 Python 3 解释器希望找到要打印的消息周围的括号。因此,这就是它让我们知道的方式,清楚地告诉我们有一个 Python 语法错误,并为我们提供了一个可能的解决方案。
现在让我们犯一些愚蠢的错误来观察 Python 的输出:
这里我们忘记了结束引号和括号,Python 解释器告诉我们在行尾(EOL)有问题,即行尾不是预期的。
我们将尝试通过犯另一个 Python 语法错误来纠正它:
这里我们关闭了 print 语句,但让字符串保持开放。Python 解释器再次给出一条错误消息,指出行尾仍然不正确。
好的,我们现在要关闭字符串文字,但是这次我们不关闭输出。
这里发生了什么? Python 没有给我们提供预期的输出,但也没有抛出错误。相反,它显示了一行二级提示(三个点…),即解释器正在等待更多信息。在这种情况下,我们可以关闭括号,甚至向 print 语句添加更多信息。
这里 Python 给了我们向 print 语句添加更多信息的机会,因为解释器仍然是打开的,并且在等待输入。直到我们结束句子,Python 解释器才知道我们已经完成了打印,因此期望我们输入更多的信息。
在迄今为止的例子中,我们已经在解释器中直接引入了语句,但是如果代码在文件中会发生什么呢?
在这里,它表示在文件结尾(EOF)有一个 Python 错误。然而这一次,它不允许我们输入任何信息,这是因为我们启动 Python 来运行文件。如果这个文件包含错误,Python 会返回到操作系统终端,指出文件和发现错误的行。
Python 异常
Python 异常是一种错误,只有在运行时发现异常时才会触发。
例如:
z = x + y
从语法上来说,这是正确的,但是指令结束的好坏取决于它从 x 和 y 得到的值,如果它们有值的话。
假设:
x = 1 & y = 4:
该指令将毫无问题地执行,并将给出以下结果:
5 for z.
如果 x 和/或 y 没有声明/初始化会发生什么?
我们得到一个异常,在这种情况下,称为 NameError ,它停止执行。这是因为它没有找到我们想要添加的变量(它们不存在,它们没有被声明或初始化)
如果 x 和/或 y 是字符,会发生什么?
我们得到一个 Python 异常,在这种情况下,称为 TypeError ,它停止执行。发生这种情况是因为我们试图添加一个有几个字母的数字,由于不可能完成这个操作,解释器抛出了一个异常。
到目前为止,我们只看到了两个异常: NameError 和 TypeError ,但是在 Python 中嵌入了更多的 Python 异常。此外,这是一个基本的优势,我们可以声明、捕捉和处理我们自己的 Python 异常。
处理 Python 异常的另一个最重要的方面是我们可以控制它们。也就是说,一旦出现异常情况,我们可以控制该异常并正确处理它,以允许代码继续执行,而不是停止执行。
在下一篇文章中,我们将看到如何处理异常,以及如何让我们的程序更加健壮。
接下来的步骤
对于那些渴望了解更多关于 Python,它在算法和量化交易领域的使用和应用,或者只是想开始用 Python 进行交易的人,他们可以选择 Quantra 的 Python For Trading 课程。它从头开始涵盖了重要的概念,也有助于发展和提高专门针对交易的 Python 技能。
免责声明:股票市场的所有投资和交易都有风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。
交易决策树分类器第一部分
原文:https://blog.quantinsti.com/decision-tree-classifier-trading-part-1/
这篇博客中的策略不会涉及正常的技术指标,而是一些我自己的创造。此外,我们将看到测试和训练数据上的策略性能之间的差异,以及训练数据大小和预测长度的变化。
与我以前的博客不同,在这里我将使用一个动态的时间框架来获取过去几天的数据。但是在我们开始之前,让我们导入必要的库。
我已经将要提取的数据的开始日期定义为过去 365 天/ 1 年的日期。您可以使用静态日期格式,但这将有助于您在运行这段代码时获取最新的数据。
接下来,我创建了几个指示器,并更改了一些列的名称,以便以后在代码中引用它们。
我将简要说明我使用的指标。我创建了一个名为“dif”的专栏。这衡量的是收盘价相对于昨天范围的变化。我们正试图检查今天的收盘与昨天的价格波动之间是否有任何关联。在这之后,我创建了一个名为“sec_dif”的列,这是收盘价变化的二阶差。这里我们衡量 dif 相对于昨天范围的变化。
我们还使用另一个称为 diff_v 的指标,该指标用于衡量今天与前一天相比的范围变化。
之后,我计算了市场回报。请注意,这些回报是前瞻性的。由于预测是在一天结束时或就在一天结束前生成的,我们可以简单地将预测的趋势与该回报相乘,并轻松地衡量策略绩效。
创建指标后,我们分别计算衡量策略绩效和训练算法所需的回报和信号列。我们将使用前一天的回报作为指标的一部分,看看明天的趋势和今天的市场表现之间是否有任何相关性。
在选择我们的指标后,我们使用最小最大缩放器来缩放数据。该缩放函数将特征值缩小到 0 到 1 的范围内。
接下来,我们决定测试数据的大小,在这种情况下,我选择了 20 天,代表最后一个月的数据。
在此之后,我使用了一个日益复杂的决策树分类器,通过添加更多的深度和特征,来看看该算法在这个决策树分类器的帮助下预测得有多好。
我将用递增的复杂度(1-9,9 是最复杂的)来绘制策略的性能,并测量这些算法的准确性。
没有明确的迹象表明任何趋势或算法的表现,总的来说,这个结果是非常复杂的。现在,让我们打印列车数据性能并可视化性能。
在这里,观察结果非常清楚。你可以清楚地看到,更复杂的算法在预测趋势方面做得非常好,而不太复杂的算法更像是扔硬币。给定这些训练数据,我们可以期望最复杂的算法在测试数据上表现得更好。但遗憾的是,事实并非如此。正如你所看到的,上图中最近 20 天的表现清楚地表明,所有的算法几乎一样糟糕。这样做的原因是,我们并没有使用截至当天该点的可用数据来进行预测。换句话说,我们不是通过使用在那天之前的整个数据上训练的算法来对最后的数据进行预测,而是我们假设过去(365 天- 20 天)的数据将具有与未来 20 天相似的趋势,但大多数情况下不是这样。让我们通过将预测的天数减少到仅仅 5 天来验证这一点,然后我们可以看到算法的测试数据性能的显著差异。
在这里,您可以看到,过度拟合或欠拟合训练数据的算法表现不佳,而具有最佳学习能力的算法具有一致的性能。请注意,您只能看到 9 个算法中的 4 个,因为它们大多数是重叠的。如果您想要验证策略的准确性,您可以使用新的测试数据再次打印包含准确性的代码。在这里,理想情况下,当我们使用时间序列数据时,我们需要使用 LSTM 类型的方法来进行预测。即使用过去“x”天的数据来训练算法,然后预测第二天的数据。这将大大提高你的准确性。我们将在我的下一篇博客中探讨这个问题。
下一步
如果你想学习算法交易的各个方面,那就去看看算法交易(EPAT)中的 T2 高管课程。该课程涵盖了统计学&计量经济学、金融计算&技术和算法&定量交易等培训模块。EPAT 让你具备成为成功交易者所需的技能。现在报名!
免责声明:股票市场的所有投资和交易都涉及风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。T3】
下载 Python 代码
- 决策树分类器 Python 代码
使用 Python 进行交易的决策树
马里奥·比萨·培尼亚
决策树是一种用于分类和回归问题的机器监督学习方法,也称为 CART。
请记住,分类问题试图将未知元素归类到一个类或类别中;输出总是分类变量(即是/否、上/下、红/蓝/黄等)。)
回归问题试图预测一个数字,例如第二天的收益。它不能与用于研究变量之间关系的线性回归混淆。虽然分类和回归问题有不同的目标,但树有相同的结构:
- 根节点位于顶部,没有传入路径。
- 内部节点或测试节点位于中间,可以位于不同的级别或子空间,并且具有传入和传出路径。
- 叶节点或决策节点在底部,有传入路径,但没有传出路径,在这里我们可以找到预期的输出。
多亏了 Python 的 Sklearn 库,树是自动为我们创建的,以我们假设认为负责我们正在寻找的输出的预测变量为起点。
在这篇决策树的介绍文章中,我们将用 Python 创建一个分类决策树,来预测我们将要分析的金融工具第二天是上涨还是下跌。
我们还将制作一个决策树来预测第二天指数的具体回报。
准备环境
确保您有以下可用的软件,以便遵循示例:
- Python 3.6
- 熊猫数据结构库。
- 带有科学数学函数的 Numpy 库。
- Quandl 图书馆检索市场数据。
- 计算技术指标的 Ta-lib 库。
- Sklearn ML 库来构建树并执行分析。(以及其他许多事情)
- Graphviz 库来绘制树。
构建决策树
构建分类决策树或回归决策树的方式与我们组织输入数据和预测变量的方式非常相似,然后,通过调用相应的函数,分类决策树或回归决策树将根据我们必须指定的一些标准自动为我们创建。
构建决策树的主要步骤是:
- 检索金融工具的市场数据。
- 引入预测变量(即技术指标,情绪指标,广度指标等)。)
- 设置目标变量或所需输出。
- 在训练和测试数据之间分割数据。
- 生成决策树训练模型。
- 测试和分析模型。
如果我们看一下前四个步骤,它们是数据处理的常见操作。如果你是决策树的新手,预测器和目标变量对你来说可能听起来很陌生。但是,它们只不过是数据框中包含某种类型指示器的附加列。这些指标或预测指标用于预测目标变量,即分类模型的金融工具将上涨或下跌,或回归模型的未来价格水平。同样,拆分数据在任何回测过程(ML 或 not)中都是一项强制性任务,其思想是用一组数据来训练模型,用另一组未在训练中使用的数据来测试模型。
步骤 5 和 6 与决策树的 ML 算法特别相关。正如我们将看到的,Python 中的实现非常简单。然而,很好地理解参数化和结果分析是非常重要的。这篇文章非常实用,如果想更深入地了解基础数学,我们建议阅读文章底部的参考资料。
获取数据
任何算法的原材料都是数据。在我们的例子中,它们是金融工具的时间序列,如指数、股票等。它通常包含开盘价、最高价、最低价、收盘价和成交量等细节。这些信息以一定的频率记录下来,如分钟、小时、天或周,形成时间序列。
有多个数据源可以下载数据,免费的和高级的。免费每日数据最常见的来源是 Quandl、雅虎或谷歌或我们信任的任何其他数据源。
在这里,我们将通过 Quandl 检索来自埃米尼标准普尔 500 二十年的每日数据。
import quandl
df = quandl.get("CHRIS/CME_ES2")
df.head()
df.tail()
df.shape
(5391, 8)
我们现在有超过 21 年的埃米尼·S&P500 的可用数据。我们将使用结算价作为收盘价参考。
创建预测器
预测变量是我们认为与市场行为相关的数据。这些数据可以是多种多样的,如技术指标、市场数据、情绪数据、广度数据、基本面数据、政府数据等。这将有助于我们对市场的未来行为做出预测。
这里我们将测试趋势跟踪和区间交易的经典指标,它们是:
- 导弹电子搜索系统
- (同 antitransmit-receive)反收发
- ADX
- RSI
- MACD
因此,决策树算法应该帮助我们选择指标及其参数的最佳组合,以最大化作为目标的预期输出。
我们将通过计算用作预测指标的指标来准备数据,为此,我们将使用 Ta-lib 库:
import talib as ta
df['EMA10'] = ta.EMA(df['Settle'].values, timeperiod=10)
df['EMA30'] = ta.EMA(df['Settle'].values, timeperiod=30)
df['ATR'] = ta.ATR(df['High'].values, df['Low'].values, df['Settle'].values, timeperiod=14)
df['ADX'] = ta.ADX(df['High'].values, df['Low'].values, df['Settle'].values, timeperiod=14)
df['RSI'] = ta.RSI(df['Settle'].values, timeperiod=14)
macd, macdsignal, macdhist = ta.MACD(df['Settle'].values, fastperiod=12, slowperiod=26, signalperiod=9)
df['MACD'] = macd
df['MACDsignal'] = macdsignal
df.tail()
我们已经计算了指标,但有必要强调的是,我们是用标准参数计算的,这些参数可以而且必须优化,因为决策树与预先计算的指标一起工作。
另一方面,EMAs 和 MACDs 并不是这样,因为信号来自相对于均线的价格,或者相对于另一个均线的价格。让我们计算作为平均值和 MACD 预测值的列。
import numpy as np
df['ClgtEMA10'] = np.where(df['Settle'] > df['EMA10'], 1, -1)
df['EMA10gtEMA30'] = np.where(df['EMA10'] > df['EMA30'], 1, -1)
df['MACDSIGgtMACD'] = np.where(df['MACDsignal'] > df['MACD'], 1, -1)
df.tail()
我们现在拥有的是可能的交易规则,我们将在决策树中引入这些规则,以帮助我们确定这些指标的最佳组合,从而使结果最大化。
- EMA,我们感兴趣的是什么时候价格高于平均线,什么时候最快的平均线高于最慢的平均线。
- ATR(14),我们对触发信号的阈值感兴趣。
- ADX(14),我们感兴趣的是触发信号的阈值。
- RSI(14),我们感兴趣的是触发信号的阈值。
- MACD,我们对 MACD 信号何时出现在 MACD 上空感兴趣。
在这个例子中,分类决策树和回归决策树的预测变量将是相同的,尽管目标变量是不同的,因为对于分类算法,输出将是分类的,而对于回归算法,输出将是连续的。
通过我们的 Quantra 课程,学习如何制作决策树利用人工智能技术预测市场和寻找交易机会。
创建目标变量
正如我们已经说过的,分类和回归决策树有不同的目标。分类决策树试图通过提供分类变量来表征未来,即市场上涨或下跌,而回归决策树试图预测未来值,即未来市场价格。
我们将在这里为这两类问题创建目标变量,尽管每一类都将使用自己的目标。
df['Return'] = df['Settle'].pct_change(1).shift(-1)
df['target_cls'] = np.where(df.Return > 0, 1, 0)
df['target_rgs'] = df['Return']
df.tail()
回归算法的目标变量( target_rgs )使用滞后回报,这是因为我们希望算法根据当前可用的信息了解第二天发生了什么。
分类算法的目标变量( target_cls )也使用滞后回报,但是因为输出是分类的,所以我们必须转换它。如果回报是正的,我们指定 1,如果是负的,我们指定 0。
获取决策树数据集
我们已经准备好了所有的数据!我们已经下载了市场数据,应用了一些技术指标作为预测变量,并为每种类型的问题定义了目标变量,为分类决策树定义了分类变量,为回归决策树定义了连续变量。
我们将执行一个小操作来净化数据,并准备每个算法将使用的数据集。我们必须清除丢弃 NA 数据的数据,这一步对于干净地计算树是至关重要的。
接下来,我们将创建预测变量的数据集,也就是说,我们已经计算的指标,该数据集是我们将要创建的两个决策树(分类决策树和回归决策树)所共有的。
predictors_list = ['ATR', 'ADX','RSI', 'ClgtEMA10', 'EMA10gtEMA30', 'MACDSIGgtMACD']
X = df[predictors_list]
X.tail()
然后,我们为分类决策树选择目标数据集:
y_cls = df.target_cls
y_cls.tail()
最后,我们为回归决策树选择目标数据集:
y_rgs = df.target_rgs
y_rgs.tail()
将数据分成训练和测试数据集
完成数据集准备的最后一步是将它们分成训练和测试数据集。这对于用一组数据(通常是 70%或 80%以及剩余部分)拟合模型来测试模型的良好性是必要的。如果我们不这样做,我们将冒过度拟合模型的风险。我们希望在模型拟合后,用未知数据测试模型,以评估模型的准确性。
我们将创建训练数据集,其中 70%的数据来自预测变量和目标变量数据集,其余 30%用于测试模型。
对于分类决策树,我们将使用 sklearn 模型选择库中的**训练测试*分割函数来分割数据集。由于输出是分类的,因此训练和测试数据集成比例很重要train***test _ split函数将预测器和目标数据集以及一些输入参数作为输入:
- test_size :测试数据集的大小,在本例中,30%的数据用于测试,因此 70%用于训练。
- random_state :由于采样是随机的,这个参数允许我们在每次执行中重现相同的随机性。
- 分层:为了确保训练和测试样本数据成比例,我们将参数设置为 yes。这意味着,例如,如果正回报的天数多于负回报的天数,则训练样本和测试样本将保持相同的比例。
from sklearn.model_selection import train_test_split
y=y_cls
X_cls_train, X_cls_test, y_cls_train, y_cls_test = train_test_split(X, y, test_size=0.3, random_state=432, stratify=y)
print (X_cls_train.shape, y_cls_train.shape)
print (X_cls_test.shape, y_cls_test.shape)
这里我们有:
- 训练预测变量数据集:X_cls_train
- 训练目标变量数据集:y_cls_train
- 测试预测变量数据集:X_cls_test
- 测试目标变量数据集:y_cls_test
对于回归决策树,我们只是以指定的速率分割数据,因为输出是连续的,所以我们不担心训练和测试数据集中输出的比例。
train_length = int(len(df)*0.70)
X_rgs_train = X[:train_length]
X_rgs_test = X[train_length:]
y_rgs_train = y_rgs[:train_length]
y_rgs_test = y_rgs[train_length:]
print (X_rgs_train.shape, y_rgs_train.shape)
print (X_rgs_test.shape, y_rgs_test.shape)
同样,这里我们有:
- 训练预测变量数据集:X_rgs_train
- 训练目标变量数据集:y_rgs_train
- 测试预测变量数据集:X_rgs_test
- 测试目标变量数据集:y_rgs_test
到目前为止,我们已经完成了:
- 下载市场数据。
- 计算我们将用作预测变量的指标。
- 定义目标变量。
- 将数据分为训练集和测试集。
除了在获取目标变量和分割数据集的程序上略有不同外,迄今所采取的步骤是相同的。
用于分类的决策树
现在让我们使用 sklearn.tree 库中的 DecisionTreeClassifier 函数创建分类决策树。
虽然 DecisionTreeClassifier 函数有许多参数,我邀请您了解并尝试一下(help(DecisionTreeClassifier)),但在这里我们将看到创建分类决策树的基础。
基本上是指算法必须用哪些参数来构建树,因为它遵循一种递归的方法来构建树,我们必须设置一些限制来创建它。
- 标准:对于分类决策树,我们可以选择基尼或熵和信息增益,这些标准指的是损失函数,以评估学习机算法的性能,并且最常用于分类算法,虽然这超出了本文的范围,但基本上可以帮助我们调整模型的准确性,并且构建树的算法停止评估根据损失函数没有获得改善的分支。
- max_depth :树的最大层数。
- min_samples_leaf :该参数是可优化的,表示我们希望在树叶中拥有的最小样本数。
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(criterion='gini', max_depth=3, min_samples_leaf=6)
clf
现在,我们将使用训练数据集来训练模型,我们拟合了模型,并且算法已经完全训练好了。
clf = clf.fit(X_cls_train, y_cls_train)
clf
现在,我们需要使用模型对未知数据进行预测,为此,我们将使用 30%的数据进行测试,最后评估模型的性能。但是首先,让我们用图形来看看 ML 算法为我们自动创建的分类决策树。
可视化分类决策树
我们有一个非常强大的工具,可以帮助我们图形化地分析 ML 算法自动生成的树。该图显示了最大化输出的最重要节点,如果适用,将帮助我们确定一些有用的交易规则。
graphviz 库允许我们用图形表示决策树分类器函数用训练数据自动创建的树。
from sklearn import tree
import graphviz
dot_data = tree.export_graphviz(clf, out_file=None,filled=True,feature_names=predictors_list)
graphviz.Source(dot_data)
请注意,该图像仅显示了最重要的节点。在此图中,我们可以看到每个节点中的所有相关信息:
- 用于分割数据集的预测变量。
- 基尼不纯值。
- 该节点上可用的数据点的数量
- 属于每个类别的目标变量数据点的数量,1 和 0。
我们可以观察一对纯节点,这使我们能够推导出一种可能的交易规则。例如:
- 在从左边开始的第三片叶子上,当收盘价低于 EMA10 且 ATR 高于 51.814 且 RSI 低于或等于 62.547 时,标记减少。
- 从左边开始的第五片叶子上,我们可以推导出以下规律:当 ADX 小于等于 19.243,RSI 小于等于 62.952,RSI 大于 62.547 时,行情上行。
进行预测
现在,让我们使用为测试保留的数据集进行预测,这部分将让我们知道该算法在训练中使用未知数据时是否可靠。
y_cls_pred = clf.predict(X_cls_test)
性能分析
最后,我们只能通过与训练过程中获得的结果进行比较来评估算法在未知数据上的性能。为此,我们将使用 sklearn.metrics 库的 classification_report 函数。
该报告显示了一些有助于我们评估算法优劣的参数:
- 精度:表明我们预测的质量。
- 回忆一下:表明我们预测的质量。
- F1-得分:显示精度和召回率的调和平均值。
- 支持:作为权重计算精度、召回率和 F-1 的平均值。
任何高于 0.5 的数字通常被认为是一个好数字。
from sklearn.metrics import classification_report
report = classification_report(y_cls_test, y_cls_pred)
print(report)
回归决策树
现在让我们使用 sklearn.tree 库中的 DecisionTreeRegressor 函数创建回归决策树。
虽然 DecisionTreeRegressor 函数有许多参数,我希望您了解并尝试一下(help(DecisionTreeRegressor)),但这里我们将看到创建回归决策树的基础。
基本上是指算法必须用哪些参数来构建树,因为它遵循一种递归的方法来构建树,我们必须设置一些限制来创建它。
- 标准:对于分类决策树,我们可以选择平均绝对误差(MAE)或均方误差(MSE),这些标准与损失函数相关,用于评估学习机算法的性能,并且最常用于回归算法,虽然这超出了本文的范围,但基本上可以帮助我们调整模型的准确性,以及构建树的算法,停止评估根据损失函数没有获得改善的分支。这里我们将默认参数设为均方误差(MSE)。
- max_depth :树将拥有的最大级别数,这里我们将默认参数设为 none。
- min_samples_leaf :这个参数是可优化的,表示我们希望树拥有的最少叶子数。
# Regression tree model
from sklearn.tree import DecisionTreeRegressor
dtr = DecisionTreeRegressor(min_samples_leaf = 200)
现在,我们将使用训练数据集来训练模型,我们调整模型,算法将已经得到充分训练。
dtr.fit(X_rgs_train, y_rgs_train)
现在,我们需要使用模型对未知数据进行预测,为此,我们将使用 30%的数据进行测试,最后评估模型的性能。但是首先,让我们用图形来看看 ML 算法自动为我们创建的回归决策树。
可视化模型
为了可视化该树,我们再次使用 graphviz 库,它为我们提供了用于分析的回归决策树的概述。
from sklearn import tree
import graphviz
dot_data = tree.export_graphviz(dtr,
out_file=None,
filled=True,
feature_names=predictors_list)
graphviz.Source(dot_data)
在此图中,我们可以看到每个节点中的所有相关信息:
- 用于分割数据集的预测变量。
- MSE 的值。
- 该节点上可用的数据点数
通过我们的 Quantra 课程,学习如何使用人工智能技术制作决策树来预测市场和寻找交易机会。
结论
这看起来像是我们发现了一个水晶球,但事实并非如此。掌握这些技术需要大量的学习和对背后的数学技术的整体理解。
显然,树很容易创建和提取一些有用的规则,但事实是,要创建决策树,它们需要参数化,这些参数可以而且必须优化。
为了继续加深我们对决策树的了解,并真正帮助我们提取可靠的交易规则,我们将在下一篇文章中使用集成机制来创建一个健壮的模型,该模型结合了一个算法创建的模型。
-
并行集成方法或平均方法:通过一种算法创建多个模型,预测是所有模型的平均值;
- 制袋材料
- 随机子空间
- 随机森林
-
序贯集成方法或 boosting 方法:该算法创建序贯模型,对每个新模型进行改进,以减少前一个模型的偏差;
- AdaBoosting
- 梯度推进
我们已经在这个博客中学习了如何使用 Python 创建分类和回归决策树,现在我们可以在 Ernest P. Chan 博士的课程中学习高级概念和策略。
免责声明:股票市场的所有投资和交易都涉及风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。T3】
解读不断变化的交易格局
原文:https://blog.quantinsti.com/decode-the-changing-landscape-of-trading-webinar/
如今,金融市场比以往任何时候都更加紧密相连。一个市场发生的任何事件都会影响其他地区的市场行为。甚至交易目的地的数量也在快速增加。
在这种不断变化的交易环境中,交易者利用来自多个来源的信息来设计他们的交易策略,以下问题确实会出现:
- 一个人如何跟上竞争的步伐?
- 如何从多个交易场所获取信息?
- 连接不同市场的技术复杂性是什么?
- 不同市场的监管挑战是什么?
- 各个地区的竞争格局是怎样的——交易量最大的资产类别是什么,在这些外国市场上,谁将是你的竞争对手?
- 国外市场的成熟和发展水平如何?
算法交易以技术而非交易员为中心,没有地理位置依赖性,因此能够在新的地理区域快速复制成功的策略。因此,对上述问题的回答可以帮助一个成功的交易者在算法上扩展他的操作。
所有这些问题都将在 2014 年 5 月 2 日由 QuantInsti 的联合创始人和教员 Rajib Ranjan Borah 在一个半小时的网络研讨会上回答。
网上研讨会将从以下几个方面比较和对比各个市场:
- 技术基础设施和协议
- 监管障碍
- 竞争格局-资产类别、竞争对手和复杂程度
本次网络研讨会可能有利于:
- 交易商在不同地区探索交易机会
- 量化求职者在不同地区评估算法交易的机会
访问我们博客中的所有独家网络研讨会内容:改变算法交易的格局
使用 Python 中的张量流的深度学习-人工神经网络
原文:https://blog.quantinsti.com/deep-learning-artificial-neural-network-tensorflow-python/
在这篇文章中,我们将通过使用张量流和用 python 预测股票价格来开发一种称为深度学习(人工神经网络)的机器学习技术。在本文的最后,你将学习如何使用张量流建立人工神经网络,以及如何使用神经网络的预测来编码策略。
系统需求:Python 3.6
如果你是神经网络的新手,想了解它们的工作原理,我建议你在建立神经网络之前浏览以下博客。
编码策略
导入库
我们将从导入所有库开始。请注意,如果下面的库还没有安装,您需要在导入之前先在 anaconda 提示符下安装。
TensorFlow 是一个开源软件库,用于跨一系列任务的数据流编程。它是一个符号数学库,用于机器学习应用,如深度学习神经网络。维基。
Numpy 是一个科学计算的基础包,我们将使用这个库来计算我们的数据集。使用别名 np 导入该库。
Pandas 将帮助我们使用强大的 dataframe 对象,它将在 Python 中构建人工神经网络的整个代码中使用。
Scikit-learn 是一个免费的 Python 编程语言的机器学习库。它具有各种分类、[回归](https://quantra.quantinsti.com/course/trading-with-machine-learning-regression target=)和聚类算法,包括支持向量机。维基百科
Matplotlib 是一个 Python 2D 绘图库,它以多种硬拷贝格式和跨平台的交互环境生成出版物质量数据
塔利布是一个技术分析库,将用于计算 RSI 和 Williams %R。这些将用作训练我们的人工神经网络的特征。我们可以使用这个库添加更多的特性。
导入数据集
我们将使用 2000 年 1 月 1 日至 2018 年 8 月 30 日期间在 NSE 交易的塔塔汽车股票的每日 OHLC 数据。我们首先导入数据集。CSV 文件命名为“塔塔汽车”。“NS.csv”保存在您计算机的个人驱动器中。这是使用 pandas 库完成的,数据存储在名为 dataset 的数据帧中。然后,我们使用 dropna()函数删除数据集中缺失的值。我们仅从该数据集中选择 OHLC 数据,该数据集中还包含日期、调整后收盘和成交量数据。我们将仅使用 OHLC 值构建输入要素。
请注意,您也可以从我的 github 下载这些数据。
准备数据集
然后,我们准备各种输入特征,人工神经网络将使用这些特征来训练自己进行预测。请注意,我只限于以下 8 个功能,但是你应该创建更多的,以获得更准确的结果。
- 高价减去低价
- 收盘减去开盘价
- 三天移动平均线
- 十天移动平均线
- 30 天移动平均线
- 5 天期间的标准偏差
- 相对强度指数
- 威廉姆斯%R
然后,我们将输出值定义为价格上涨,这是一个二进制变量,当明天的收盘价大于今天的收盘价时,存储 1。
接下来,我们使用 dropna()函数删除所有存储 NaN 值的行。
接下来,我们从“数据集”中移除所有 OHLC 数据,仅在名为“数据”的新数据框中保留“8 个输入要素”和“输出”。
接下来,我们将 data 中的所有数据设为 np.array。
分割数据集
接下来,我们将整个数据集分成训练数据和测试数据。从 2000 年 1 月 1 日开始,训练数据包含总数据集的前 80%,测试数据包含数据集的剩余 20%。数据没有被打乱,而是按顺序切片。
缩放数据&建筑 X,Y
数据预处理的另一个重要步骤是标准化数据集。此过程会使所有输入要素的平均值等于零,并将它们的方差转换为 1。这确保了在训练模型时不会因为所有输入要素的不同比例而产生偏差。如果不这样做,神经网络可能会混淆,并对那些平均值比其他特征高的特征给予较高的权重。此外,网络神经元(如 tanh 或 sigmoid)的最常见激活函数分别定义在[-1,1]或[0,1]区间上。如今,校正线性单位(ReLU)激活是普遍使用的激活,其在可能激活值的轴上是无界的。但是,我们将调整投入和目标。我们将使用 sklearn 的 MinMaxScaler 进行缩放。我们用 MinMaxScalerr()函数实例化变量 sc。之后,我们使用“先拟合后变换”函数训练和测试数据集。
然后,我们将训练和测试数据集分成 X 训练,y 训练& X 测试,y 测试。这从数据训练和数据测试中选择目标和预测值。价格上涨的目标(y train & y test)位于数据 train/test 的最后一列,从第 1 列到第 8 列数据 train/test 的 8 个特征(X train & X test)的预测值。整个数据集将如下所示。
这是任何机器学习算法的基本部分,模型使用训练数据来得出模型的权重。测试数据集用于查看模型如何处理将输入模型的新数据。测试数据集还有输出的实际值,这有助于我们理解模型的效率。既然数据集已经准备好了,我们可以继续使用 TensorFlow 库构建人工神经网络。
构建人工神经网络
输入,隐藏&输出图层
该模型由三个主要构件组成。输入层、隐藏层和输出层。输入层是 8 个要素。在输入层之后有 3 个隐藏层。第一个隐藏层包含 512 个神经元。后续隐藏层的大小总是前一层的一半,这意味着第二个隐藏层包含 256 个神经元,最后第三个隐藏层包含 128 个神经元。在 3 个隐藏层之后是输出层。Net 是由张量流交互分离产生的。
占位符&变量
人工神经网络从占位符开始。为了适应我们的模型,我们需要两个占位符:X 包含网络的输入(T = t 时股票的特征), Y 包含网络的输出(T+1 时股票的运动)。占位符的形状对应于 None,n_features,其中[None]表示输入是二维矩阵,输出是一维向量。理解神经网络需要哪些输入和输出维度以正确设计它是至关重要的。none 参数表示此时我们还不知道每批中流过神经网络图的观察值的数量,因此我们保持 if 灵活性。我们稍后将定义控制每个训练批次的观察数量的可变批次大小。
除了占位符,变量是张量流宇宙的另一个基石。占位符用于存储图形中的输入和目标数据,而变量用作图形中的灵活容器,允许在图形执行过程中改变。这里权重和偏差被表示为变量,以便在训练期间适应。在模型训练之前,需要初始化变量。
初始值设定项
初始化器用于在训练前初始化网络变量。由于使用数值优化技术来训练神经网络,因此优化问题的起点是找到潜在问题的良好解决方案的关键因素之一。张量流中有不同的初始化器,每一个都有不同的初始化方法。这里,我们将使用两个变量权重&偏差的 TF . variancescalinginitializer()作为默认初始化策略之一。
设计网络架构
在设计网络架构时,首先我们需要了解输入层、隐藏层和输出层之间所需的可变维度。在多层感知器(MLP)的情况下,我们在这里使用的网络类型,前一层的第二维是当前层的第一维的权重矩阵。这意味着每一层都将其输出作为输入传递给下一层。偏差维度等于当前层的权重矩阵的第二维度,其对应于该层中神经元的数量。
在定义了所需的权重和偏差变量之后,需要指定网络拓扑、网络架构。因此,占位符(数据)和变量(权重和偏差)需要组合成一个顺序矩阵乘法系统。此外,网络的隐藏层通过激活函数进行变换。激活函数是网络架构的重要元素,因为它们给系统引入了非线性。有许多可能的激活函数,其中最常见的是整流线性单元(ReLU ),它将在此模型中使用。
成本函数
我们使用成本函数来优化模型。成本函数用于生成网络预测和实际观察到的训练目标之间的偏差度量。对于回归问题,通常使用均方误差(MSE)函数。MSE 计算预测值和目标值之间的均方差。
优化器
优化器负责必要的计算,这些计算用于在训练期间调整网络的权重和偏差变量。这些计算调用梯度的计算,该梯度指示在训练期间权重和偏差必须改变的方向,以便最小化网络的成本函数。开发稳定和快速的优化器是神经网络和深度学习研究的一个主要领域。
在这个模型中,我们使用 Adam(自适应矩估计)优化器,它是随机梯度下降的扩展,是深度学习开发中的默认优化器之一。
拟合神经网络
现在,我们需要使我们创建的神经网络适合我们的训练数据集。在定义了网络的占位符、变量、初始化器、成本函数和优化器之后,需要训练模型。通常,这是通过小批量训练来完成的。在小批量训练期间,从训练数据中抽取 n = batch 大小的随机数据样本,并输入网络。训练数据集被分成 n / batch 大小的批次,这些批次被顺序输入到网络中。此时,占位符 X 和 Y 开始发挥作用。它们存储输入和目标数据,并将它们作为输入和目标呈现给网络。
X 的一个采样数据批次流经网络,直到它到达输出层。在那里,TensorFlow 将模型预测与当前批次中实际观察到的目标 Y 进行比较。之后,TensorFlow 执行优化步骤并更新网络参数,与所选的学习方案相对应。更新重量和偏差后,对下一批进行采样,重复该过程。该过程继续进行,直到所有批次都被呈现给网络。所有批次的一次完整扫描称为一个时期。一旦达到最大次数或者用户定义的另一个停止标准适用,网络的训练就停止。当 epoch 达到 10 时,我们停止训练网络。
有了这个,我们的人工神经网络就编译好了,可以做预测了。
预测股票的走势
既然已经编译了神经网络,我们可以使用 predict()方法进行预测。我们将 X test 作为参数传递,并将结果存储在一个名为 pred 的变量中。然后,我们将 pred 数据转换为 dataframe,并保存在另一个名为 y pred 的变量中。然后我们通过存储条件 y pred > 0.5,将 y pred 转换为存储二进制值。现在,变量 y_pred 根据预测值是大于还是小于 0.5 来存储 True 或 False。
接下来,我们在 dataframe 数据集中创建一个具有列标题“y pred”的新列,并将 NaN 值存储在该列中。然后,我们将 y pred 的值存储到这个新列中,从测试数据集的行开始。这是通过使用 iloc 方法对数据帧进行切片来实现的,如下面的代码所示。然后,我们从 dataset 中删除所有 NaN 值,并将它们存储在名为 trade_dataset 的新数据帧中。
计算策略返回
现在我们有了股票运动的预测值。我们可以计算这个策略的收益。当 y 的预测值为真时,我们将持有多头头寸,当预测信号为假时,我们将持有空头头寸。
我们首先计算如果在今天结束时做多,并在第二天结束时平仓,该策略将获得的回报。我们首先在 trade_dataset 中创建一个名为“Tomorrows Returns”的新列,并在其中存储一个值 0。我们使用十进制符号来表示浮点值将存储在这个新列中。接下来,我们在其中存储今天的对数回报,即今天收盘价除以昨天收盘价的对数。接下来,我们将这些值向上移动一个元素,以便根据今天的价格存储明天的回报。
接下来,我们将计算策略回报。我们在标题“Strategy Returns”下创建一个新列,并用值 0 初始化它。以指示存储浮点值。通过使用 np.where()函数,如果“y pred”列中的值存储为 True(长位置),则我们将存储“Tomorrows Returns”列中的值,否则我们将存储“Tomorrows Returns”列中的值的负值(短位置);“策略回报”一栏。
我们现在计算市场和策略的累积回报。这些值是使用 cumsum()函数计算的。
绘制收益图
现在,我们将绘制市场回报和我们的策略回报,以直观显示我们的策略在市场中的表现。然后,我们使用存储在 dataframe trade_dataset 中的累积值,使用 plot 函数绘制市场回报和策略回报的图表。然后,我们分别使用 legend()和 show()函数创建图例并显示绘图。下面显示的图是代码的输出。绿线代表使用该策略产生的回报,红线代表市场回报。
结论
这个项目的目标是让你了解如何使用 python 中的 tensorflow 建立一个人工神经网络并预测股票价格。目的不是让你得到好的回报。你可以通过各种方式优化这个模型,以获得良好的策略回报。
我的建议是,当你在建立人工神经网络或任何其他最有效的深度学习模型时,使用超过 100,000 个数据点。这个模型是根据每日价格开发的,目的是让您了解如何构建模型。建议使用分钟或分笔成交点数据来训练模型。
现在你可以用 Python 建立自己的人工神经网络,并开始利用机器的能力和智能进行交易。
您也可以从 my github a/c 下载 pyhon 代码和数据集
下一步
免责声明:股票市场的所有投资和交易都有风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。
下载数据文件
- 使用 Python 中的张量流的深度学习-人工神经网络
金融领域的深度学习
深度学习在金融领域发挥着重要作用,这也是我们在本文中讨论它的原因。简单来说,深度学习是机器学习的一个子领域。由于他们处理的问题不同,他们的能力也各不相同。
让我们看看这篇文章将涵盖什么:
首先,我们将看到深度学习的概念在一个结构中得到解释,它是这个结构的一部分。
深度学习概述
深度学习是人工智能的一部分,它甚至可以为极其复杂的输入提供输出。
下面,我们以流程图的方式进行了可视化表示,以了解深度学习究竟在哪里发挥作用:
主要是,你可以在上图中看到,由机器学习、深度学习和神经网络组成的是人工智能(AI)。
那么我们先来了解一下人工智能的含义。用简单的话来解释,AI 是一个广泛的概念,它意味着所有由机器学习的最初是人类行为的概念。更简单地说,人工智能是任何显示人类思维特征的机器,如合理化、学习和解决问题。
然后是机器学习 的概念,涉及算法和统计模型的研究。基于这项研究,机器或系统执行特定的任务,不需要任何明确的指令。这是因为机器依赖于从过去学到的模式和推论。
第三,也是更深层次的概念是深度学习。这个概念被称为深度学习,因为它利用了大量的数据或可用信息的复杂性。有了这些信息,深度学习模型就足以识别错误,并在没有人工干预的情况下自行纠正它们。由于机器学习没有使用如此深入的信息,在没有人类参与的情况下,它无法识别和纠正错误。
另一个概念是 神经网络 ,它是机器学习的一部分,简单地说就是机器能够以与人类解决各种任务相同的方式处理信息的概念。因此,这是一个模仿生物神经网络的人工神经网络的概念。
现在,深度神经网络是人工神经网络的一个组织,它帮助对极其复杂的输入进行输出。深度神经网络起着重要的作用,因为它们处理极其复杂的输入以提供适当的输出。
在这里阅读更多关于深度神经网络的内容。
现在来看金融,人工智能作为一个整体在金融行业应用很多。例如,它有助于识别问题,如异常借记卡使用或账户中的巨额存款。这样,人工智能作为一个整体概念有助于将人们从欺诈活动中解救出来。此外,人工智能还用于根据市场中的各种因素,通过更有组织和更快的决策来使交易更容易和更好。
好吧!此外,让我们转向深度学习在金融领域的应用。
深度学习在金融领域的应用
正如我们上面提到的,深度学习是一个处理复杂输入并基于它们提供输出的概念。此外,它还有自我修正的潜力,因为它被设计得足够高效,不需要人工干预。因此,在数据被记录之后,该系统从它自己的成功和失败中学习。
在金融界,人工智能,或者更准确地说,深度学习,可以应用于几个重要领域。因此,让我们来看看深度学习的重要应用领域:
- 股票市场预测
- 过程自动化
- 分析交易策略
- 金融安全
- 机器人顾问
- 贷款申请评估
- 信用卡客户研究
股票市场预测
基于历史数据和当前市场状况的不同参数,深度学习中的神经网络预测股票价值。随着深度学习详细使用数据,并考虑隐藏层,预测的准确性会提高。因此,观察到利用深度学习,预测精度是最大的。
过程自动化
这项技术通过提供呼叫中心自动化、文书工作自动化和员工培训游戏化等来帮助处理流程。
分析交易策略
由于深度学习的算法可以同时分析成千上万的数据源,所以它比人类快得多。基于这样的分析,形成的交易策略,获利要多得多。
金融安全
在线交易的激增也增加了欺诈活动的发生率。随着深度学习算法在检测欺诈方面的出色表现,金融安全正在同时实现。
机器人咨询
机器人顾问只不过是为客户提供金融工具建议的算法。例如,推荐保险设施等金融产品,以及投资组合管理,即管理各种投资机会中的资产。
贷款申请评估
深度学习中的深度神经网络帮助银行根据学习到的批准和拒绝申请的模式来决定是否批准贷款申请。
信用卡客户研究
由于银行需要他们的客户利用他们的信用卡,深度学习系统有助于找到这样的客户。因此,为了识别正确的客户,该系统提供了更多有意义的问题,以放在信用卡申请上。
我们已经提到了具有深度学习的自动化已被证明是有益的大多数领域,但还有许多其他领域,如信贷审批、业务失败预测、银行盗窃等。
有几家顶级公司,如 CRISIL、Titan、JP 摩根大通、BNY 梅洛、Swiggy 等,都在使用深度学习来实现系统自动化。
此外,我们将看到深度学习的模型以及每个模型的意义。
深度学习的模型
将模型大致分类,有两种类型,即监督模型和非监督模型。这两个模型都经过不同的训练,并且具有各种不同的特征。
让我们首先取**个监督模型,**个监督模型,其中用特定数据集的例子进行训练。这些模型是:
- 经典神经网络
- 卷积神经网络
- 递归神经网络
经典神经网络
经典神经网络也称为多层感知器或感知器模型。这个模型是美国心理学家在 1958 年创造的。它也可以被称为一个简单的神经网络。这在本质上是奇异的,并且适应于具有一系列输入的基本二进制模式,以模拟人脑的学习模式。它的基本条件是由 2 层以上组成。
正如你所看到的,它只有一个带有几个隐藏层的输入层和一个输出层。
卷积神经网络
这是继经典神经网络之后的一个高级版本,因为它是为处理和计算数据输出方面的更高复杂性而设计的。
由于这些神经网络主要是为图像数据而构建的,它们应该最适合图像分类,但逐渐地,它们也能够处理非图像数据。
现在让我们讨论如何为图像建立卷积神经网络。因此,对于模型的构建,您首先将输入数据导入到模型中,这要经过五个步骤:
Steps for Building a CNN Image
- 输入图像——基本上,输入数据被视为一幅图像(以像素为单位)。
- 特征检测器和特征图-检测器基本上是图像特征的标识符。这些也被称为过滤器。特征地图由特征检测器或过滤器收集的信息组成。
Feature Detectors
- Max-Pooling -它使模型能够识别修改后的图像。因此,图像可以翻转、镜像、颠倒等。最大池有助于卷积网络通过获取不同区域的矩阵来识别图像的所有细节。这使得网络注意到它们都是同一图像的细节。
Max-Pooling
- 展平——在这一步中,数据被展平到一个数组中,以便模型能够读取它。现在,详细信息从矩阵转换或展平为垂直列。此后,输入通过人工神经网络进行进一步处理。
Flattening
- 完全连接——这是数据的隐藏层,然后将它考虑在内。这叫全连通数据层,和人工神经网络中的隐藏数据是一样的。在该步骤中,还进行误差函数的计算,该误差函数在人工神经网络中被称为损失函数。
Full Connection
递归神经网络
“递归神经网络”是六种神经网络中的一种,它以顺序的方式考虑数据。这种类型记住序列中的前一个信息,并有助于在序列的后面解释相同的元素。
例如,对文本的解释,它由单词或字符按顺序组成,以使读者理解它们的意图。
为了更好地理解递归神经网络,让我们看看视觉表示,并理解它支持的输入和输出类型:
Recurrent Neural Networks
好的,上面的图像显示:
- 一对一
这是从固定大小的输入到固定大小的输出处理信息的基本模式。例如,将图像分类到一个类别中。
- 一对多
这意味着处理一个信息并向显示器提供多于一个单词的输出。例如,将一幅图像作为输入,创建一个带有一句话的标题作为输出。
- 多对一
在这种情况下,输入作为一个单词的句子,被分类为积极或消极的情绪表达。随后输出需要预测下一个字符。例如,顺序输入(一个句子)和固定大小输出一个单词。
- 多对多
这意味着序列输入导致序列输出,但是输出被修改。例如,机器翻译,它导致机器将英语输入翻译成法语。
- 多对多
这是另一种类型的序列输入,它作为序列输出输出并被同步。例如,视频分类,其中视频的每一帧都被标记。
既然你现在已经清楚了深度学习的监督模型,让我们继续前进到**非监督模型。**这些模型只有给定的输入数据,没有任何可学习的设定输出。这些模型是:
- 自组织地图
- 玻尔兹曼机器
- 自动编码器
自组织地图
som 包含无监督的数据,通常会减少模型中随机变量的数量。在自组织映射中,输出维度通常是二维的。因此,如果我们有 2 个以上的输入特征,输出将下降到 2 维。在这种情况下,每个连接输入和输出节点的突触都有一个权重。现在,最近的节点被称为 BMU 或最佳匹配单元,SOM 将其权重移动到更接近 BMU 的位置。节点离 BMU 越近,其权重变化越大。
玻尔兹曼机器
现在,您一定已经注意到,在以前的模型中,所有的模型都朝着一个特定的方向,即从输入到隐藏层再到输出。即使是 SOM,作为一个无监督模型,也与监督模型中的所有其他模型走向相同的方向。
但是,波尔兹曼机器的情况就不一样了,因为它们不遵循特定的方向。正如您在下面模型的可视化表示中所看到的,所有节点都以圆形相互连接。
这里,
h ->隐藏层
v->视觉层
之所以如此,是因为玻尔兹曼机器可以生成模型的所有参数,而不是固定的输入。该模型被称为随机模型,而其他模型是确定性模型。
自动编码器
自动编码器基本上是简单的算法,用于显示与输入相同的输出。这种机制压缩输入数据,然后从中重构输出。
例如,作为输入的图像帮助系统学习特定的图形或结构。
因此,输入被压缩成几个类别。在自动编码中,数据在以下函数的帮助下被压缩:
- 数据特定,这意味着该系统一旦用人脸训练过,就不能很好地处理建筑物的图像。
- 自我表现者,即,如果有适当数量的数据用于训练,那么系统将在该特定类型的输入上保持良好表现。
在下面的视觉表示中,输入 X 是图像输入,在系统中编码器和解码器的帮助下,它呈现输出 X’。这里,输出与输入相同,因为系统存储了相同的特定特征。
在当今时代,用于数据可视化的自动编码的两个概念被称为数据去噪和降维,是已知的最佳实际应用。
好了,现在让我们来看看深度学习在金融领域的 python 代码应用。
深度学习在金融中的应用
在下面的代码中,我们试图使用一组特征来预测市场运动的方向。因为它可能是上升趋势,也可能是下降趋势,这是一个二元分类问题。
一个牙医和一个兼职交易员——Shubhrabaran 的故事
原文:https://blog.quantinsti.com/dentist-part-time-trader-story-shubhrabaran/
我们确信,并不是每天你都能了解到那些追求自己兴趣的真正杰出的人,他们已经有了 10 年以上的职业生涯,并且过得很好。一个牙科医生对交易产生了兴趣,倾向于算法交易——并且今天独立地创造和交易,他的旅程怎么样?
这就是 EPAT 大学校友 Shubhrabaran Das 博士的故事。他在不断增长的算法交易领域发现了潜力,不断追求,并实现了他的目标。他自豪地获得了 2018 年年度美容牙医的称号。
如果你觉得有趣的话,这就是从牙齿到虱子的旅程!
我们很高兴他选择与我们分享他的故事。我们的讨论是这样进行的。
嗨,Shubhrabaran,告诉我们你自己的情况
嗨!我是 Shubhrabaran Das ,我的职业是牙科医生。我来自特里普拉邦的阿加尔塔拉,业余时间喜欢看电影,对交易充满热情。我在特里普拉邦有 2 家诊所,我在做兼职交易。
在特里普拉邦完成学业后,我选择了牙医的职业,并在钦奈开始了我的学习。我在加尔各答的一位资深牙科医生手下工作了几个月。经过一段时间,我的工作经验已经超过 10 年,并且还在继续。
在新冠肺炎疫情的现状下,我的工作时间已经减少到平时的一半,同时我也在提高我的交易技巧。
牙科医生和算法交易员——这是一个有趣的组合。你能给我们讲讲吗?
在我知道交易之前,我是一名牙科医生。我对金融和交易的兴趣并不是一开始就有的。在我职业生涯的几年中,一个关于金融和投资的想法闪过我的脑海。我也尝试过投资不同的渠道,但结果并不令人满意。
我知道交易,但从未尝试过。吸引我的是回报——学习如何从市场中学习和赚钱是非常有利可图的。我以前从未想到过它。虽然我想交易,但我一直把它作为副业来做,而且我还在继续这样做。我用了一个交易软件来自动化我的策略,但是它把我限制在某些特定的策略上。结果并不好。
我经常参加各种网上研讨会和交易研讨会。在 Zerodha 的一次网络研讨会上,他们的嘉宾——一位“算法交易者”分享了他的交易经验。他谈到了“市场微观结构”、“做市”等短语。这激起了我的兴趣。这是我第一次接触算法交易。
我开始搜索大量的免费资源,观看无数的 YouTube 视频,并开始跟踪许多声称跟随他们的交易方法会获利的人。我记得尝试了很多他们的知识,但都失败了。但这是我所知道的大多数学习者的情况。
我很想知道如何让我的交易策略自动化。于是,我开始在网上搜索学习 Algo 交易的课程。不知不觉中,我被屏幕上一则关于算法交易(EPAT)高管课程的广告惊呆了。出于兴趣,我登陆了 QuantInsti 网站。
经过研究,并与那里的优秀人士交谈,我注册了。这个决定为我打开了一个全新的算法和交易世界。相信我,当我这么说的时候,我从来不知道我还学到了这么多。EPAT 向我介绍了很多细节。
我希望接触更广泛的交易领域,我也想学习如何将机器学习和人工智能应用到我的交易中。对于 EPAT,我做到了。
你能告诉我们你在 EPAT 的学习经历吗?
在 EPAT 的学习是非常有见地的,它打开了我的心灵和无数交易机会的大门。我喜欢周末授课的方式。我总是在一周内花更多的时间自学。
得知我可以编写自己的交易策略,进行自己的交易,这很令人兴奋。我知道统计学,但不知道它在交易中的应用。我从来不知道编程。
一个人可以学习和掌握所有的信息,但 EPAT 教它的实际应用。它测试你,确保你在完成 EPAT 的时候达到你的目标。
对于参加 EPAT 大学的期末考试,我有点激动,原因很简单,在经历了 10 年辉煌的职业生涯后,我终于可以参加了。但我很高兴我做到了。我很高兴也很自豪,我过得很好,获得了“EPAT 优秀证书”!
我也是 LinkedIn 上 EPAT 社区的一员,我很高兴在它开始的时候成为第一批人之一。我很高兴与过去和现在不同批次的人有过接触。
我在闲暇时间交易漂亮的期权,我喜欢这样。今天,当我的病人在我的笔记本电脑上浏览我的交易时,我觉得很有趣——在市场活跃的诊所里。接下来是关于市场、自动化和算法交易的有趣对话。有时候,他们会非常着迷地了解昆汀斯提和 EPAT 是如何帮助我实现这一目标的。
你认为 EPAT 最大的特点是什么?
虽然 EPAT 有许多我可以描述的特色,但最好的,我觉得对我,甚至对所有的以巴人来说最重要和最有益的,是他们提供的极好的支持。
EPAT 在我有限的知识范围内帮我理清头绪,填补空白。它引导我理解这一切是如何组合在一起的——就像一幅完整的图画。支持团队让我不断学习,让我坚持下去。
对我的支持经理 Dhiraj 特别大喊一声。他总是确保我所有的疑问都得到解答。我培养了这种信心,因为即使是我觉得很傻的最简单的疑问,迪拉吉和所有的教职员工都会非常专业地解答。
你对有抱负的算法交易者有什么建议吗?
永远不要停止学习。你学得越多,你就越渴望学到更多。跟上最新发生的事情,保持你的知识增长。
我们感谢你,Shubhrabaran 抽出时间与我们联系,分享你的 Algo 交易之旅。你对 EPAT 的赞誉也让我们受宠若惊。我们祝愿你在个人和职业生活中一切顺利。
在寻求学习算法交易的过程中,你需要正确的知识和必要的技能,算法交易(EPAT) 中的执行程序,帮助你实现你的学习目标。EPAT 是一门综合性课程,涵盖了广泛的主题。今天和我们连线了解更多关于 EPAT 的信息。
免责声明:为了帮助那些考虑从事算法和量化交易的人,这个案例研究是根据一个学生或 QuantInsti 的 EPAT 项目的校友的个人经历整理的。案例研究仅用于说明目的,并不意味着用于投资目的。EPAT 项目完成后所取得的成果对所有人来说可能并不一致。
是什么驱使人们走向衍生品市场?
无论您是否听说过金融市场中的衍生品,或者您对该术语是否陌生,本文都应服务于您的目的。为了了解衍生品市场以及围绕该市场的更多方面,让我们对本文的内容进行概述。
因此,本文涵盖了:
- 什么是衍生品市场?
- 衍生品市场的运作
- 股市中的衍生品是用来做什么的?
- 衍生品有危险吗?
什么是衍生品市场?
为了了解衍生品市场,我们必须首先知道什么是衍生品。衍生品不过是从资产、指数或利率中获取价值的合约。而且,这种资产或工具通常被称为“基础实体”。在某些股票的波动性比其他股票更大的情况下,衍生品主要用于保险,也用于农民保险他们未来农产品的价格。这就是为什么衍生品被称为市场起伏时期的减震器。
衍生产品市场这个术语意味着金融市场,在这个市场中人们可以得到衍生产品的期权以供选择。谈到市场规模,根据 BIS ,OTC(场外)衍生品名义金额于 2019 年 6 月底升至640 万亿美元。这高于 2018 年底的 544 万亿美元,也是 2014 年以来的最高水平。这标志着自 2016 年底以来明显上升的趋势仍在继续。
尽管如此,所有合同的总市值(实际)约为 12.7 万亿美元。重要的一点是,许多分析师认为名义价值(票面价值)和市场价值(实际价值)之间存在差异。
场外衍生品的总市值,加上正值和负值,也从 9.7 万亿美元上升到 12.1 万亿美元,主要是由于欧元利率衍生品合约的增加。
接下来,我们将讨论一些常见的衍生产品,如远期、期货、期权和掉期,人们通常投资这些产品是为了在不利的价格变动情况下为自己投保。
此外,我们将详细讨论我们提到的所有衍生合约,以及最流行的类型。一些常见的衍生合约有:
转发
众所周知,远期合同是双方(个人或实体)在未来某一特定时间买卖任何资产(以特定金额)的合同。对于远期衍生品,人们有两种立场,一种是做多,另一种是做空。例如,在双方中,决定在未来买入的一方持有多头头寸,而决定在未来卖出的一方持有空头头寸。
这意味着持有多头头寸的一方预测未来价格会进一步下跌,而持有空头头寸的一方则认为未来价格可能会上涨。此外,未来商定的价格被称为交货价格。
期货
在期货合同的情况下,购买和出售标准化数量和质量的特定资产的双方在同一天商定价格(期货价格)。但是,交货和付款都发生在未来确定的日期。与远期交易一样,在期货交易中,决定在未来买入的一方持有多头头寸,而决定在未来卖出的一方持有空头头寸。
在期货交易中,合同恰巧在被称为期货交易所的交易所进行谈判,以便在双方,即买方和卖方之间保持一个合法的中介。
选项
在期权的情况下,它是一个暗示所有者或买方拥有在特定日期或之前以特定的执行价格购买或出售基础资产的权利(但不是义务)的合同。在这种情况下,执行价格是固定价格或预定价格。如前所述,合约价值来源的资产、指数或利率被称为基础资产或工具(通常称为基础实体)。为此,买方必须向卖方支付溢价,有两种选择:
- 看涨期权——该合同意味着所有者有权以执行价格购买标的资产或工具。
- 看跌期权——这意味着所有者有权以执行价出售标的资产或工具。
互换
互换是另一种衍生品,是双方之间的合同,双方同意交换对方基础资产或工具(合同)的现金流。交换发生在未来的特定日期。在这种情况下,基础资产或工具的类型决定了各方的利润。例如,在涉及两种债券的情况下,利润是定期支付利息或息票。这些交易所被称为掉期交易的分支。最常见的互换类型是利率互换、商品互换、货币互换和信用违约互换,你可以在这里阅读。
要点:期权是最广泛使用的衍生品。看涨期权和看跌期权都起着重要的作用。
接下来,我们将看看衍生品市场是如何运作的?
衍生产品市场的运作
好的,正如我们所知,它在各种不同合约的帮助下进行风险管理,我们将简要回顾一下它的历史,以及它工作的其他方面。衍生品起源于 12 世纪欧洲的农民和交易商试图对冲他们的产品,以避免不利的价格波动。
衍生品市场是基于在一些不利的市场情况下转移风险的原则。
以下是衍生品市场运作中的一些"关键参与者":
- 有两种主要的市场参与者,一种是对冲基金(T1)或 T2 对冲者(T3),另一种是 T4 投机者/交易者。
套期保值者有助于转移未来不利价格变动的风险。
投机者根据历史数据帮助预测未来的价格变动。
- 第三类市场参与者是套利者,他们通过利用一种产品在两个不同市场的价格差异来防范风险。在这种情况下,买方可以在一个市场以较低的价格挑选一种产品,然后在另一个市场以较高的价格出售。
现在,我们刚刚讨论了在确保衍生品得到充分利用方面发挥关键作用的市场参与者,让我们进一步看看衍生品是如何交易的。因此,有两种主要的衍生品交易方式:
- 柜台交易
- 在交易所
场外交易的衍生品不受监管。尽管不受监管,场外交易是一种被各种交易者选择的方法。毫无疑问,这种方法风险更大,因为它不受控制。然而,在进入衍生品市场之前,交易者/投资者必须了解所有相关的风险,以便能够迅速采取行动。此类风险可能与交易对手相关(因为没有法律干预),与基础资产相关(如其价格变动)并涉及衍生产品的到期日。
然而,交易所的衍生品是受监管的,因此风险要小得多。然而,在投资衍生品时,我们总是建议要小心,因为它们无疑是一种常见的交易工具,但也一直被许多争议所包围。例如,导致 2008 年金融危机的因素之一据说是“过多的对冲”。
这里的结论是,一旦你很好地意识到并掌握了该做什么和不该做什么的知识,衍生品就会非常有用。我们将讨论一些预防措施和一个非常常见的问题“衍生品危险吗?”在文章的后面。
现在,让我们先来看看股票市场上的衍生品有什么用途?
股市中的衍生品是用来做什么的?
正如我们所知,衍生工具主要用于股票市场投资的风险管理。不同类型的衍生合约以不同的方式运作,因此,它们在不同的情况下是有帮助的。我们现在已经知道,最常用的衍生工具有四种,即远期、期货、掉期和期权。每一种都有自己的价值,取决于你在寻找什么样的风险管理措施。市场上存在一些不确定性,但多亏了衍生品,它们可以得到解决。
在波动股票的情况下,套期保值起着重要的作用。这是一个简单的术语,意思是借助衍生合约将你所有的投资放在不同的地方。对冲有助于消除与投资基础资产或工具相关的风险。在这种情况下,衍生品合约有助于投资者投资两只不同的股票,以抵消波动性更大的股票可能带来的潜在损失。在对冲中有用的衍生合约的一些例子是股票、远期、互换和期权。
让我们在这里举一个例子,假设你,作为股票交易员,觉得 X 公司的股票价格在下个月可能会上涨。这个预测会让你想投资 x 公司的股票。同时,你想保护自己免受任何不可预见的损失。
在这种情况下,你可以投资同等价值的 Y 公司的股票。比方说,你选择 Y 公司股票的期货衍生合约,并同意在未来某个特定日期以当前价格买入。如果股票价格在指定日期上涨,你将从合约中获利。而且,如果 X 公司的股票价格在未来下跌,你的损失将被投资 Y 公司股票的收益所抵消。
此外,你可以进入两个不同的市场,在衍生合约的帮助下,你可以设法抵消潜在的损失和收益。此外,如果两种或所有不同的投资在市场上获得动力,衍生品可以帮助你获利。
让我们来看一些现实世界中衍生合约有用的例子。我们将看看目前的情况。
衍生产品有助于冠状病毒爆发的真实例子(现状)
在目前的情况下,由于冠状病毒的爆发,我们看到 JP 摩根和花旗集团等银行对衍生品的投资激增,这些银行以“大吃大喝”而闻名。
根据彭博的说法,“全球股票市场的历史性恐慌为一些世界上最大的投资银行带来了财富。
知情人士称,摩根大通&公司和花旗集团今年迄今为止,与 2019 年同期相比,股票衍生品交易收入增加了约 5 亿美元。随着投资者争相押注股市走势并保护自己的持股,交易量大幅上升。"
在 MoneyControl 的另一篇新闻中,提到“自 2 月份以来,印度基准指数一直非常疲软,主要是因为担心冠状病毒爆发的影响。
报告补充称,2010 财年迄今,股票衍生品交易额增长了 43%。现金和衍生品市场的总成交量上升了 39%。
由于从 4 月 1 日起税收结构的变化,股息分配税(DDT)的征收增加了 2%。"
在阅读了 2020 年 3 月的当前情景后,应该会清楚衍生品如何以及何时被用于风险管理。
现在,让我们来谈谈衍生品的危险,并找出一些该做和不该做的事情。
衍生品有危险吗?
在这一节中,我们将讨论一些众所周知的与衍生产品有关的衍生产品合同的风险。签订此类合同时,有一些非常常见的“风险”可以避免。其他的仅仅依赖于你的评估、预测的准确性和其他相关方的有效性。
我们将提前讨论一些风险,以及知名投资者沃伦巴菲特和前印度央行行长拉古拉姆·拉扬对这些风险以及如何避免这些风险所做的陈述。
让我们来看看这些风险,因为它们与以下方面有关:
- 杠杆作用
- 第三方
- 巨额投资
- 虚幻的安全
杠杆作用
如果你,作为一个交易者,用借来的钱使用衍生品,你需要对用借来的钱投资的风险做好心理准备。有几个投资者从投资中赚了一大笔钱的例子,但也有他们损失惨重的例子。这是因为基础资产或工具的价格波动。正如维基百科所提到的,你可以看到一些实体在衍生品合约中因使用杠杆而损失巨大的例子:
- 美国国际集团(AIG)在前三个季度因 T2 信用违约互换(CDs)损失了超过 180 亿美元。
- 2008 年 1 月兴业银行因滥用期货合约损失 72 亿美元。
- 失败的基金 Amaranth Advisors 损失 64 亿美元,该基金在 2006 年 9 月价格暴跌时做多天然气。
- 1998 年失败的长期资本管理基金损失了 46 亿美元。
第三方
这意味着,如果您没有对交易中涉及的交易对手进行有效性检查,您可能会面临遭受损失的风险。私下或通过私下协议达成的衍生产品合同可能不像通过“在交易所”等法律干预达成的协议那样无风险。例如,带有法律干预(在交易所)的股票期权需要风险方在交易所存入一定金额,以确保其在遭受损失时的支付能力。此外,在互换的情况下,交易所对双方进行信用检查。但是,在私人协议的情况下,可能没有进行任何风险分析的基准。
巨额投资
每当涉及巨额资金时,总有损失大笔资金(即全部投资)的危险。如果你将收入的很大一部分用于投资,你所承担的风险可能是你无法补偿的。正如著名投资家沃伦·巴菲特在伯克希尔·哈撒韦的 2002 年年度报告中提到的,衍生品可以成为“金融大规模杀伤性武器”。因此,如果对衍生合约的投资不明智,它们可能会导致一个巨大的问题,而不是帮助规避风险。这是投资衍生合约时需要进行准确分析的主要原因
虚幻的安全
这意味着对冲概念提供的安全性可能会转向交易者,并可能成为一种虚幻的安全,以防整个市场在发生巨大危机时下跌。在这种情况下,整个市场跌至低点,没有股票仍然盈利足以弥补投资。
根据维基百科,国际货币基金组织(IMF) 前首席经济学家拉古拉姆·拉扬提到“这些公司(投资基金)的经理们很可能已经弄清楚他们持有的各种工具之间的相关性,并相信他们已经对冲了。然而,正如 Chan 等人(2005 年)指出的那样,俄罗斯政府债务违约后 1998 年夏季的教训是,正常时期为零或负的相关性可能在一夜之间变为 1,这种现象被他们称为“相位锁定”。对冲头寸“可能在最糟糕的时候变得不对冲,让那些误以为自己受到保护的人遭受重大损失”。
现在,真正的问题是,衍生品合约是否糟糕到可以对交易员的业务造成严重破坏,还是情况可以得到控制?
因此,要回答这个问题,我们先来看看华纳·巴菲特后来发表的自相矛盾的声明,他在声明中提到,如果交易者得到足够的信息并采取正确的措施,衍生品并没有那么糟糕。
根据 2011 年金融危机调查委员会的说法,沃伦·巴菲特说,“我不认为他们本身是邪恶的……拥有一份期货合同或类似的东西并没有错。”据《T2 时报》报道,巴菲特现在表示,衍生品的真正问题在于银行和“不知情的投资者”的过度投资他认为,衍生品可以为包括伯克希尔·哈撒韦公司在内的公司增值,只要这些公司的领导人保持克制,持有“有限的数量”
完美!在本文中,这些都是关于衍生合约的。让我们看看我们讨论的内容。
结论
在本文中,我们讨论了衍生合约的主要方面,它们的定义,规模和类型。然后,我们继续学习衍生品市场的运作,该市场的主要参与者以及投资衍生品的两个平台。
此外,我们还讨论了衍生合约的用途以及与之相关的风险。此外,我们还看到了一些当前的情景,作为帮助我们了解在危机时刻如何使用/帮助我们的例子。
最后但同样重要的是,我们看到了如何通过做出明智的决策来避免这些风险,并使它们只对我们有利。
免责声明:本文中提供的所有数据和信息仅供参考。QuantInsti 对本文中任何信息的准确性、完整性、现时性、适用性或有效性不做任何陈述,也不对这些信息中的任何错误、遗漏或延迟或因其显示或使用而导致的任何损失、伤害或损害承担任何责任。所有信息均按原样提供。
使用测辐射热计检测 twitter 上的机器人
原文:https://blog.quantinsti.com/detecting-bots-twitter-botometer/
在这篇博客中,我们将了解什么是机器人,以及它们如何扭曲你的交易策略中使用的情绪分析。我们将讨论以下主题:
- 为什么我们要识别一个机器人?
- 验光仪
- 在 Twitter 上识别机器人
当我们根据市场情绪进行交易时,我们需要从 Twitter、路透社、彭博和 Webhosie 等新闻来源获取数据。虽然阅读完整的文章并评估他们的情绪可能很困难,但估计一条推文的情绪并不复杂。
但在你评估一条推文的情绪之前,你需要知道这条推文是机器人的自动回复还是人类发出的。
你可能会问为什么这是相关的?
为什么我们要识别一个机器人?
这是相关的,因为你需要知道机器人在做什么,这反过来会告诉你 Twitter 上特定股票的情绪是如何被操纵的。当我们计算特定股票的 Twitter 情绪时,我们会识别并删除那些由 bot 用户发出的推文。这将给予真实的情感而不被操纵。当与其他技术指标一起使用时,这种真实情绪可以成为一个非常强大的指标,用来预测趋势的顶部和底部。
辐射热测定器
在 python 中,我们使用名为 botometer 的库来了解特定的 tweet 是否是由机器人发出的。botometer 库使用一种机器学习算法,该算法在数万个带标签的数据上进行训练。该算法的输出是 0 到 1 范围内的概率,其中 1 表示 twitter 帐户由机器人管理。
Botometer API 将用户 id 作为输入,然后提取与该用户相关的 1200 个特征来计算分数。Botometer 对以下类别给出单独的分数:
- 网络功能
- 用户功能
- 朋友功能
- 时间特征
- 内容特征
- 情感特征
让我们来讨论其中的一些特性。
网络功能
用户的网络特征包括用户过去发推的转发、提及和标签信息。
例如,如果用户只转发那些特定句柄的推文,那么该用户很可能是一个机器人。
用户功能
这包含特定于用户的信息,如用户名、语言、位置、帐户创建日期等。,一般来说,僵尸工具不包含这些信息。如果他们这样做,那将是一些胡言乱语。
时间特征
类别时间特征分析推文率、推文和转发的时间模式等。例如,如果该帐户在相同的时间间隔内发布推文,那么它很可能是一个机器人。
选举推特:识别机器人
目前,印度正在进行大选。而且推特上有很多机器人支持他们的政党。知道哪些推文是由机器人发出的很重要。但在此之前,让我们检查一下 botometer 是否正常工作。让我们以一个已知的 twitter 处理真正的政治领导人,并检查它是否预测正确。
首先,我们使用如下所示的 pip install 安装 botometer 库,然后实例化一个 botometer 对象。
!pip 安装 botometer
现在,让我们试试美国总统唐纳德·特朗普先生的已知手柄,看看 botometer 会说什么。
@realDonaldTrump 是美国总统的推特账号。获取该句柄的 bot 分数后,我们可以使用以下命令打印并检查它。
所有的机器人得分值在 0-1 的范围内都非常低,这表明用户很可能是人类。我们还可以使用下面的命令获得最终的分数或总数。
由于多安德·特朗普先生的大多数推文都是英文的,我们可以将英文 0.03 分(0-1 分)视为最终指标。一般来说,我们认为超过 0.6 的分数表明一个帐户被机器人控制。因此,如果你们中的任何人怀疑@realDonaldTrump 账户发出的推文是否真的是总统本人发出的,那么这些分数现在应该可以解决这个疑问了。
现在让我们回到印度大选,看看两位顶级候选人的推特账号表现如何。
首先,让我们来分析一下印度现任总理纳伦德·莫迪。他的推特账号是**@纳伦德拉莫迪**
他的机器人分数是
由于纳伦德拉·莫迪先生的一些推文是印地语,我们需要考虑这种情况下的普遍分数。其再次非常低,指示人类用户。
现在让我们对主要反对党总理候选人拉胡尔·甘地先生进行同样的测试。
同样,这里的分数很少表示人类用户。这个练习的目的是检查由 botometer 所做的预测的健全性,它们看起来显然是令人满意的和预期的。
但是我们还没有确定这些领导人的机器人追随者。我们可以通过使用 tweepy 库导入 Twitter IDs,然后在每个 Twitter IDs 上运行 botometer 检查来做到这一点。分离机器人和计算市场情绪的过程似乎是一项非常困难的任务,但通过适当的预处理,它可以很容易地完成。在我们关于交易中的情绪分析的新课程中,我们将向您展示如何使用条件语句获取与股票相关的推文,然后执行预处理以识别和删除不相关的推文。然后,我们产生市场情绪,并在此基础上制定交易策略。
结论
botometer 库是专门为分析 Twitter feed 而构建的。在 twitter 数据被用于创建交易策略之前,它是 Twitter 数据预处理中非常重要的库。衡量市场情绪是一项非常困难的任务,它需要各种来源的数据。所有的数据不能以同样的方式处理。所以,你需要开发新的技术来预处理来自博客和新闻文章的数据。
报名参加我们的新课程: 交易中的情绪分析 ,您可以学习如何预处理不同类型的数据以及情绪分析中涉及的其他重要步骤
建议读数
- 情绪分析在交易中的应用:它在哪里起作用?
- 建立趋势跟踪策略的五个指标
免责声明:股票市场的所有投资和交易都有风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。
开发和回测你的交易策略-演示
原文:https://blog.quantinsti.com/develop-backtest-trading-strategy-webinar-28-august-2018/
https://www.youtube.com/embed/qLIgx0S8D0w?rel=0
IST 时间 2018 年 8 月 28 日星期二下午 6 点|格林威治时间下午 12 点 30 分|格林威治时间晚上 8 点 30 分
会议大纲
在本次网上技术交流讲座中,您将学习一步一步使用技术指标和投资组合管理技术的交易策略开发方法。我们将在 Blueshift 上展示整个策略开发和回溯测试过程,blue shift 是 QuantInsti 的一个免费回溯测试平台。
- 战略发展的系统方法
- 蓝移简介
- 带技术指标的阿尔法策略
- 管理战略组合
- 问答环节
演示文稿
您可以点击此处查看本次网络研讨会的 powerpoint 演示文稿:
//www.slideshare.net/slideshow/embed_code/key/mdbF4AppXhz6vR
Develop And Backtest Your Trading Strategy - Demo - Presentation from QuantInsti
演讲人
Prodipta Ghosh(QuantInsti 副总裁)
Prodipta 是一位经验丰富的 quant,目前作为副总裁领导 QuantInsti 的 Fin-tech 产品和平台开发。
他在银行业工作了十多年,在孟买和伦敦的德意志银行的交易和结构部门担任过各种职务,并在渣打银行担任企业银行家。在此之前,Prodipta 作为科学家在印度国防 R&D 组织(DRDO)工作。
关于蓝移
Blueshift 是一个全面的交易和策略开发平台,让你更专注于策略,而不是编码和数据。其基于云的回溯测试引擎可以免费帮助你开发、测试和分析交易策略,并对其进行微调。它整合了涵盖股票、期货和外汇的高质量分钟级数据。用户完全拥有他们在这个平台上开发的所有策略的知识产权。
进入算法交易的网络开发者|克兰蒂的故事
原文:https://blog.quantinsti.com/developer-algorithmic-trading-epat-success-story-kranti-potluri/
对知识的渴望,对算法交易领域的专注和热情——这是克兰蒂·波特鲁里的描述。
他的旅程令人难以置信,从工程开始,到短暂的 IT 职业生涯,然后融入金融领域。克兰蒂今天已经成功地在算法交易领域建立了自己的地位,这个故事是关于他是如何做到的。
嗨,克兰提,告诉我们你自己的情况吧!
嗨!我叫 Kranti Potluri ,我是一名 IT 毕业生,在 IT 行业做了一年半的 Web 开发人员。
新冠肺炎疫情是一个不幸的事件,许多人失去了工作。在家工作让人们重新思考他们的职业道路,我的许多朋友都转行了。
我也是软件行业的前端开发人员,这给了我思考交易的时间。在家工作的条件让我明白了未来 5-10 年我更倾向于做什么。
我一直对交易和股票市场感兴趣,并辞去了工作,致力于发展全职 it 职业生涯。我完成了 EPAT,目前在算法交易领域站稳了脚跟。我也一直在交易 Nifty 和银行 Nifty 期权。
你是如何从软件领域转向金融领域的?
我是一名程序员,毕业于 CBIT,一直对自动化相关的东西感兴趣。以前做机器学习、数据科学等相关的课程。我以前做的工作类似于预测。
在学习中,我意识到 ML、编码、Python 是如何相互联系的。在我看来,虽然我们选择了这些工具,但我们必须了解我们应该在哪里使用这些工具,即它们的应用。我们可以在医学、军事、警察、政府等领域使用这些技术。
股票市场和复利的整个概念真的让我很感兴趣。结合股市,ML 和编程,algo 交易落入它们之间的甜蜜点。我就是这样想把我的职业生涯转向交易的。
我最近读到,25%的 STEM 相关课程的毕业生进入了金融行业,也许这就是为什么美国有强大的金融支柱。
我的第一个项目是自动化拉米纸牌游戏。那时我甚至不知道 algo 交易。
我朋友的父亲是卖期权的交易员。以我对 ML 和编程的背景和知识,我认为这是可以自动化的。
在研究中,我发现了算法交易领域。我渴望与这个行业中有经验的人一起工作,从而探索各种职业机会,而不仅仅是辞去工作,成为一名零售交易员,从事自己的交易。
站在定量分析师的角度,我意识到没有必要去读 MBA。只要有正确的知识和动力,任何人都可以进入。这让我来到了 EPAT。
你是怎么学会算法交易的?
当这个思想的种子进入我的脑海开始学习人工智能(AI)和机器学习(ML);我立刻开始研究寻找这方面的课程。
在线课程提供认证,帮助实现目标并进入公司。今天,知识不仅仅局限于印度理工学院或 MITs,在这个时代,任何人都可以教任何人。我真的很相信这种在线学习和在线培训的理念。
我没有从书本或网站上学到什么,它们只能让你学到这么多。但我开始了解股票市场——一级市场、二级市场,以及为什么所有这些在社会中如此重要,等等。
我希望以一种正式的方式学习这些概念以及更多。我看了教算法交易的课程,然后我发现了 EPAT。没有其他球场像 QuantInsti 一样——我找不到任何地方可以与之相比。
在加入之前,我对 EPAT 做了很多研究,和 QuantInsti 的团队谈过,我决定加入。有了这种认可,几乎每个金融公司都知道 QuantInsti 和他们提供的 EPAT 认证。
我离开了之前工作的公司,专注于 EPAT。这对其他人来说可能不是一个好的决定,可能会有所不同。这是我职业生涯中的一次彻底转变,我不想在周末或下班后半心半意地做这件事。我花了 6 个月的时间 24x7 全天候为 EPAT 服务。
如果你以职业为导向,那么深入了解你在做什么是很重要的。这有助于建立你的简历,展示你的个人资料,给招聘人员留下深刻印象。
由于我是 IT 出身,我也没有任何金融方面的经验可以展示。但是,在我的个人资料中有一个 EPAT 认证为我的职业生涯提供了急需的推动力。通过我在这里的项目,我有机会与 Vishal Mehta(创始人,市场扫描器)一起工作,然后我通过安置单元在 ARB 贸易集团找到了一份工作。
你最喜欢 EPAT 的哪个特色?
我真的很感激 EPAT。如果不是这样,我的职业生涯可能会走向完全不同的方向。我甚至把它推荐给我的朋友,他们已经加入了最新的一批。
在 EPAT,我真的很喜欢:
- 教员——我可以联系到专家人才库中的任何人,他们都是合格的导师和教员。我可以问他们问题并得到答案,作为一个 EPATian 人,我可以接触到他们。
- 录制的讲座-就我个人而言,我喜欢观看录制的讲座,因为我不必连续坐 3 个小时-我喜欢花自己的时间与他们在一起,暂停和学习,在互联网上搜索术语,做笔记等。
- 结构——一切都是预先安排在课程中的——从学习材料到位置,我只需要做课程中的事情。
- 上课的方式
- 作业和考试
- Python 和 ML——我在这方面有优势,因为我有这方面的知识
作为一名开发人员,你是如何在 Algo Trading 找到工作的?
我去 EPAT 的目的是建立我的投资组合和简历,然后进入一家好公司。因此,对我来说,理解 EPAT 的布局特征是如何工作的非常重要。
在加入 EPAT 之前,我与 EPAT 安置团队讨论了我的工作要求、公司类型、提供的个人资料,以及我在这个领域的位置,团队对此非常合作。尤其是对于我这样没有行业经验的人来说。他们给了我一次机会,告诉我应该期待什么,什么样的公司会提供不同的角色。
明白这一点后,为自己制定一个计划是很重要的。我的策略是在做这门课的同时做这个项目。我会参加每一次讲座,学习并同时在我的项目中实施它——在某种意义上,我变得更加以项目和工作为导向。
从加入 EPAT 的第一天起,在我在那里的 6 个月里,安置团队一直给我发电子邮件,内容是:
- 工作机会
- 什么样的公司提供工作机会
- 他们提供什么样的工作角色
- 他们的期望,以及
- 申请这些角色的先决条件
这有助于我了解招聘人员实际上在寻找什么,提供的各种待遇等等。
即使在完成课程后,EPAT 的每个人都非常支持我,给我 2-3 个月的时间来完成我的项目——让它变得更强大。完成项目后,我开始申请公司。
安置小组非常乐于助人!
- 他们给我介绍了适合我的公司和角色
- 他们帮我寻找适合我的角色
- 他们对面试中哪些进展顺利,哪些可以改进的反馈
所有这些帮助我反思自己,并在两个月内帮助我在算法交易领域找到了一个好的角色。
你对那些想进入算法交易的人有什么建议?
对你正在做的事情和你为什么要做这件事有一个清晰的目标是很重要的。你应该有问题的答案:
未来几年你打算去哪里?
你将如何着手实现你想要实现的目标?
金融现在正在蓬勃发展,许多公司都在这个领域积极招聘,金融科技也越来越多。
与 IT 相比,这一金融领域并不广为人知,例如,算法交易在印度正呈指数增长。对于任何想进入这个领域的人来说,这是一个好时机。
算法交易有很多机会,参加 EPAT 认证会让你的旅程更容易。我发现 EPAT 是众多课程中的一门,没有其他课程能提供 EPAT 所能提供的。它只需要你的时间和努力,安置小组会照顾你的工作前景。
谢谢你分享你的旅程,克兰提。你鼓舞了所有那些希望成为算法和量化交易这个快速增长和有利可图的领域的一部分的人。作为 EPAT 大学的校友,我们期待与你保持联系。
如果你也想用终生的技能来武装自己,这将永远帮助你提升你的交易策略。这门 algo 交易课程的主题包括统计学和计量经济学、金融计算和技术、机器学习,确保你精通在交易领域取得成功所需的每一项技能。现在就报名 EPAT 吧!
免责声明:为了帮助那些正在考虑从事算法和量化交易的人,这个成功的故事是根据 QuantInsti EPAT 项目的学生或校友的个人经历整理的。成功案例仅用于说明目的,不用于投资目的。EPAT 方案完成后取得的成果对所有人来说可能不尽相同。T3】