量化交易零基础入门教程

初识量化交易

  • 量化交易是指借助现代统计学和数学的方法,利用计算机技术来进行交易的证券投资方式。便于理解的说,量化交易主要是做这样的事:

量化交易的价值何在?

  • 可以利用大量历史数据检验策略,效率提升百倍
  • 更科学更客观的衡量交易策略的效果
  • 全市场实时捕捉交易机会
  • 更多的盈利机会

做量化交易需要什么?

  • 要有各种数据。
  • 还要有一套量化交易的系统,

量化交易策略基本框架

从一个非常简单的交易策略开始

  • 先看一个非常简单的交易策略:
每天买100股的平安银行。
  • 为了让这个策略能让计算机执行,首先,要使策略符合“初始化+周期循环”框架,像这样:
  初始化:选定要交易的股票为平安银行每天循环:买100股的平安银行

常用的下单函数

  • order(security,amount),刚刚细讲过,含义是买卖一定数量的(单位:股)股票。security是股票代码,amount是数量,amount为负数时就是代表卖出了,需要知道的是,国内股票买入最小单位是1手即100股。例子如下:
  # 买入100股平安银行order("000001.XSHE",100)# 卖出100股平安银行order("000001.XSHE",-100)
  • order_target(security,amount),含义是通过买卖,将股票仓位调整至一定数量(单位:股)。security是股票代码,amount是数量。例子如下:
  # 调整平安银行的持股数量至1000股# 即,如果目前平安银行的持股数量低于1000股就买入,高于就是卖出,不高不低就不动。order_target("000001.XSHE",1000)
  • order_value(security,value),含义是买卖一定价值量(单位:元)股票。security是股票代码,value是价值量。value为负数时就是代表卖出了。例子如下:
  # 买入10000元的平安银行# 如果当前股票市价是10元,则代表买入1000股# 如果除不开系统会自动调整成相近的合理数量。卖出时也会。order_value("000001.XSHE",10000)# 卖出10000元的平安银行# 如果当前股票市价是100元,则代表卖出100股order_value("000001.XSHE",-10000)
  • order_target_value(security,value),通过买卖,将股票仓位调整至一定价值量(单位:元)。security是股票代码,value是价值量。例子如下:
  # 调整平安银行的持股价值量至10000元# 即,如果目前平安银行的持股价值量(按股票市价算)低于10000元就买入,高于就是卖出,不高不低就不动。order_target_value("000001.XSHE",10000)

读取context中的数据与条件

def initialize(context):run_daily(period,time='every_bar')g.security = '000001.XSHE'def period(context):order(g.security, 100)

止损

  def initialize(context):run_daily(period,time='every_bar')g.security = '000001.XSHE'def period(context):# 买入股票order(g.security, 100)# 获得股票持仓成本cost=context.portfolio.positions['000001.XSHE'].avg_cost# 获得股票现价price=context.portfolio.positions['000001.XSHE'].price# 计算收益率ret=price/cost-1# 打印日志print('成本价:%s' % cost)print('现价:%s' % price)print('收益率:%s' % ret)# 如果收益率小于-0.01,即亏损达到1%则卖出股票,幅度可以自己调,一般10%if ret<-0.01:order_target('000001.XSHE',0)print('触发止损')

小任务

  • 闰年代码实现:
from datetime import datatimedef run_year(date):run_year = []both = []neither = []for dates in date:time = datetime.strptime.strptime(str(dates),"Y").yearif time % 4==0:if time%100==0:print("%s既是闰年,又是世纪年"%dates)else:print("%s是闰年"%dates)run_year.append(dates)else:neither.apend(dates)return tun_year, both, neither

小任务

from jqdata import *
def initialize(context):#购买比亚迪股票g.security = '002594.XSHE'g.buy_time = '2018-03-01'g.sell_time = '2018-03-21'run_daily(period,time = 'every_bar')def period(context):date = context.current_dt.strftime('%Y-%m-%d')if date == g.buy_time:order(g.security,100)print('买一手比亚迪')elif date == g.sell_time:order_target(g.security,0)print("溜了")else:print("wait")

部分代码转至:https://www.joinquant.com/view/community/detail/7570870ccf37ba48007261992d2e543a

