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': 资金帐户

 

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