新手如何快速入门量化交易?10分钟教小白从入门到精通。在这篇文章里,我从概念介绍-量化交易原理-实操Python代码和案例,系统介绍量化交易,带粉丝们利用策略模型掘金!
2021年,随着元宇宙/NFT/数字货币的热度提升,量化交易的概念逐渐被很多技术人重新关注 。因为这个赛道7X24小时交易的特殊性,非常适合我们进行量化交易策略的验证和实践
量化交易简单说就是用电脑上的数学模型做策略,程序化的帮你完成金融产品的买卖,赚取波动利润。但是对于许多还未入门的人来说,下面的内容可以有效避免大家走弯路,进入到程序化交易的领域。
理解以下讲解的内容,需要有一点多的编程基础,策略编程以Javascript为主,新手用Python也可以。如果不懂编程,就去书店找本《python编程-从入门到实践》看一看。
其他的部分在OKEX官网上都容易找到教程,最复杂的要数策略代码编写部分。最快实现量化交易的方法自然是看懂已有的策略代码,移植到自己的策略里面。
一、量化交易基础概念1、量化交易是指借助现代统计学和数学的方法,利用计算机技术进行投资交易的方式。
对于从未接触过量化的人来说,想要了解量化到底是做什么的,关键掌握四部份的内容:
Python基础知识、金融知识、技术指标、量化交易框架
市面上也出现了很多支持 Python 语言的量化平台。通过这些平台,你可以很方便地实现自己的交易策略,进行验证,甚至对接交易系统(由于政策原因,现在很多交易接口暂停开放)。
2、为保证交易稳定,我们本次案例采用量化交易目前的最主流平台Okex做 ;
OKEX的前身是国内的OKCoin平台,由于众所周知的原因,现已移至海外。目前OKCoin旗下主要包括OKEX和OKCoin国际站两个平台,这两个平台上的API文档基本上是通用的,因此本次分享的内容以OKEX平台为主(国内访问可能受限,可关注后私信我获取内部注册渠道);内容包括新建API,python语言下的API程序调用方法(可用于获取平台现货,期货信息,以及挂单,撤单等常规操作)。
二、量化工具如何搭建?一、APIKey的申请与使用
首先要找到OKEX网站的API入口(Application Programming Interface,应用程序编程接口)
开发者进入后,首先可完成初始注册(可用于收益提取,如不能访问,建议连接VPN),API位于页面顶端,进入我的API后,点击新建API,获取apikey和secretkey。(OKEX提供了强大的API,可以根据自身需求建立不同权限的API,并利用API进行自动交易或者提现。 量化交易操作入口-点击进入OKEX官网
我们可以直接调用这些API,获取自己想要的数据,供自己使用。平台提供了丰富的接口,供开发者调用,比如价格、账户资金、持仓量、盈亏等信息。用户的程序根据价格的变化,做出判断,自动进行交易。程序代替了人的操作,也规避了人性的风险。
API的交易权限让您可以快速的获取当前市场最新行情及时的下单交易、查询自己可用和冻结金额、查询自己当前尚未成交的挂单、买进或卖出、撤单;提现权限可以让您快速提现到您的认证地址。
API是直接跨过账号密码接管你的账户的,是非常重要的信息,建议大家不要在任何可以联网的设备中保存此类信息。
建立好API key后,进入API文档(该页面下有个API交流群,可以给大家提供帮助,说实话,找了我好久!),就可以查看到OKEX提供API的相关资料。对于使用python的用户,可以访问代码示例-REST API-python页面来获取相关程序信息,
(OKEX建议开发者使用REST API进行币币交易或者资产提现等操作。强烈建议开发者使用WebSocket API获取市场行情和买卖深度等信息。)
注:只有3.4 及以上版本的python才可以运行此示例程序,具体原因在readme 文档中有提到。
官方提供的API文档详情,里面介绍了详细的接口信息,还有几个视频讲解;
我们举个简单的例子,以公共API获取某个时刻的价格信息为例,用户可以通过这个接口获取某个币种的最新价格。
二、python语言下的API程序调用方法。以上四个后缀为py的文件(Client,httpMD5Util,OkcoinFutureAPI,OkcoinSpotAPI)即为可执行的python程序,它们的文件名已经说明了各自的作用,不过对于新手,看着还是很懵逼。这里我给大家梳理一下这几个程序文件的关系。
Client为主程序,包含用户指令集。在此文件里填入 API key,去除所需执行语句前的“#”符号,即可执行相应语句。
OkcoinFutureAPI,期货API功能项,供主程序调用;
OkcoinSpotAPI,现货API功能项,供主程序调用;
httpMD5Util,供现货、期货程序调用。用于进行http请求,以及MD5加密,生成签名。
大家也可以参考我之前的详细教程,如果文章没找到,可以私信问我
三、程序运行错误代码合集。由于网页提供的程序处于多年未更新的状态,已有一些内容与当下的情况并不相符,导致服务器返回错误代码,这时就需要查询错误代码的含义来debug。比如执行以下代码:
print (u' 现货深度 ')
print (okcoinSpot.depth('btc_usd'))
服务器会返回error code:1007。查询此编号代表含义为:没有交易市场信息。这样的返回信息也是让人摸不着头脑,想了很久终于发现原因:在OKEX上,是以usdt为交易对,而不是usd,因此只要把usd改成usdt就能返回正确的结果。
小结:除了上面的usd改为usdt这个问题,在实践中本人也发现了不少其他错误以及新手可能踩到的坑,因此我重新整理了API里的代码并添加了注释,相信对大家会有所帮助。整理不易,若有需求,一键三连私信我哦
小白如果还需要具体操作流程,其实可以去官网看下他们的实操教程
三、量化交易策略模型1、常用策略:移动平均线
在所有的技术指标中,移动平均线的应用最为广泛。因为它的构造方法简便,且成绩易于定量地检验 ;
在技术图表分析中,关于市场趋势的分析在很大程度上是基于分析师的主观判断,因此很难在计算机上进行量化;而移动均线的规则却不随分析师的主观意志而改变,可以简易地编写为计算机程序,然后自动生成买入和卖出信号。
移动止损的核心思想:通过快慢周期线的交叉情况决定买入,还是卖出;然后由买入/卖出价格设置止盈止损价格;监测市场行情;到达止盈止损价格操作(例如,高于止盈价格时,则根据止盈价格重新设置止盈止损价格),统计总钱数和总币数,再次循环。
举一个简单的例子,我以前的策略就包括:
BTC买入条件:5日均价大于20日均价 BTC卖出条件:5日均价小于20日均价
交易成本:千分之二 策略总收益:10061.98%(100倍) 最大回撤率:55.88%
简单移动平均其实就是算数平均。根据定义,第k个时间单位的m阶移动平均值(k>m) 我们以BTC每日收盘价为例,在python上运行以下程序可以得到其均线图:
import pandas as pd import numpy as np import matplotlib.pyplot as plt from pandas.plotting import register_matplotlib_converters register_matplotlib_converters() data = pd.read_csv(r'C:Users Desktop量化策略代码数据csvbtc永续30min.csv') data.index = pd.to_datetime(data.iloc[:,0]) data_value = data.iloc[:,1] #提取收盘价数据 close = data_value #建立移动平均函数,获取移动平均值 def ma_function(k): #k为移动平均的滞后期数 #设置时间系列 MA_k = pd.Series(0,index=data.index) #使用for循环求职 for i in range(k-1,len(close)): MA_k[i] = sum(close[(i-k+1):(i+1)])/k return MA_k #在价格时序图上加入均线图 def picture_1(m,n): #m,n为移动平均滞后阶数,且m另一种移动平均就是指数加权策略,这是一种也别的移动平均,它给后期的价格给以较大的权重,而前期的价格给以较小的权重,并且囊括了金融类产品自上市以来的所有历史价格, 在python上用代码表示,并做出EMA图如下:
#建立指数加权移动平均函数 def EMA_function(k,exponential=0.2): #k为滞后阶数,权重默认为0.2,可根据实际情况自行修改 ema_k = pd.Series(0,index=close.index) ema_k[k-1] = np.mean(close[:k]) for i in range(k,len(close)): ema_k[i] = exponential*close[i]+(1-exponential)*ema_k[i-1] return ema_k #在价格时序图上加入指数加权移动均线图 def picture_2(m): #m为移动平均滞后阶数 EMA = EMA_function(m) plt.rcParams['axes.unicode_minus'] = False plt.rcParams['font.sans-serif'] = 'SimHei' plt.plot(close[(m-1):],label='价格',color='k') plt.plot(EMA[(m-1):],label='EMA',color='r') plt.title('BTC移动平均线与价格时序图') plt.legend() #添加图例 plt.show() return具体相关策略的Python实操的代码后续会整理发出 ,建议一键三连哦,着急的话可私信我
着急看后续教程的CSDN粉丝可以私信我,另外本博主可提供内部渠道的OKEX邀请链接注册,每次交易返佣10-20% ,相当于手续费八折,私信前请点击 关注、点赞、评论、收藏,谢谢支持!
2、常用策略还包括:网格交易策略、均线策略、跨期对冲策略等等,篇幅有限,下期介绍
这些都是非常实用且简单的量化策略, 用不同的趋势策略就可以跑赢囤币, 多多回测多验证 。
当然很多粉丝会陷入历史数据陷阱,数据只代表过去,不代表未来,其次,量化投资其本身无法弯曲发现市场价值为市场提供公允定价。量化投资擅长平抑市场的非理性波动,使市场回归理性,所以只有与基本面投资等模式一起,才能够更好地为二级市场提供公允定价。
代码其实不难,建议小白先学习下金融知识,我也是结合基本面,用了多组合策略才跑出来的
篇幅太长了,我整理了下计算公式和python代码放在下一篇讲,希望大家都能抓住这个时代机会!
仅供CSDN粉丝探讨交流 ,纯技术帖,不构成投资建议哦
接下来,我会继续在CSDN分享后续教程,请大家支持我,争取早日破1000粉丝



