PTrade中tick_data函数可以调用哪些接口?
想确认tick_data中可以使用哪些函数
问题描述
解决方案
在 PTrade 量化交易平台中,tick_data 函数专门用于处理 tick 级别的高频策略逻辑,每隔 3 秒执行一次(仅在交易模块可用,执行时间为 9:30 -- 14:59)。
为了保证策略的稳定性和执行效率,PTrade 对在 tick_data 中可调用的 API 接口进行了明确的规定。以下是 tick_data 函数中支持调用的完整接口列表,按功能分类如下:
1. 行情与数据获取接口
- 基础行情:
get_history,get_price,get_snapshot,get_gear_price - 高频/逐笔数据:
get_individual_entrust,get_individual_transcation,get_tick_direction,get_sort_msg - 股票/指数信息:
get_stock_name,get_stock_info,get_stock_status,get_stock_exrights,get_stock_blocks,get_index_stocks,get_industry_stocks,get_fundamentals,get_Ashares - ETF/可转债信息:
get_etf_info,get_etf_stock_info,get_etf_stock_list,get_etf_list,get_cb_list - 日期时间:
get_trading_day,get_all_trades_days,get_trade_days
2. 交易下单与撤单接口
- Tick 专属下单:
order_tick(注意:在tick_data中进行普通股票买卖,只能使用order_tick接口) - 常规下单(部分支持):
order,order_target,order_value,order_target_value,order_market - 特殊业务下单:
ipo_stocks_order(新股申购),after_trading_order,after_trading_cancel_order(盘后交易),etf_basket_order,etf_purchase_redemption(ETF申赎),debt_to_stock_order(债转股) - 撤单:
cancel_order,cancel_order_ex
3. 账户与订单查询接口
- 订单查询:
get_open_orders,get_order,get_orders,get_all_orders,get_trades - 持仓查询:
get_position,get_positions
4. 融资融券(两融)接口
- 两融交易:
margin_trade,margincash_open,margincash_close,margincash_direct_refund,marginsec_open,marginsec_close,marginsec_direct_refund - 两融查询:
get_margincash_stocks,get_marginsec_stocks,get_margin_contract,get_margin_contractreal,get_margin_assert,get_assure_security_list,get_margincash_open_amount,get_margincash_close_amount,get_marginsec_open_amount,get_marginsec_close_amount,get_margin_entrans_amount
5. 期货交易接口
- 期货下单:
buy_open,sell_close,sell_open,buy_close - 期货查询:
get_instruments
6. 技术指标与工具接口
- 技术指标:
get_MACD,get_KDJ,get_RSI,get_CCI - 系统工具:
set_universe,log,is_trade,check_limit,get_user_name,get_research_path,get_trade_name,create_dir - 消息通知:
send_email,send_qywx
💡 使用注意事项
- 专属下单接口:在
tick_data中,强烈建议使用order_tick进行下单,它支持指定盘口档位(如买一、卖二)进行委托。 - Data 参数差异:
tick_data(context, data)中的data参数与handle_data中的不同。它是一个嵌套字典,包含order(逐笔委托)、tick(当前tick数据)、transcation(逐笔成交)三项。需要开通 Level2 行情才能获取逐笔数据。
示例代码:
def tick_data(context, data):
security = '600570.SS'
# 获取买一价
current_price = eval(data[security]['tick']['bid_grp'][0])[1][0]
if current_price > 38.19:
# 按买一档价格下单 100 股
order_tick(security, 100, '1')