下面教你八步写个量化交易策略——单股票均线策略

1 确定策略内容与框架

若昨日收盘价高出过去20日平均价今天开盘买入股票

若昨日收盘价低于过去20日平均价今天开盘卖出股票

只操作一只股票,很简单对吧,但怎么用代码说给计算机听呢?

想想人是怎么操作的,应该包括这样两个部分

既然是单股票策略,事先决定好交易哪一个股票。

每天看看昨日收盘价是否高出过去20日平均价,是的话开盘就买入,不是开盘就卖出。每天都这么做,循环下去。

对应代码也是这两个部分def initialize(context):

用来写最开始要做什么的地方

def handle_data(context,data):

用来写每天循环要做什么的地方

2 初始化

我们要写设置要交易的股票的代码,比如 兔宝宝(002043)def initialize(context):

g.security = '002043.XSHE'# 存入兔宝宝的股票代码

3 获取收盘价与均价

首先,获取昨日股票的收盘价# 用法:变量 = data[股票代码].close

last_price = data[g.security].close# 取得最近日收盘价,命名为last_price

然后,获取近二十日股票收盘价的平均价# 用法:变量 = data[股票代码].mavg(天数,‘close’)

# 获取近二十日股票收盘价的平均价,命名为average_price

average_price = data[g.security].mavg(20, 'close')

4 判断是否买卖

数据都获取完,该做买卖判断了# 如果昨日收盘价高出二十日平均价, 则买入,否则卖出

if last_price > average_price:

买入

elif last_price < average_price:

卖出

问题来了,现在该写买卖下单了,但是拿多少钱去买我们还没有告诉计算机,所以每天还要获取账户里现金量。# 用法:变量 = context.portfolio.cash

cash = context.portfolio.cash# 取得当前的现金量,命名为cash

5 买入卖出# 用法:order_value(要买入股票股票的股票代码,要多少钱去买)

order_value(g.security, cash)# 用当前所有资金买入股票

# 用法:order_target(要买卖股票的股票代码,目标持仓金额)

order_target(g.security, 0)# 将股票仓位调整到0,即全卖出

6 策略代码写完,进行回测

把买入卖出的代码写好,策略就写完了,如下def initialize(context):#初始化

g.security = '002043.XSHE'# 股票名:兔宝宝

def handle_data(context, data):#每日循环

last_price = data[g.security].close# 取得最近日收盘价

# 取得过去二十天的平均价格

average_price = data[g.security].mavg(20, 'close')

cash = context.portfolio.cash# 取得当前的现金

# 如果昨日收盘价高出二十日平均价, 则买入,否则卖出。

if last_price > average_price:

order_value(g.security, cash)# 用当前所有资金买入股票

elif last_price < average_price:

order_target(g.security, 0)# 将股票仓位调整到0,即全卖出

现在,在策略回测界面右上部,设置回测时间从20140101到20160601,设置初始资金100000,设置回测频率,然后点击运行回测。

7 建立模拟交易,使策略和行情实时连接自动运行

策略写好,回测完成,点击回测结果界面(如上图)右上部红色模拟交易按钮,新建模拟交易如下图。 写好交易名称,设置初始资金,数据频率,此处是每天,设置好后点提交。

8 开启微信通知,接收交易信号

点击聚宽导航栏我的交易,可以看到创建的模拟交易,如下图。 点击右边的微信通知开关,将OFF调到ON,按照指示扫描二维码,绑定微信,就能微信接收交易信号了。

