qstrategy

Submodules

Classes

Broker

交易券商基类,实现交易券商,要继承于该类

Monitor

监控策略基类,实现监控策略,要继承于该类

Risk

风控策略基类,实现风控策略,要继承于该类

Select

选股策略基类,实现选股策略,要继承于该类

Strategy

交易策略基类,实现交易策略,要继承于该类

ShareState

Functions

do_select(→ Union[List[Dict], pandas.DataFrame])

执行选股

Package Contents

class qstrategy.Broker

Bases: qstrategy.base_strategy.BaseStrategy

Inheritance diagram of qstrategy.Broker

交易券商基类,实现交易券商,要继承于该类

on_broker(state: qstrategy.qstrategy.ShareState, quots: qstrategy.event.RtQuot)

有行情时回调,一般券商不关心行情,所以不用管,为了接口完整性而已

参数:
  • state (ShareState) – 共享状态

  • quots (RtQuot) – 行情

on_entrust(state: qstrategy.qstrategy.ShareState, entrust: qstrategy.tradecomm.Entrust)

委托请求,一般券商接口收到后,发送委托单给真实的券商

参数:
  • state (ShareState) – 共享状态

  • entrust (Entrust) – 委托单

on_poll(state: qstrategy.qstrategy.ShareState)

沦陷交易单据状态,真实的券商结果缓存后,由这个接口返回的交易系统

参数:

state (ShareState) – 共享状态

class qstrategy.Monitor

Bases: qstrategy.base_strategy.BaseStrategy

Inheritance diagram of qstrategy.Monitor

监控策略基类,实现监控策略,要继承于该类

on_monitor(state: qstrategy.qstrategy.ShareState, quots: qstrategy.event.RtQuot)

有行情时回调,实现监控逻辑

参数:
  • state (ShareState) – 共享状态

  • quots (RtQuot) – 行情

class qstrategy.Risk

Bases: qstrategy.base_strategy.BaseStrategy

Inheritance diagram of qstrategy.Risk

风控策略基类,实现风控策略,要继承于该类

on_risk(state: qstrategy.qstrategy.ShareState, quots: qstrategy.event.RtQuot)

有行情时回调,实现风控逻辑

参数:
  • state (ShareState) – 共享状态

  • quots (RtQuot) – 行情

class qstrategy.Select

Bases: qstrategy.base_strategy.BaseStrategy

选股策略基类,实现选股策略,要继承于该类

select(state: qstrategy.qstrategy.ShareState, code: str, name: str)

选股时回调,计算选择逻辑

参数:
  • state (ShareState) – 共享状态

  • code (str) – 代码

  • name (str) – 名称

class qstrategy.Strategy

Bases: qstrategy.base_strategy.BaseStrategy

Inheritance diagram of qstrategy.Strategy

交易策略基类,实现交易策略,要继承于该类

on_trade(state: qstrategy.qstrategy.ShareState, quots: qstrategy.event.RtQuot)

有行情时回调,实现交易逻辑

参数:
  • state (ShareState) – 共享状态

  • quots (RtQuot) – 行情

class qstrategy.ShareState(loader: qdatac.loader.BlockLoader, is_trading: bool, is_started: bool, account: qstrategy.tradecomm.Account | None = None)
property loader: qdatac.loader.BlockLoader

Loader

property account: qstrategy.tradecomm.Account | None

Account

property events: List[ast.Dict]

Events

property is_trading: bool

is_trading

property is_started: bool

is_started

can_buy(price: float, volume: int) bool

测试是否可以买

参数:
  • price (float) – 价格

  • volume (int) – 量

返回类型:

bool

can_sell(code: str) int

测试是否可以卖

参数:

code (str) – 代码

返回:

可卖量

返回类型:

int

can_cancel(code: str) List[qstrategy.tradecomm.Entrust] | None

是否可以取消委托

参数:

code (str) – 代码

返回:

可取消的委托单

返回类型:

Optional[List[Entrust]]

get_position_volume(code: str) Tuple[int, int]

返回头寸的量和可用量

参数:

code (str) – 代码

返回:

(量,可用量)

返回类型:

Tuple[int, int]

get_position(code: str | None = None) List[qstrategy.tradecomm.Position] | None

返回头寸列表

参数:

code (Optional[str], optional) – 代码,如果没有,则返回全部

返回:

头寸列表

返回类型:

Optional[List[Position]]

buy(signal: qstrategy.tradecomm.Signal)

发出买信号

参数:

signal (Signal) – 信号

sell(signal: qstrategy.tradecomm.Signal)

发出卖信号

参数:

signal (Signal) – 信号

cancel(signal: qstrategy.tradecomm.Signal)

发出取消信号

参数:

signal (Signal) – 信号

subscribe(codes: List[str])

订阅行情

参数:

codes (List[str]) – 代码列表

emit(event: qstrategy.event.Event)

发出事件

参数:

event (Event) – 事件

qstrategy.do_select(strategy: qstrategy.select.Select, loader: qdatac.loader.BlockLoader, typ: str, params: qstrategy.tradecomm.Params | None = None, with_progress: bool = False, to_frame: bool = True) List[Dict] | pandas.DataFrame

执行选股

参数:
  • strategy (Select) – 策略实例

  • loader (BlockLoader) – Loader

  • typ (str) – 类型:stock, bond, fund

  • params (Optional[Params], optional) – 策略参数

  • with_progress (bool, optional) – 是否显示进度条,默认是不显示的。

  • to_frame (bool, optional) – 是否转换为DataFrame格式,默认 True.

返回类型:

Union[List[Dict], pd.DataFrame]