python找出主力合约价格_Python实盘交易之期货指数映射主力与“自动换月”
点及财经,股票期货专业投机者。
前言
通常情况下,大部分的程序化交易者都采用期货指数作为信号的产生,而报单是需要用主力合约的价格去报,这就是“指数映射主力”。
因为,主力换月会有跳空,所以大部分人都会用指数映射。
同时,我们的持仓合约会随着主力的切换而切换,当主力切换后,我们的程序也要跟着换,既然是程序化交易,这项操作就只有做成自动换月。
作者在本期文章中,将借助天勤量化平台实现“指数映射主力”和“持仓自动换月”这两项功能。
“指数映射主力”和“持仓自动换月”实现逻辑!
1.映射功能,主要是通过获取指数和主力两个合约数据,通过指数计算开仓条件,等到开仓的时候用主力去开仓。
2.持仓换月,每次指数K线更新,都获取主力的合约代码,然后判断更新前后主力合约代码是否一致,如果不一致那么就进行,换月。
Python实现指数映射、持仓换月!
1.参数变量设置。作者采用上期技术simnow账号,进行测试。读者可以根据自己需要采用simnow或者用快期官网注册模拟账号进行模拟。
实盘交易账户配置案例:
self.api = TqApi(TqAccount("H海通期货", "320102", "123456"))
主力合约代码:
self.api.get_quote("KQ.m@SHFE.rb").underlying_symbol
上段代码,获取期货对应品种的主力合约代码,比如现在主力为:SHFE.rb2101。check_symbol,用于存储主力合约代码。
2.将最新的主力合约,存入check_symbol列表。
这里,主要是在k线更新时,获取当前主力合约代码并保存至列表中。其主要作用是,判断更新前更新后主力合约是否发生变化。
如果发生了变化,则说明主力已经切换。
程序将平掉之前的仓位,并重新建立主力。
3.计算SMA均线。作者在本期代码中采用的是双均线交易系统,并且是用期货指数合约来计算均线。
在开仓条件中,是用指数来判断,主力来开仓。
4.映射与持仓换月。
target_pos2,target_pos1创建更新前后的目标持仓对象,用于换月开平仓操作,position2-为持仓最新信息。
映射细节:klines是期货指数K线。
在策略中,我们只需要根据klines来计算指标并发出买入卖出信号后,通过获取主力合约代码创建目标持仓对象target_pos2,并以此来进行委托交易。
如下图所示:
换月细节:
通过判断存储的主力合约列表前后两个数据,就可以得知主力切换了没。如果前后不一致,说明需要进行换月操作。self.check_symbol[-1] != self.check_symbol[-2]
如下图所示:
5.启动交易策略。
run:
小结。
上述就是,关于如何利用python实现期货指数映射交易与持仓换月操作。映射比较简单,指数负责开仓条件,主力负责开仓。
而换月,则需要创建换月前和换月后两个目标持仓对象,主力切换时,平掉老仓位,并用换月后的主力重新开仓。
最后
指数映射主力交易是比较常见的,在指数失真不严重的情况下使用比较好。持仓换月,是期货程序化交易必须要做的,每当主力切换后,我们都要把仓位切换成最新的主力合约。
文章及策略代码仅供学习,切勿直接实盘。
python找出主力合约价格_Python实盘交易之期货指数映射主力与“自动换月”相关推荐
- python找出两个列表不同元素_python 找出两个列表的相同元素与不同元素
python 找出两个列表的相同元素与不同元素,用了以下几种方法 1. 通过set 集合 list1 = [1,2,3] list2=[2,3,4] set1 = set(list1) set2 = ...
- 在哪里能收到python实例代码-Python找出最小的K个数实例代码
题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 这个题目完成的思路有很多,很多排序算法都可以完成既定操作,关键是复 ...
- Python找出列表中出现次数最多的元素三种方式
通过三种方式给大家介绍,具体详情如下所示: 方式一: 原理:创建一个新的空字典,用循环的方式来获取列表中的每一个元素,判断获取的元素是否存在字典中的key,如果不存在的话,将元素作为key,值为列表中 ...
- linux 端口tnpl,利用Python找出9个连续的空闲端口
这篇文章主要介绍了Python找出9个连续的空闲端口的方法,感兴趣的小伙伴们可以参考一下 一.项目需求 安装某软件,配置时候需要填写空闲的端口.查看5个平台的某个端口是否被占用 5个平台为window ...
- python找出某个文件夹下某个后缀的文件
python找出某个文件夹下某个后缀的文件 import osdef find_files_with_suffix(folder_path, suffix):# 使用os模块获取文件夹中所有文件的路径 ...
- python找最长的单词,Python 找出英文单词列表(list)中最长单词链
这篇文章主要介绍了Python 找出英文单词列表(list)中最长单词链,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本文主要 ...
- Python -- 找出100以内的所有质数
Python – 找出100以内的所有质数 质数:除了1和本身没有其他因数 i=2 for i in range(2,100): # 取i从2开始,2 最小的质数for j in range(2,i) ...
- python分词统计词频_-用python找出一篇文章中词频最高的20个单词
python统计一个大文件中很多小文件里面的词频 #!/usr/bin/env python3.6 from collections import Counter from functools imp ...
- python找出素数_[Python 1] 如何使用Python找质数?
学习生物信息需要熟练掌握一门甚至多门编程语言,比如Python.R.C++,这取决于你的需求. 但语言只是工具,最关键的是如何合理使用工具去解决生物学问题,这需要你去多写.多查.多看来锻炼.不然给你把 ...
最新文章
- 你陪我长大 我陪你变老
- 输出nginx执行过程中函数调用关系
- Python Django创建项目命令
- java代码整合_java合并多个文件的实例代码
- php设置外键约束,关于php:禁用教义外键约束
- 大数据学习笔记19:MR案例——汇总三科成绩表文件
- 在虚拟机linux上安装gdb,linux下gdb的安装和使用
- win32开发(消息机制)
- 【选手分享】菜鸡到大佬的蜕变技巧
- JVM内存分析及导致内存溢出的不健壮代码及解决办法
- list集合去除重复对象
- Mysql触发器与动态完整性
- 服务器控件编程中的控件状态保存机制
- 命名问题导致的一个bug
- Android常用提示框(dialog和popuwindow)
- JAVA数据类型的强制转换
- 如何获得更多表情包_从资产商店获得更多
- PE文件格式偏移参考
- phpstrom中的常用快捷键
- Entry name ‘classes.dex‘ collided
热门文章
- 区块链技术与溯源业务实践。_如何通过区块链技术丰富您的在线业务?
- js13位时间戳转换,10位时间戳转换
- canvas 的save()和restore()方法
- css html 对错号,HTML_DIV+CSS编码时易犯的错误,CSS+DIV是网站标准(或称“WEB - phpStudy...
- 微信小程序获取滚动条高度_小程序超过高度加滚动条 小程序尺寸规范
- 重磅开讲 | 图灵奖得主—— Joseph Sifakis
- 【django】搭建博客教程(2)——Template的使用
- mysql 更新 自我_ClickOnce DIY全自动更新下载升级的自我实现
- 解决:Win10 显示无法连接到Internet,但是还能上网
- win10显示未连接到网络,但是任然可以上网