python如何期货交易_能用python的期货交易软件相关推荐

  1. python len函数_知识清单Python必备的69个函数,你掌握了吗?

    本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...

  2. python优化网站_[练习] 用PYTHON来优化网站中的图片

    我到公司以来,第一次加班,哇,加一晚上加一上午,现在还没下班的迹象,555,困. 对于网站中的一些关键的页面,多重缓存.静态化.程序代码优化--之外,为了提高用户打开页面的速度,图片是必须要优化的. ...

  3. python递归函数例题_递归案例python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 而对应的中文翻译 "递归" 却表达了两个意思:"递 ...

  4. 网易图灵学院python公开课_图灵学院 Python全系列教程全栈工程师 python视频教程下载...

    大家怎么说? 老师很好,我认为,若想学好python,应该多练.多想.多看.学习资料不能仅限于老师给定的这些内容,这些毕竟是入门资料 老师讲的真不错,对于我们这种小白来说 也比较容易懂,虽然有些时候自 ...

  5. python列表拆包_详解python 拆包可迭代数据如tuple, list

    详解python 拆包可迭代数据如tuple, list 拆包是指将一个结构中的数据拆分为多个单独变量中. 以元组为例: >>> a = ('windows', 10, 25.1, ...

  6. load python txt文件_详解Python中numpy.loadtxt()读取txt文件

    为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件. 读取txt文件我们通常使用 numpy 中的 loadtx ...

  7. 文科生自学python要多久_怎么自学python,大概要多久?

    都让开!本人文科生,自学Python 2年半,作为一个曾经完全0基础,啥都不懂纯靠自学学会python的文科生,有一些不成熟的小建议可以分享一下. 首先不要觉着编程难,只要你认识26个英文字母,有一点 ...

  8. python是什么编程教程-编程python是什么_谁的Python教程最好?

    谁的Python教程最好? 建议你可以看看这里的<Python基础教程>和<Python学习手册>应该适合你的. 希望对你有用. 记得采纳呀~ Python中的9个代码小实例! ...

  9. python什么环境_什么是Python?(基础环境建设),NO2,搭建

    1. Python语言 1.1 Python语言的基本概念 Python 是⼀种极少数能兼具 "简单" 与 "功能强⼤" 的编程语⾔.你将惊异于发现你正在使⽤的 ...

最新文章

  1. Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.
  2. 妈妈再也不怕我不会画漂亮的图了!
  3. wxWidgets:wxList< T >类模板的用法
  4. 中国海洋大学计算机学院研究生导师,中国海洋大学硕士研究生导师介绍:唐瑞春...
  5. Visual Studio 2017 15.6版本预览,增加新功能
  6. L2-005 集合相似度 (25分)
  7. 【数论】能量采集(P1447)
  8. Atom安装或更新插件失败的解决方案
  9. mysql原生sql语句_原生SQL语句
  10. HTML中的一般标签、常用标签和表格
  11. pytorch自动求导数机制
  12. U盘中的SanDiskSecureAccess可以删除么?删除后影响U盘的使用么?
  13. java treemap 排序原理_Java TreeMap排序算法实例
  14. 微信赞赏功能升级设置中的坑
  15. 混合多云时代:大型主机z15的新使命
  16. 【论文笔记_自蒸馏_2021】GROUND-TRUTH TARGETS DAMPEN REGULARIZATION IMPOSED BY SELF-DISTILLATION
  17. 提升工作效率的软件及网站(不断更新中)
  18. linux中查看线程的亲和性
  19. Github如何快速找到优秀开源项目
  20. WPF自学手册-读书笔记(一)

热门文章

  1. 西南大学计算机学硕考研,西南大学计算机与信息科学学院14年学硕研招专业目录...
  2. NAS服务器有哪些优势
  3. 关于python的各种职位_python各个岗位
  4. docker容器网络及其配置
  5. 深度原创丨当互联网巨头从云端“抄底” BI 和大数据...
  6. 《管理的实践》66条读书笔记
  7. Python 3.7.1 官方文档 总结
  8. java计算二叉树的节点最小值_求二叉树根节点到叶子节点路径和的最小值:遍历(递归+非递归)...
  9. 第三周总结(2018-03-12~2018-03-16)
  10. WDBS世界数字经济与区块链大会杭州站圆满落幕