该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门、创建自己的量化策略代码 。难易度:入门级.从一下几点说起;

1 确定框架:

[单股票均线策略] 的主要策略框架: 5 日均线高于 30 天均线,则全仓买入股票 5 日均线低于 30 天均线,则卖出所持股票

从我们日常交易的角度,一般交易者的行为可以拆分以下两部分:

1 选择标的(初始化):

在交易之前,我们通常会先选定要交易的股票池或者单个股票

2 交易(每天盯盘)

我们会观察该股票的五日均线和 30 日均线,并进行比较如果该股票的五日均线在 30 天均线以上,则全仓买入股票如果该股票的五日均线在 30 天均线以下,则全仓卖出(空仓)

那么程序中,我们是怎么做的呢?

先看看 Ricequant 平台中对应的代码框架会是怎么样的吧:

def init(context):#程序的初始化,预设股票池、设置参数和变量。 只运行一次def handle(context, bar_dict):#从回测的开始日期至结束日期,根据选择的频率(日、分钟)循环运行

对照策略思路 及 Ricequant 代码框架,你会发现我们可以很轻松地把 两者结合起来

以上框架也是 Ricequant 平台的最基本也最主要的框架,也就是

初始化

循环 - 根据选择的频率(日、分钟)循环运行

2 初始化:

选择标的:本策略的交易股票设定为 300059 ”东方财富“。

def init(context): context.stock = "300059.XSHE" # 存入目标股票 [东方财富 ]

延伸阅读:

1 在 init 中实现程序的初始化,例如存入目标股票池,设置滑点、基准等参数以及设置其它变量。 context 是一个全局的容器,你可以通过它设置任何全局变量并初始化:如 context.stock 将会在后面代码所被调用到。

2 代码中 # 代表注释,作为代码说明,执行时会被跳过而不为程序所运行。

3 如何填写股票代码:你会发现策略代码中 股票代码后带有后缀,那么它们分别代表什么呢?

后缀为

XSHE 代表在深交所上市交易的股票

XSHG 在上交所上市交易的股票

3 获取均价:

我们分别获取该股票 5 日和 30 日的均价

# 用法:变量 = bar_dict[股票代码].mavg(天数, frequency='day')# 获取近五日股票收盘价均价,命名为 fast fast = bar_dict[context.stock].mavg(5, frequency='day')# 同上,获取近二十日的收盘价均价,命名为 slow : slow = bar_dict[context.stock].mavg(30, frequency='day')4 判断买卖条件:

获得均价数据之后,我们就可以进行一个判断决定是否买卖了:

if fast>slow: # 若快线在慢线之上则用所有现金买入该股票 #买入操作 elif fast

在判断之前,我们还漏了一步,那是什么呢?就是要知道我们有多少现金,那么在程序中是如何获得现金的呢?我们使用以下代码

# 用法:变量 = context.portfolio.cashcash = context.portfolio.cash #取得当前的现金量,命名为 cash

延伸阅读: portfolio 中 包含所有的投资组合的信息,请参考文档 - Portfolio 对象

5 买入 /卖出:

在判定买卖的条件成立之后,我们会对股票进行买入或者卖出的操作:

#用法 order_value(股票代码,买卖金额) 金额为正则为买入,负数则为卖出#将所有现金买入 300059 东方财富order_value(context.stock, cash) #用法: order_target_value(股票代码,目标持仓比例) 比例在 1 与 0 之间#此处将持仓比例调整为 0 ,则等同于全部卖出order_target_percent(context.stock, 0)

6 策略回测

以上,我们用几行代码就把策略的框架完整地搭建起来了,最终的完整代码为:

def init(context): #初始化 context.stock = "300059.XSHE" #存入要交易的股票代码def handle_bar(context, bar_dict): #每日循环运行 #获取 30 日均线 slow = bar_dict[context.stock].mavg(30, frequency='day') #获取 5 日均线 fast = bar_dict[context.stock].mavg(5, frequency='day') cash = context.portfolio.cash #获取持有现金金额 if fast>slow: #判定买入条件 order_value(context.stock, cash) #买入目标股票 elif fast

写完了策略,那么我们接下去做什么呢? 先对我们的策略进行一次历史回测,看看它的历史表现是如何吧。

在策略编辑页面右上方,选择从 2015 年 1 月 4 日至 2016 年 10 月 4 日,用资金 100 万元进行日回测吧,请点击 运行回测。

python简单易学,使用python研究股票更是得心应手。

python 股票行情_十分钟学会用Python交易股票相关推荐

  1. python股票自动买卖视频教程_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

  2. 我用python做股票_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

  3. python 股票_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

  4. python购买股票_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

  5. 如何用python选股票_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

  6. python 炒股_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

  7. 用python选股票_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

  8. python写软件实例-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  9. python程序加密_三分钟教你python自动化加密Word

    还在忧虑周五下班前,老板吩咐要给客户加密200个文件吗?工作到凌晨2点,还要把当日完成的10个文件加密,让人很发狂啊.想到一份份的文档要挨个打开并加密,就让人有一种想要die掉的996即视感. 三分钟 ...

  10. java 正则匹配括号是否成对_十分钟学会正则表达式

    正则表达式用处挺广的,主要用于处理字符串. 正则引擎 想要在计算机语言中使用正则表达式,那么这门计算机语言必须要利用正则引擎去实现相应的正则库.主要的正则引擎分为以下两类: DFA 确定性的状态机.不 ...

最新文章

  1. 【经典概念】一文详解Batch Normalization!!!
  2. JSONP 跨域的原理
  3. 简单的PHP和MYSQL做投票系统_php mysql简单投票系统
  4. 题目1162:I Wanna Go Home
  5. 使用谷歌身份验证器增强SSH安全
  6. 希望今年能看懂和写出这样的Swift代码
  7. etc的常见算法_谈常用的几个机器学习算法,学懂算法也可以这么简单!
  8. pat 乙级 1006 换个格式输出整数(C++)
  9. jquery table ajax,JQuery Ajax动态加载Table数据的实例讲解
  10. 使用 el 能否定义作用域变量_Jsp之El表达和JSTL标签库
  11. MFC开发IM-第七篇、mfc设置默认编辑框内容
  12. C# Excel导入与导出
  13. scala函数进阶篇
  14. MFC OpenCasCade – 实现View中的实体对象与右边属性窗口的关联
  15. JVM 自带使用总结
  16. 图像处理经典算法及OpenCV程序
  17. Vue3使用Swiper
  18. Qt 使用阿里巴巴字体图标库 iconfont
  19. GO 编程模式学习笔记——GO GENERATION
  20. 贪吃蛇大作战【C++游戏】

热门文章

  1. 版本设置X:none node Title golang版本错误
  2. 如何让vs2005的网站编译成一个DLL
  3. vue 获取跳转上一页组件信息
  4. nodejs 中的 commonjs 模块化使用
  5. SQL中 and or in的用法
  6. go.mod 文件中的 //indirect
  7. 来面试,偷懒不答题,直接忽略
  8. JNI FindClass出错的一种特殊情况
  9. NPAPI中返回一个字串的正确做法
  10. 藏经阁的藏,不念cang而是zang