数字货币量化交易策略—基于移动平均线MA
本文介绍金融市场中的量化交易策略之移动平均线MA策略。
一、概念
移动平均线,Moving Average,简称MA,MA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根MA,用以观察证券价格变动趋势的一种技术指标。
移动平均线是由著名的美国投资专家Joseph E.Granville(葛兰碧,又译为格兰威尔)于20世纪中期提出来的。均线理论是当今应用最普遍的技术指标之一,它帮助交易者确认现有趋势、判断将出现的趋势、发现过度延生即将反转的趋势。其图如下:
均线最主要目的是用来判断趋势通常是预期市场现在跟未来可能的走势。
二、计算方法
移动平均线代表的是一种算术平均线,把一段时间周期内的价格相加,除以周期频率。
移动平均线=将N天的收盘价加总后再除以N,即得到第N天的算术平均线数值。
N天:只计算交易日(有开盘的日子、没开盘不算)
时间单位:要注意的是,有时候不用日资料,也会使用周资料、小时、分钟为时间切分单位,这些也都能够画出均线。简单来说,均线就是把价格取平均这样而已。
不同投资交易周期的使用者,会使用不同周期的时间(分钟收盘价[分K线]、小时收盘价[小时K线]、日收盘价[日K线]、周收盘价[周K线])。
三、使用方法
当两个长短不同的移动平均线(MA)在图表中交叉,有个专有名词叫做 死亡交叉、黄金交叉:
移动平均线(Moving Average)的黄金交叉:短均线向上突破长均线
一般来说,当移动平均线5MA向上突破10MA的时候,被称为是黄金交叉,表示短期内可能会上涨、有波段涨幅,适合多单进场或是空单出场。
移动平均线(Moving Average)的死亡交叉:短均线向下突破长均线
当移动平均线5MA跌破10MA的时候,被视为死亡交叉,表示短期内可能会下跌、有波段跌幅,适合空单进场或是多单出场。
四、Python3程序实现
1、获取K线数据
exchange = Exchange("binance") #
symbol = "BTC_USDT"
kline = exchange.kline(symbol = symbol, interval = '1day', limit = 120)
stamp, open, high, low, close, volume = kline
2、使用TA-Lib计算
MA5 = talib.MA(close, 5)
MA10 = talib.MA(close, 10)
3、判断趋势
DIRECTION = ""
if (MA5[-2] < MA10[-2] and MA5[-1] > MA10[-1]): # MA5-MA10金叉DIRECTION = "BUY"
if (MA5[-2] > MA10[-2] and MA5[-1] < MA10[-1]): # MA5-MA10死叉DIRECTION = "SELL"
4、执行交易
ticker = exchange.ticker(symbol)
if DIRECTION == "BUY":info = exchange.order(symbol, "BUY", "LIMIT", quantity=0.01, price=ticker["last"])print(info)
elif DIRECTION == "SELL":info = exchange.order(symbol, "SELL", "LIMIT", quantity=0.01, price=ticker["last"])print(info)
完整代码如下
exchange = Exchange("binance") #
symbol = "BTC_USDT"
kline = exchange.kline(symbol = symbol, interval = '1day', limit = 120)
stamp, open, high, low, close, volume = klineMA5 = talib.MA(close, 5)
MA10 = talib.MA(close, 10) DIRECTION = ""
if (MA5[-2] < MA10[-2] and MA5[-1] > MA10[-1]): # MA5-MA10金叉DIRECTION = "BUY"
if (MA5[-2] > MA10[-2] and MA5[-1] < MA10[-1]): # MA5-MA10死叉DIRECTION = "SELL"ticker = exchange.ticker(symbol)
if DIRECTION == "BUY":info = exchange.order(symbol, "BUY", "LIMIT", quantity=0.01, price=ticker["last"])print(info)
elif DIRECTION == "SELL":info = exchange.order(symbol, "SELL", "LIMIT", quantity=0.01, price=ticker["last"])print(info)
五、注意事项
1、除了MA指标之外,还有指数移动平均线(EMA)和加权移动平均线(WMA)两种均线指标,计算方法大同小异。
2、当市场行情正处于震荡期时,移动平均线的卖出买入信号会频繁出现,而这时往往不是适合的时机,要根据其他指标综合判断。
3.移动平均线的变化较为缓慢,有一定的滞后性。
六、相关链接
本文中的相关信息可以参考本博客上的其他专栏
1、TA-Lib安装使用
2、常用交易所SDK
数字货币量化交易策略—基于移动平均线MA相关推荐
- python量化外汇交易_用Python实现一个Dual Thrust数字货币量化交易策略
Dual Thrust交易算法介绍 Dual Thrust交易算法是由Michael Chalek开发的著名量化交易策略.它通常用于期货,外汇和股票市场.Dual Thrust的概念属于典型的突破交易 ...
- python 用while输出数字金字塔_用Python实现一个Dual Thrust数字货币量化交易策略
Dual Thrust交易算法介绍 Dual Thrust交易算法是由Michael Chalek开发的著名量化交易策略.它通常用于期货,外汇和股票市场.Dual Thrust的概念属于典型的突破交易 ...
- python用途适合做什么生意-PureQuant数字货币量化交易程序化交易python量化开源框架...
什么是量化交易 量化交易起源于上世纪七十年代的股票市场,是指借助现代统计学和数学的方法,利用计算机技术来进行交易的证券投资方式.量化交易从庞大的历史数据中海选能够带来超额收益的多种"大概率& ...
- [数字货币量化交易] 第1部分--概述和介绍
免责声明:对于使用此工具所做的任何事情,我概不任何负责任,你要自担风险.这个帖子是参考的老外的格式写的,部分内容是直接翻译的.我自己通过试用这么半年以来,总共本金从0.7BTC到了1.16BTC,大约 ...
- 一言不合就给大家发数字货币量化和策略的干货啦~
最近收集了好些很棒的量化策略忍不住想拿出来和你们分享分享 玩过那么些平台觉得还是喜欢微宽网.在安全上能做到真正为客户考虑:在功能上,提供给客户完善的使用体验.最让我感动的是他们的新手学堂,从基础抓起. ...
- Python数字货币量化交易开发——回测系统的优化与云服务器部署
前言 随着回测系统的数据量越来越大,为了解放个人电脑,决定将回测系统部署到云服务器. _ _ Episode Sp. 回测系统的优化与云服务器部署 之前说到个人回测系统建立出来后为了有效和一些云回测平 ...
- “泰迪杯” 挑战赛 - 基于市场资金流向分析的商品期货量化交易策略(附suibian代码)
目录 基于市场资金流向分析的 Suibian 期货策略 摘要 1 问题重述 1.1 问题重述 2 符号说明及名字定义 3 问题分析与求解 3.1 资金流向指标的定义 3.2 持仓量.成交量和价格的关系 ...
- 常见的量化交易策略简介
一.网格策略 网格交易法指以某点为基点,每上涨或下跌一定点数挂一定数量空单或多单,设定盈利目标,但不设止损,当价格朝期望方向进展时获利平仓,并在原点位挂同样的买单或卖单. 把网格交易法运用在期货套利上 ...
- sar偏移量追踪技术_SAR指标配合阶段高低价的量化交易策略
SAR指标 抛物线SAR指标试图通过突出资产移动的方向以及提供进入和退出点来为交易者提供优势.在本文中,我们将介绍该指标的基础知识,并向您展示如何将其纳入您的量化交易策略.我们还将看一下该指标的一些缺 ...
最新文章
- c语言统计26个英文字母各出现个数,网上答案汇总与分析——【输入一串英文,统计各单词出现的个数】...
- 团队-象棋游戏-模块测试过程
- 论学好Linux系统的超级重要性
- 201807 相关性度量的几种方法-卡方检验、相关系数、信息增益...
- MHA 日常维护命令集
- 绘制pr曲线图_生存分析如何绘制事件发生累计概率曲线图?
- JVM_02 类加载器子系统
- mysql id 字段类型转换_mysql 数据类型转换
- HTML5 Audio标签API整理(一)
- 国土空间规划数据汇交标准_国土空间规划数据治理指南来了
- git安装后设置用户名和密码
- 微软物联网发掘万物互联的价值
- [转]关于管理的经典故事(员工激励)
- 微信小程序:动画效果集合
- .Net FW上线报错:The OwinStartup attribute discovered in assembly ‘AppName‘.
- 彩虹智慧物联网技术白皮书
- 【10.16 胡测】Day4 第四波胡策题
- 地理信息科学考计算机二级,全国信息化工程师----GIS应用水平考试大纲(二级)...
- Python - 使用ffmepg批量转换某个文件夹以及所有子文件夹下所有的视频,修改其帧率/码率/分辨率到另一文件夹,并保留原有文件夹结构
- 2021-07-01 <1000+常用Python库>
热门文章
- LInux下Mplayer字幕乱码,日文字体部分乱码解决方案
- http://www.dewen.net.cn/q/16042/jquery fadeIn和fadeOut问题
- 谐振电路 - 01 介绍
- lodop 简单实现订单批量打印
- python判断当前时间为星期几
- ArcCatalog、ArcGlobe、ArcMap、ArcReader、ArcScene介绍
- linux中查不到ip地址
- 计算机丢失libjcc dll,libjcc.dll 64位
- 【论】Balancing bike sharing systems with constraint programming
- linux中内核4c,一台Linux服务器(4C8G配置)可以负载百万个连接?