量化交易,你也可以赚大钱相关推荐

  1. 小白入门篇:量化大神Eric跟你聊量化交易

    如果你在阅读这篇文章,那么恭喜你,与小编我,可以算是同道中人,同是量化小白一枚.鉴于身边各种量化大神经常出没,之前不时会收到读者提问的一些量化入门问题. 由于部分问题重复出现,也为了受益更多的人,小编 ...

  2. 靠能力赚大钱,是最最可笑的谎言

    很多人其实到现在也没弄明白他们是怎么赚钱的,很多人都会把自己成功归结为能力的结果,事实上这个是最大的可悲--靠能力赚钱,是一个弥天大谎! 我自己一直在反思这些年里的很多事情,突然发现所有的成功失败,很 ...

  3. 一个量化交易策略师的自白

    我之前在全球top5券商工作时也主要以CTA研究为主,每天都在不停的进行各种回测和开发.彼时,部门的CTA交易主要集中在股指期货的日内投机上,基本市场上能搜集到的各种书籍和报告我都浏览过.不过,从实际 ...

  4. 理工科背景如何转行量化交易?

    一.为什么要入行或者转行做量化交易?  我一直有个观点,任何一个行业都有它的优势和劣势,任何一个职位只要做到全国顶尖,一定都很厉害,所以理论上讲,我认为并不存在特别明显的,行业和职位的好坏之分,只有我 ...

  5. 一个量化交易策略师的自

    转 一个量化交易策略师的自白 我之前在全球top5券商工作时也主要以CTA研究为主,每天都在不停的进行各种回测和开发.彼时,部门的CTA交易主要集中在股指期货的日内投机上,基本市场上能搜集到的各种书籍 ...

  6. 一个量化交易策略师的成长史

    按语:本文是一篇真实讲述一个宽客从事量化工作的经历,让量化投资者了解下量化交易的工作生活是怎样的.读完本篇自述,或许能给解答许多困惑已久的问题. 正文: 我之前在全球top5券商工作时也主要以CTA研 ...

  7. 敲代码也能赚大钱吗?

    我们好像永远也追不上互联网的浪潮. 你看,人工智能的浪潮还未退去,区块链就应时而生了. 一个又一个新技术的产生不由让人产生联想: 程序员的薪资一定很高吧 其实不然. 知乎上有人说:程序员已经成了天底下 ...

  8. 量化交易很好,但是也存在问题

    来源:https://www.sohu.com/a/162823948_152957 最近这段时间,量化交易非常的火爆,很多的投资者都开始尝试使用量化交易来为自己赚钱.甚至现在有一种结论,就是量化交易 ...

  9. 【量化】量化交易入门系列6:量化交易学习书籍推荐(二)

    作者:悠悠做神仙 来源: 恒生LIGHT云社区 上一篇 量化交易入门系列5:量化交易学习书籍推荐(一) 我们介绍一些量化交易一些操作和理论性书籍,可能对于刚入门的大家而言,可能有些枯燥.所以这篇文章, ...

最新文章

  1. Anaconda3中Python3.5和Python2.7共存
  2. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [8] 支持向量机(二)...
  3. STL vector使用方法介绍
  4. 迅雷 iOS 版终于复活,不限速,完美支持BT磁力下载
  5. makefile中文手册_如何学习GCC英文手册
  6. C++中的LPVOID数据类型
  7. 11 Component Composition
  8. 一加手机怎么root权限_一加手机的两种ROOT权限获取教程详解
  9. Postgis使用工具raster2pgsql批量导入栅格数据(一)
  10. Thrift交流(二)thrift服务端和客户端实现 Nifty
  11. 毕业论文引用参考文献的脚注方法
  12. Maven的下载与配置 和在IDEA中创建Maven的项目
  13. EasyExcel 单元格合并
  14. springMVC的扩展与接管
  15. C语言实验——三角形
  16. R语言做GGEbiplot_基于R语言的GGE双标图在大豆区试中的应用
  17. IDA反汇编/反编译静态分析iOS模拟器程序(一)话说IDA
  18. 人人开源renren-fast-vue
  19. java读取gpx文件格式,GPX文件格式适用于GPS定位的模拟以及生成文件
  20. c语言中03怎么表示成30,C语言入门篇-03

热门文章

  1. 华为codecraft2018总结
  2. Robi改造计划RTP---提前1个月完成听说和对话
  3. 城市突发安全事故,应急联动指挥系统如何有效解决?
  4. 大数据领域经常听到ETL,那么什么是ETL
  5. Maya中英切换的两种方法
  6. 如何利用手机在网状态API精准发送短信和电话
  7. 批量导入html收藏夹谷歌,怎么在电脑谷歌浏览器内完成书签和收藏夹的导入操作...
  8. Linux下杀掉正在执行的sh脚本
  9. TensorFlow 制作自己的TFRecord数据集
  10. 3dsmax给模型贴图方法总结