1. 一些基本概念
取行情参数count: 返回以end_time往前计算K线数量,
快速计算: 运行(不是回测)时:bar的数量(以最近往前这计算)
注意: 圆测时只以回测开始--结束的时间为准.
回测时,历史K线可以发出交易信号,为了防止实盘时历史bar发出交易信号,应该这样写:
def handlebar(ContextInfo):
if not ContextInfo.is_last_bar():
#历史k线不应该发出实盘信号 跳过
return
is_new_bar () 是否为bar的最新一个tick分笔.
2.python的一些数据处理方法
1.遍历对象所有属性(持仓对象为例)
position = xt_trader.query_stock_positions(acc)
order = position[0] # 这里是你的 XtOrder 对象
# 遍历对象的所有属性
for attr_name in dir(order):
# 检查是否是以双下划线开头或结尾的特殊属性
if not attr_name.startswith('__') and not attr_name.endswith('__'):
# 获取属性的值
attr_value = getattr(order, attr_name)
# 打印属性的名称和值
print(f'{attr_name}: {attr_value}')
2. 将pd非索引字段列数据转为列表:
ls = list ( data[C.stock].iloc[ : , 0 ] )
data是获取到的行情数据,['close','open'] ,0: close ; .1: open
3.一些API
1. 主图股票代码: C.stockcode + '.' + C.market
主图周期: C.period
2.每根bar完成时间: bar_date = timetag_to_datetime(C.get_bar_timetag(C.barpos), '%Y%m%d %H%M%S')
C.barpos: bar索引号; C.get_bar_timetag(n): 第n根bar的时间戳
3.是否最后一根K线:
4交易函数
1)综合交易
2) 查询
get_last_order_id(account, 'stock', 'order','xxz2')
获取名为xxz2的:最近一次的委托ID编号,无xxz2时是所有委托的最近一次ID.
get_value_by_order_id(8214568,account, 'stock', 'order')
查询委托ID编号为8214568的委托信息.
get_trade_detail_data(account, 'stock', 'order','xxz2')
查询名为xxz2相关的所有委托信息,无xxz2时是所有的委托.
------------------------------------------------------
'stock':股票 'credit':信用
'order': 委托 'deal': 成交 'position':持仓 'account': 资金帐户