# coding=utf-8
from __future__ import print_function, absolute_import, unicode_literals
from gm.api import *
'''
本策略通过获取SHSE.000300沪深300的成份股数据并统计其30天内
开盘价大于前收盘价的天数,并在该天数大于阈值10的时候加入股票池
随后对不在股票池的股票平仓并等权配置股票池的标的,每次交易间隔1个月.
回测数据为:SHSE.000300在2015-01-15的成份股
回测时间为:2017-07-01 08:00:00到2017-10-01 16:00:00
'''
def init(context):# 每月第一个交易日的09:40 定时执行algo任务schedule(schedule_func=algo, date_rule='1m', time_rule='09:40:00')# context.count_bench累计天数阙值context.count_bench = 10# 用于对比的天数context.count = 30# 最大交易资金比例context.ratio = 0.8
def algo(context):# 获取当前时间now = context.now# 获取上一个交易日last_day = get_previous_trading_date(exchange='SHSE', date=now)# 获取沪深300成份股context.stock300 = get_history_constituents(index='SHSE.000300', start_date=last_day,end_date=last_day)[0]['constituents'].keys()# 获取当天有交易的股票not_suspended_info = get_history_instruments(symbols=context.stock300, start_date=now, end_date=now)not_suspended_symbols = [item['symbol'] for item in not_suspended_info if not item['is_suspended']]trade_symbols = []if not not_suspended_symbols:print('没有当日交易的待选股票')returnfor stock in not_suspended_symbols:recent_data = history_n(symbol=stock, frequency='1d', count=context.count, fields='pre_close,open',fill_missing='Last', adjust=ADJUST_PREV, end_time=now, df=True)diff = recent_data['open'] - recent_data['pre_close']# 获取累计天数超过阙值的标的池.并剔除当天没有交易的股票if len(diff[diff > 0]) >= context.count_bench:trade_symbols.append(stock)print('本次股票池有股票数目: ', len(trade_symbols))# 计算权重percent = 1.0 / len(trade_symbols) * context.ratio# 获取当前所有仓位positions = context.account().positions()# 如标的池有仓位,平不在标的池的仓位for position in positions:symbol = position['symbol']if symbol not in trade_symbols:order_target_percent(symbol=symbol, percent=0, order_type=OrderType_Market,position_side=PositionSide_Long)print('市价单平不在标的池的', symbol)# 对标的池进行操作for symbol in trade_symbols:order_target_percent(symbol=symbol, percent=percent, order_type=OrderType_Market,position_side=PositionSide_Long)print(symbol, '以市价单调整至权重', percent)
if __name__ == '__main__':'''strategy_id策略ID,由系统生成filename文件名,请与本文件名保持一致mode实时模式:MODE_LIVE回测模式:MODE_BACKTESTtoken绑定计算机的ID,可在系统设置-密钥管理中生成backtest_start_time回测开始时间backtest_end_time回测结束时间backtest_adjust股票复权方式不复权:ADJUST_NONE前复权:ADJUST_PREV后复权:ADJUST_POSTbacktest_initial_cash回测初始资金backtest_commission_ratio回测佣金比例backtest_slippage_ratio回测滑点比例'''run(strategy_id='strategy_id',filename='main.py',mode=MODE_BACKTEST,token='token_id',backtest_start_time='2017-07-01 08:00:00',backtest_end_time='2017-10-01 16:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=10000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001)

集合竞价选股(股票)相关推荐

  1. python 股票竞价数据_GitHub - TruthHun/auction-stock: 集合竞价选股(股票),基于收盘价与前收盘价的选股策略...

    # coding=utf-8 from __future__ import print_function, absolute_import, unicode_literals from gm.api ...

  2. 集合竞价如何买入_世界上最稳健的抓涨停方法“10分钟集合竞价”选股诀窍,买入直接稳赚10个点,赚到笑...

    (本文由公众号越声擒牛(ysjfh953))整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负.) 优先: 1.有新闻主题股.消息优先 2.当前热炒股优先(如新闻消息,如低价的,高转送 ...

  3. 聚宽策略一 价值选股股票池策略

    价值选股股票池策略 基于价值选股股票池策略(第一个量化策略,基于聚宽平台,之后会改进) 代码如下: import jqdata import pandas as pd import numpy as ...

  4. 集合竞价如何买入_如何在集合竞价买卖股票

    今天大盘全天以震荡盘整为主,盘中出现两次回档,一波甚于一波,14点过后指数启稳,展开一波快速拉升,指数神奇般地翻红,以小涨3.71个点报收于2070点.指数目前是连涨3个交易日了,股民们又在开始议论牛 ...

  5. 集合竞价如何买入_如何在集合竞价买入股票?

    烟已点,就用这一根烟的时间讲讲,相信您通过这些会对集合竞价有一个清晰的认知的. 一. 集合竞价适合哪种人 适合:1. 喜欢做短线的人2. 喜欢做涨停板/想抓住涨停版的人/做连板的人3. 上班族没时间盯 ...

  6. 经典的股票量化交易策略(含源码)

    1.多因子选股(股票) 多因子模型是一类重要的选股模型,它的优点是能够综合很多信息最后得出一个选股结果.多因子模型的表现相对来说也比较稳定,因为在不同的市场情况下,总有一些因子会发挥作用.因此,在量化 ...

  7. python交易策略源码_经典的股票量化交易策略(含源码)

    1.多因子选股(股票) 多因子模型是一类重要的选股模型,它的优点是能够综合很多信息最后得出一个选股结果.多因子模型的表现相对来说也比较稳定,因为在不同的市场情况下,总有一些因子会发挥作用.因此,在量化 ...

  8. 股票日回易略(附源码

    原 股票日内回转交易策略(附源码) 什么是日内交易? ​ 日内交易(Day Trade)是一种交易模式.主要是指持仓时间短,不留过夜持仓的交易方式.日内交易捕捉入市后能够马上脱离入市成本的交易机会,入 ...

  9. 股票内交易略(源码)

    原 股票日内回转交易策略(附源码) 什么是日内交易? ​ 日内交易(Day Trade)是一种交易模式.主要是指持仓时间短,不留过夜持仓的交易方式.日内交易捕捉入市后能够马上脱离入市成本的交易机会,入 ...

最新文章

  1. Silverlight2 边学边练 之五 视频
  2. 25. K 个一组翻转链表
  3. arduinowifi.send怎么获取响应_Vue3.0 响应式原理 (一)
  4. Android快速开发框架XUtils
  5. libcareplus一个Qemu-6.1.0热补丁示例
  6. BART原理简介与代码实战
  7. Xml遍历某一节点值
  8. 5.go 代码包 package
  9. 区块链+”来了,区块链金融将如何颠覆传统金融
  10. Proteus8.6 软件下载
  11. 可汗学院:宏观经济学笔记
  12. STM32和51最小系统原理图以及PCB板图以及元件库
  13. 数据库中update怎么用事例_Oracle的update语句set里使用子查询的例子解释
  14. Windows PowerShell 使用SDKMAN
  15. 18行的python快递查询
  16. vue3组件之间通信(一)——父传子属性和方法
  17. 基于融云的即时通讯开发(一)
  18. AD仿真功能描述文档
  19. python 文件夹拷贝
  20. html+css+js+快速入门

热门文章

  1. 创业起步?先收藏这份终极指南
  2. [视频整理]使您成为windows专家的一些学习习惯
  3. Android开发之连接实体手机进行开发的步骤 遇到的“an app is obsuring...“的问题及解决
  4. 高等几何——变换群与几何学8
  5. 基于Java实现的新冠肺炎疫情实时动态地图
  6. QGridLayout(表格布局)详细使用说明
  7. ​微信小程序开发难?资深大V教您微信小程序制作步骤和方法​
  8. Windows小技巧 -- 命令行窗口打开指定目录的资源管理器
  9. 使用 Web Speech API 在浏览器中朗读文本
  10. 专业工作站与高级PC区别及品牌机对比