Skip to content
策略基类/ 支持QIFI协议
Jupyter Notebook Python
Branch: master
Clone or download
Latest commit 6fbb4a3 Nov 16, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
.vscode
QAStrategy
example
jupytertest
.gitignore
LICENSE
README.md
setup.py

README.md

QAStrategy

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

QAStrategy支持QIFI协议

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

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

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

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

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

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

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

  1. self.market_data 此变量为公共变量 记录策略的历史数据 [回测/实时均可用]

  2. self.send_order 此函数为公共函数 但是在不同的基类中, 参数不同

  3. self.acc 此变量为公共变量

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('SELL', '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('BUY', 'CLOSE', price=bar['close'], volume=1)

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


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

更多详细信息参考教程

You can’t perform that action at this time.