• Stars
    star
    209
  • Rank 188,325 (Top 4 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created about 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

策略基类/ 支持QIFI协议

QAStrategy

策略基类/ 基于QAAccount/QACEPEnging/QASPMS/QAREALTIMECollector/QATRADER

QAStrategy支持QIFI协议

QAStrategy 的实盘使用天勤的下单网关(Open-Trade-Gateway) 如果是天勤的用户 你可以理解为这是另一个版本的tqsdk

QAStrategy 的回测也兼容QUANTAXIS的QAAccount 以及QACommunity的可视化内容

QAStrategy 是QUANTAXIS 第一个面向交易员/策略开发者的 用户友好型项目, 致力于降低使用门槛和成本, 快速编写/测试/模拟你的策略

当你用QAStrategy写完一个回测 你可以无缝的把他直接改成一个实时模拟策略

QAStrategy 面向场景, 主要有3个策略基类

(PS: 股票日内回转(有底仓的情况) QAStrategy也一并支持, 默认给予10万股, 使用debug_t0()/run_backtestt0())

  • QAStrategyCTABase cta模板/ 单标的模板 支持股票/期货

  • QAStrategyStockBase 股票池模板/ 多标的模板 支持股票/期货

  • QAStrategyHedgeBase 对冲模板/ 双标的模板 (目前没写完)

策略开发者/交易员 只需要面向你自己的主要方向, 选择一个你想要的模板, 继承并开发即可快速在2分钟内完成一个简单策略

为什么使用QAStrategy

  1. 你们根本不会用quantaxis 大部分人还停留在pandas都不会用的阶段

  2. quantaxis 项目过于灵活, 并且文档缺失较多 除非二次开发人员和我自己 都不推荐直接使用quantaxis

  3. 你应该专注在策略开发上 而不是先学个python

  4. QAStrategy是 无缝兼容回测/模拟/实盘的 你可以较为快速的直接上手

  5. 支持QAStrategy的周边手机APP即将上线, QACommunity桌面端也是无缝兼容的

书生造反 十年不成 不要总是在想这个难那个不好用了 just do it 现在开始比什么都重要 !#

如果你在QAStrategy的过程中遇到了任何问题 都可以直接发issue要求群主给你解决!

如何使用QAStrategy

我们推荐你使用QUANTAXIS的docker环境来直接上手

如果你希望手动部署 可以参考QUANTAXIS项目中的issue 部署好行情网关 数据更新以及相应其他的设置(mq/db)

当你通过QUANTAXIS DOCKER打开了 81界面, 即可进入研究选项

QAStrategy是内置在本docker环境中的, 直接调用即可

在每个策略基类中 有一些是 大家共享的公共变量 还有一些是基类自己的变量

=====================================================================================

varibles 一些变量

  • self.market_data 此变量为公共变量 记录策略的历史数据 [回测/实时均可用]
  • self.send_order 此函数为公共函数 但是在不同的基类中, 参数不同
  • self.running_time 当前运行时间
  • self.acc 此变量为公共变量 代表了账户
  • self.market_datetime
  • self.bar_id 在回测中使用, 及bar的id数
  • self.latest_price 一个json格式的最新价格变量 一般在实时模拟中使用
  • self.isupdate
  • self.dt 当前时间(datetime的缩写)

[可以在user_init中重写的变量]

  • self.username 此为回测的时候的账户名
  • self.password 此为回测的时候的密码

一些比较重要的变量[篇幅较长 在首页我就不展开讲 可以移步链接中的教程]

持仓Position

账户 Account

数据 MarketData

订单 Order

functions 常用函数

  • 画图函数 self.plot(name, data, format)

  • 获取当前code self.get_code()

  • self.ind2str(ind, ind_type)

  • 获取品种所在的交易所 self.get_exchange(code)

  • 获取品种持仓 self.get_positions(code)

  • 获取当前现金 self.get_cash()

  • 获取某个品种的marketdata self.get_code_marketdata(code)

  • 获取当前的maretdata切片 self.get_current_marketdata()

  • 订阅数据 (实时模拟用/ 回测不需要) self.subscribe_data(code, frequence, data_host, data_port, data_user, data_password, model='py')

  • 用当日tick数据进行回测(期货) self.debug_currenttick(freq)

  • 用历史tick数据进行回测(期货) self.debug_histick(freq)

  • 使用t0模式进行回测 self.debug_t0()

  • 回测(不存储账户数据的模式) self.debug()

  • 回测(存储账户数据的模式) self.run_backtest()

  • 实时模拟(阻塞形式 不能同时多开很多个) self.run_sim()

  • 实时模拟(非阻塞模式 可以同时开很多个) self.debug_sim()

inherit functions 常用继承函数 (一般来说 就是你需要自定义的函数)

用户初始化函数

def user_init(self):

每日开盘前运行的函数 默认是自带的 你可以改写

def on_dailyopen(self):
    pass

每日收盘后运行的函数 默认是自带的 你可以改写

def on_dailyclose(self):
    pass

在你订阅分钟级别的数据的时候, 你需要继承并改写on_bar函数

def on_bar(self, bar):

    print(bar)

在你订阅tick级别的数据的时候, 你需要继承并改写on_tick函数

def on_tick(self, tick):
    pass

强制平仓函数 默认是自带的 你可以改写

def force_close(self):
    pass

在发单后会运行的函数 默认是自带的 你可以改写

def check_order(self, direction, offset, code= None):
    pass

当发单失败的时候运行的函数 默认是自带的 你可以改写

def on_ordererror(self, direction, offset, price, volume):
    pass

=====================================================================================

一个常见的示例如下 更多的示例可以参考 /example 中的例子

from QAStrategy import QAStrategyCTABase
import QUANTAXIS as QA

class CCI(QAStrategyCTABase):
    def on_bar(self, bar):
        """你的大部分策略逻辑都是在此写的
        """
        res = self.cci()  
        print(res.iloc[-1])
        if res.CCI[-1] < -100:
            print('LONG')
            if self.positions.volume_long == 0:
                self.send_order('BUY', 'OPEN', price=bar['close'], volume=1)
            if self.positions.volume_short > 0:
                self.send_order('BUY', 'CLOSE', price=bar['close'], volume=1)

        elif res.CCI[-1] > 100:
            print('SHORT')
            if self.positions.volume_short == 0:
                self.send_order('SELL', 'OPEN', price=bar['close'], volume=1)
            if self.positions.volume_long > 0:
                self.send_order('SELL', 'CLOSE', price=bar['close'], volume=1)

    def cci(self,):
        """你可以自定义你想要的函数
        """
        return QA.QA_indicator_CCI(self.market_data, 61)


strategy = CCI(code='rb2005', frequence='1min',
                strategy_id='a3916de0-bd28-4b9c-bea1-94d91f1744ac')
strategy.run_backtest()

更多详细信息参考教程

More Repositories

1

QUANTAXIS

QUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案
Python
7,471
star
2

QUANTAXIS_Strategy

QUANTAXIS 策略文档中心
Python
118
star
3

qaaccount-rs

rewrite quantaxis in rust / backtest/ trading/
Rust
98
star
4

QASTRATEGY101

strategy 101 从今天开始 逐步开放101个基础策略的QA实现 包含5个大类
Jupyter Notebook
89
star
5

QUANTAXIS_RealtimeCollector

quantaxis 实时行情采集/分发
Python
51
star
6

qatrader-rs

qatrader 支持单机上万实盘/模拟盘账户的 高性能QATRADER
Rust
45
star
7

QUANTAXIS_Webkit

QUANTAXIS事务性后台和前端网站
JavaScript
38
star
8

QAFactor_Alpha101

alpha101 的 quantaxis 适配版本
Python
36
star
9

QIFIAccount

QIFI协议下的Account实现
Jupyter Notebook
26
star
10

QATrader

QATRADER
Python
24
star
11

qamarket-rs

rust for market collection
Rust
20
star
12

quant

代码迁移到 https://github.com/yutiansut/quantaxis
Python
19
star
13

qamazing_community

qamazing 社区版本
CSS
14
star
14

QUANTAXIS_WEBSERVER

quantaxis_webserver
Python
13
star
15

QIFI

Quantaxis Differential Information Flow for Finance Intergration
13
star
16

QATradeG

一键部署的期货trade gateway
13
star
17

danmuWordCloud

各大直播平台的弹幕获取后,基于文本挖掘,制作关键词云
Python
13
star
18

QUANTAXIS_SPIDER

QUANTAXIS 爬虫mod python/javascript/mongodb
Python
12
star
19

QUANTAXIS_RandomPrice

QARandomPrice_TickPrice_by_OU process
Python
12
star
20

QACTPBeeBroker

QUNATAXIS CTPBee Broker
Python
12
star
21

QUANTAXIS_Trade

QUANTAXIS 实盘模块
Python
11
star
22

qafactor-rs_release

qafactor-rs的release version
10
star
23

QAPUBSUB

QA PUB/SUB
Python
9
star
24

qadata-rs

data source
Rust
8
star
25

QAOTGBROKER

quantaxis otgbroker
Python
7
star
26

yutiansut

6
star
27

qifimanager

quantaxis qifi manager
Python
6
star
28

QUANTAXIS_RUN

automatic run
Python
6
star
29

qatrade_admin

lite trade terminal
JavaScript
5
star
30

VIFI

QUANTAXIS可视化标准协议
5
star
31

QANotify

一个微信推送和运维工具
Python
5
star
32

QUANTAXISRUNTIME

实时行情订阅分发和推送
C#
5
star
33

QATRADECHART

TRADE CHARTS
JavaScript
4
star
34

QUANTAXIS_CythonPart

部分影响性能的模块的cython重写
Python
4
star
35

QAStrategyCenter

StrategyTemplete
Python
4
star
36

QAVIFIServer

quantaxis vifi server
Python
4
star
37

qaenvironment

quantaxis environment
Python
4
star
38

QUANTAXIS_Monitor_GUI

Python
4
star
39

qadataframe-rs

qadataframe-rs
Python
3
star
40

QUANTAXIS_CRAWLY

Python
3
star
41

QAFACTOR

QAFactor PROJECTS
Python
3
star
42

CodeFactory

各种各样的代码仓库
JavaScript
3
star
43

Stock-Price-Prediction-Examples

A batch of various AI models applied to predicting stock like financial instrument prices
Jupyter Notebook
3
star
44

QUANTAXIS_DASK

dask intergration
Jupyter Notebook
2
star
45

QUANTAXIS_EventBus

Event Network for QUANTAXIS
Python
2
star
46

NEXTWonder

量化孵化模式
2
star
47

QASchedule

Schedule for job
Python
2
star
48

QATrader_Go

golang version QATRADER
Go
2
star
49

QAOpenDocuments

QUANTAXIS 开放式文档
2
star
50

QAKline

Kline
JavaScript
2
star
51

QAOrderTrack

QAOrderTrack
2
star
52

QUANTAXISDataTool

QUANTAXIS Data Tools 数据以及数据库维护工具
Python
2
star
53

QUANTAXIS_VSCODE

QUANTAXIS VSCODE EXTENSION
JavaScript
2
star
54

marl-optimal-execution

Jupyter Notebook
1
star
55

qaservicedetect

适用于DOCKER的服务发现机制
Python
1
star
56

QABOOK

this is a template tex doc for quantaxis
TeX
1
star
57

QAMongoDBDocker

quantaxis_mongodb_docker
Shell
1
star
58

QATask

task mapper/ receiver
Python
1
star
59

QUANTAXIS_STORAGE

QUANTAXIS 数据库组件 Mongodb与MySQL通讯 交易回测数据 用户策略数据
C
1
star
60

QAFactors

QUANTAXIS生产因子
1
star
61

QUANTAXISGpuAcceleration

Python
1
star
62

QUANTAXIS_WORKSPACE

quantaxis workspace file
1
star
63

QAStrategySchedule

QAStrategySchedule 策略调度分发, 分布式回测收集, 快速验证Rank计算 PBO/CSCV
1
star
64

jupyterseries

jupyter
Python
1
star
65

qafeature

feature is all u need
1
star
66

QA_OMS_SOLUTION

QA_OMS_SOLUTION
1
star
67

QUANTAXIS_EXCHANGE

EXCHANGE_CENTER for QUANTAXIS
1
star
68

QUANTAXISMessageQueue

一套多语言公用的消息队列和数据结构
Protocol Buffer
1
star
69

QA_AtBroker

QUANTAXIS_HaifengAtpy_Broker
Python
1
star
70

web

website www.yutiansut.com
CSS
1
star
71

tdx.js

Tdx JS接口
JavaScript
1
star