字段
| 字段 | 介绍 |
|---|---|
| fno.filter_ls | 获取on_select里allow传递的数据,list[dict]类型 |
| fno.filter_df | 获取on_select里allow传递的数据,DataFrame类型 |
下单相关函数
buy 买入
买入当前标的,返回订单对象
| 参数 | 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
| symbol | str | 无 | 标的 | |
| vol | int | 无 | 买入数量 | |
| price | float | 无 | 买入价格 | |
| remark | str | 无 | 备注 | |
| 返回 | Order订单对象 | |||
Details
查看更多使用详情
python
def on_filter_next(fno: FilterNextOp):
fno.buy("sz.000001", 1000, 10.5, "买入备注")sell 卖出
卖出当前标的,返回订单对象
| 参数 | 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
| symbol | str | 无 | 标的 | |
| vol | int | 无 | 卖出数量 | |
| price | float | 无 | 卖出价格 | |
| remark | str | 无 | 备注 | |
| 返回 | Order订单对象 | |||
Details
查看更多使用详情
python
def on_filter_next(fno: FilterNextOp):
fno.sell("sz.000001", 1000, 10.5, "卖出备注")signal 信号发送
在回测模式中,可以发送信号,统计N天后价格的涨跌幅。
| 参数 | 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
| price | float | 无 | 信号价格 | |
| signal_name | str | 无 | 该信号命名或者备注 | |
| 返回 | void | |||
Details
查看更多使用详情
python
def on_next(no: NextOp):
no.signal(10.5, "备注")get_asset 获取资产信息
获取资产信息。
| 参数 | 无 | |||
|---|---|---|---|---|
| 返回 | Asset资产对象 | |||
查看更多使用详情
python
def on_next(no: NextOp):
asset = no.get_asset()
asset.cash # 可用资金
asset.frozen_cash # 【冻结资金】 持仓的时候 冻结的本金
asset.unrealized_profit # 【持仓未结算盈亏】
asset.market_value # 持仓市值
asset.total_asset # 总资产 可用资金 + 冻结资金 + 持仓未结算盈亏get_asset_cash 获取可用金额
获取当前账户的可用资金。
| 参数 | 无 | |||
|---|---|---|---|---|
| 返回 | float | |||
查看更多使用详情
python
def on_next(no: NextOp):
no.get_asset_cash()get_position 获取仓位
获取symbol的仓位信息
| 参数 | 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
| symbol | str | 无 | 标的 | |
| 返回 | Position仓位对象 | |||
查看更多使用详情
python
def on_filter_next(fno: FilterNextOp):
position = fno.get_position("sz.000001")
position.symbol # 代码
position.exchange # 交易所
position.market # 市场
position.vol # 持仓数量,股票以'股'为单位, 债券以'张'为单位
position.can_use_vol # 可用数量, 股票以'股'为单位, 债券以'张'为单位
position.open_price # 平均建仓价格
position.open_amount # 建仓总金额 总金额/总数量=平均建仓价格 持仓市值-建仓总金额=当前持仓利润
position.market_value # 市值
position.profit # 当前持仓利润
position.frozen_vol # 冻结数量
position.yesterday_vol # 昨夜拥有数量
position.occupy_cash # 股票:占用资金vol*open_price/期货:占用保证金
position.pos_his # 老仓手数 期货才有 股票没有值
position.pos_today # 今仓手数 期货才有 股票没有值
# ---------------空头【股票没有值】----------------
position.short_vol # 持仓数量,股票以'股'为单位, 债券以'张'为单位
position.short_can_use_vol # 可用数量, 股票以'股'为单位, 债券以'张'为单位
position.short_open_price # 平均建仓价格
position.short_open_amount # 建仓总金额
position.short_market_value # 市值
position.short_profit # 当前持仓利润
position.short_frozen_vol # 冻结数量
position.short_yesterday_vol # 昨夜拥有数量
position.short_occupy_cash # 股票:占用资金vol*open_price/期货:占用保证金
position.short_pos_his # 老仓手数
position.short_pos_today # 今仓手数
# ---------------多空求和【股票没有值】----------------
position.sum_pos # 净持仓手数, ==0表示无持仓或多空持仓手数相等. <0表示空头持仓大于多头持仓, >0表示多头持仓大于空头持仓
position.sum_profit # 总盈亏 多空profit相加
position.sum_occupy_cash # 总占用资金exist_position 判断持仓
是否有持仓 默认检查可用数量。
| 参数 | 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
| symbol | str | 无 | 标的 | |
| is_can_use | bool | False | 是否检查可用数量 | |
| 返回 | bool | |||
查看更多使用详情
python
def on_filter_next(fno: FilterNextOp):
if fno.exist_position("sz.000001"):
print("有持仓")
else:
print("无持仓")
if fno.exist_position("sz.000001",is_can_use=True):
print("有可用持仓")
else:
print("无可用持仓")get_all_position 所有仓位
获取所有仓位。
| 参数 | 无 | |||
|---|---|---|---|---|
| 返回 | list[ Position ]仓位对象 | |||
查看更多使用详情
python
def on_next(no: NextOp):
position_list = no.get_all_position()
position = position_list[0] # 获取第一个持仓
position.symbol # 代码
position.exchange # 交易所
position.market # 市场
position.vol # 持仓数量,股票以'股'为单位, 债券以'张'为单位
position.can_use_vol # 可用数量, 股票以'股'为单位, 债券以'张'为单位
position.open_price # 平均建仓价格
position.open_amount # 建仓总金额 总金额/总数量=平均建仓价格 持仓市值-建仓总金额=当前持仓利润
position.market_value # 市值
position.profit # 当前持仓利润
position.frozen_vol # 冻结数量
position.yesterday_vol # 昨夜拥有数量
position.occupy_cash # 股票:占用资金vol*open_price/期货:占用保证金
position.pos_his # 老仓手数 期货才有 股票没有值
position.pos_today # 今仓手数 期货才有 股票没有值
# ---------------空头【股票没有值】----------------
position.short_vol # 持仓数量,股票以'股'为单位, 债券以'张'为单位
position.short_can_use_vol # 可用数量, 股票以'股'为单位, 债券以'张'为单位
position.short_open_price # 平均建仓价格
position.short_open_amount # 建仓总金额
position.short_market_value # 市值
position.short_profit # 当前持仓利润
position.short_frozen_vol # 冻结数量
position.short_yesterday_vol # 昨夜拥有数量
position.short_occupy_cash # 股票:占用资金vol*open_price/期货:占用保证金
position.short_pos_his # 老仓手数
position.short_pos_today # 今仓手数
# ---------------多空求和【股票没有值】----------------
position.sum_pos # 净持仓手数, ==0表示无持仓或多空持仓手数相等. <0表示空头持仓大于多头持仓, >0表示多头持仓大于空头持仓
position.sum_profit # 总盈亏 多空profit相加
position.sum_occupy_cash # 总占用资金get_all_order 当日所有订单
获取订单号对应订单数据
| 参数 | 无 | |||
|---|---|---|---|---|
| 返回 | list[Order]订单对象 | |||
查看更多使用详情
python
def on_next(no: NextOp):
order_list = no.get_all_order() # 获取订单号对应订单数据
order = order_list[0] # 获取第一个订单
order.symbol # 代码
order.vol # 委托数量
order.price # 委托金额,非限价单的,以实际委托类型price_type为准。
order.order_action # 委托动作
order.order_side # 多空方向 股票只有多
order.price_type # 委托类型 默认限价单
order.is_asynch # 是否异步订单
order.order_remark # 委托备注
order.time_condition # 期货保留字段 时间条件, IOC=立即完成,否则撤销, GFS=本节有效, GFD=当日有效, GTC=撤销前有效, GFA=集合竞价有效
order.order_style_value # 【根据下单函数,程序计算的参数,只做记录展示】 委托风格 所需要的值
order.order_style # 【根据下单函数,程序计算的参数,只做记录展示】 委托风格
order.exchange # 【委托时自动赋值】 交易所
order.market # 【委托时自动赋值】 市场
order.order_sn # 【同步委托时立马有,异步委托时等回调】真实委托订单号
order.order_req # 【异步有值 同步没值】
order.order_cancel_req # 【异步取消有值 同步没值】
order.order_state # 【根据回调实时更新】 委托状态
order.is_finish # 【根据回调实时更新】代表这个订单已经结束
order.status_msg # 【根据回调实时更新】 委托的描述
order.traded_timestamp # 【根据回调实时更新】 成交时间
order.traded_amount # 【根据回调实时更新】 成交金额 【不包含手续费】
order.traded_vol # 【根据回调实时更新】 成交数量
order.traded_price # 【根据回调实时更新】 成交均价
order.traded_charge # 成交【交易手续费】 实盘接口没有提供,模拟回测和回测有, 手续费 = 印花税 + 佣金(固定单笔收费或者/比例收费 如万1)
order.traded_tax_amount # 成交【印花税】
order.traded_cost_amount # 成交【佣金】
order.create_timestamp # 【委托时自动赋值】 提交时间
order.update_timestamp # 更新时间get_order 获取订单
获取订单号对应订单数据
| 参数 | 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
| order_sn | str | 无 | 订单号 | |
| 返回 | Order订单对象 | |||
查看更多使用详情
python
def on_next(no: NextOp):
order = no.get_order("xxxxxxx") # 获取订单号对应订单数据
order.symbol # 代码
order.vol # 委托数量
order.price # 委托金额,非限价单的,以实际委托类型price_type为准。
order.order_action # 委托动作
order.order_side # 多空方向 股票只有多
order.price_type # 委托类型 默认限价单
order.is_asynch # 是否异步订单
order.order_remark # 委托备注
order.time_condition # 期货保留字段 时间条件, IOC=立即完成,否则撤销, GFS=本节有效, GFD=当日有效, GTC=撤销前有效, GFA=集合竞价有效
order.order_style_value # 【根据下单函数,程序计算的参数,只做记录展示】 委托风格 所需要的值
order.order_style # 【根据下单函数,程序计算的参数,只做记录展示】 委托风格
order.exchange # 【委托时自动赋值】 交易所
order.market # 【委托时自动赋值】 市场
order.order_sn # 【同步委托时立马有,异步委托时等回调】真实委托订单号
order.order_req # 【异步有值 同步没值】
order.order_cancel_req # 【异步取消有值 同步没值】
order.order_state # 【根据回调实时更新】 委托状态
order.is_finish # 【根据回调实时更新】代表这个订单已经结束
order.status_msg # 【根据回调实时更新】 委托的描述
order.traded_timestamp # 【根据回调实时更新】 成交时间
order.traded_amount # 【根据回调实时更新】 成交金额 【不包含手续费】
order.traded_vol # 【根据回调实时更新】 成交数量
order.traded_price # 【根据回调实时更新】 成交均价
order.traded_charge # 成交【交易手续费】 实盘接口没有提供,模拟回测和回测有, 手续费 = 印花税 + 佣金(固定单笔收费或者/比例收费 如万1)
order.traded_tax_amount # 成交【印花税】
order.traded_cost_amount # 成交【佣金】
order.create_timestamp # 【委托时自动赋值】 提交时间
order.update_timestamp # 更新时间重要函数
set_symbol 设置标的结果
- 设置回测的标的,多次调用只会保留最后一次的
- 如果设置的值为空[]的,则相当于清空
| 参数 | 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
| symbol | list[str] | str | 无 | 单个标的或者多个标的的list列表,如[sh.600007, sz.000001] | |
| 返回 | 无 | |||
查看更多使用详情
python
def on_filter_select(fso: FilterSelectOp):
u_log.info("开始筛选", fso.node_date, u_df.lenm(fso.filter_df))
# 上涨天数
df_sorted = fso.filter_df.sort_values(by=['上涨天数', '涨幅总和'], ascending=False)
# 取前20个
top_20 = df_sorted.head(1)
# 存储筛选结果
fso.set_symbol(top_20.symbol.to_list()) add_symbol 增加标的
- 在已有的基础上增加标的,与set的区别是set会清除原来的标的,add是在原有的基础上增加标的
| 参数 | 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
| symbol | list[str] | str | 无 | 单个标的或者多个标的的list列表,如[sh.600007, sz.000001] | |
| 返回 | 无 | |||
查看更多使用详情
python
def on_filter_select(fso: FilterSelectOp):
fso.add_symbol(['sh.600007', 'sz.000001']) clear_symbol 清理已经选中的标的
- 清理已经选中的标的
| 参数 | 无 | |||
|---|---|---|---|---|
| 返回 | 无 | |||
查看更多使用详情
python
def on_filter_select(fso: FilterSelectOp):
fso.clear_symbol()