新闻 发表于 2025-10-20 09:22

AI智能量化投研平台

作者:微信文章
      又一款免费免费免费量化平台来了,它就是我们的HT-MATIC,它可以根据你的交易思路让AI协助编写策略代码,它依托深厚的业务积累与先进的技术平台,融合 AI技术,为客户提供集数据探索、因子研究、策略开发和信号提示于一体的量化全周期智能量化投研解决方案。


#进入量化平台


登录Matic之后在主页面点击量化菜单进入量化平台



进入量化平台可以看到菜单有:首页、编写策略、数据平台、因子研究、我的策略、量化学院和知识库



数据平台展示了目前系统中支持的数据,比如期货日线行情数据,点击后进入详情页面,可以查看表结构、表文档、 使用示例以及更新记录。



因子研究展示了目前系统中支持的因子,可以在此对因子进行绩效对比,也可创建自己的因子。



编写策略是量化平台内嵌的开发环境AIStudio,主要在此来实现策略开发。



我的策略用于管理已发布的策略,可以展示提交到模拟交易或者实盘交易的策略名称、今日收益、累计收益、运行时间、交易账号等信息



策略社区是一个用户可以提问、交流和分享量化投资策略的地方,在这里可以获取到他人分享的优质策略模型。

量化学院和知识库是知识分享平台,学院会不定期上线平台教学视频。知识库提供了平台的一些使用文档以及接口文档等知识性的文档,也可在此创建自己的私人知识库。

编写策略是量化平台内嵌的开发环境AIStudio,主要在此来实现策略开发。

下面主要给大家介绍下AI协助编写策略代码技巧

1、我们在量化首页的AI对话框里直接输入:基于螺纹钢主力合约,帮我开发一个双均线的期货趋势跟踪策略,初始资金是5万,不要使用额外参数,如图





2、AI智能助手输出代码如下



3、点击运行策略,表现如下




4、完整代码如下
from bigquant import bigtrader, dai

import pandas as pd

def initialize(context: bigtrader.IContext):

    context.logger.info("开始计算信号因子...")

    sql = """

    SELECT

      date,

      instrument,

      dominant,

      close,

      m_avg(close, 5) as sma,

      m_avg(close, 20) as lma,

      CASE

            WHEN sma > lma THEN -1

            WHEN sma < lma THEN 1

            ELSE 0

      END as signal

    FROM cn_future_bar1d

    LEFT JOIN cn_future_dominant USING (date, instrument)

    WHERE instrument='rb8888.SHF'

    """

    df = dai.query(sql, filters={"date": }).df()

    context.data = df

    context.lots = 1 # 每次交易1手

def handle_data(context: bigtrader.IContext, data: bigtrader.IBarData):

    import pandas as pd

    from bigtrader.constantimport Direction

    from bigtrader.constantimport OrderType

    today = data.current_dt.strftime('%Y-%m-%d')

    df_today = context.data == today]

    signal = df_today['signal'].values

    price = df_today['close'].iloc

    dominant_symbol = df_today['dominant'].values

    # 持仓数据

    positions = context.get_account_positions()

    if len(positions) == 0:

      position_symbol = dominant_symbol # 当天无仓位的情况下,默认设置

    else:

      position_symbol = list(context.get_account_positions().keys())

    long_position = context.get_account_position(position_symbol, direction=Direction.LONG).avail_qty #多头持仓

    short_position = context.get_account_position(position_symbol, direction=Direction.SHORT).avail_qty #空头持仓

    curr_position = short_position + long_position # 总持仓

    # 先进行移仓换月

    if dominant_symbol != position_symbol:

      # 移仓换月

      if short_position > 0:

            context.buy_close(position_symbol, short_position, price, order_type=OrderType.MARKET)

            context.sell_open(dominant_symbol, short_position , price, order_type=OrderType.MARKET)

      elif long_position > 0:

            context.sell_close(position_symbol, long_position, price, order_type=OrderType.MARKET)

            context.buy_open(dominant_symbol, long_position, price, order_type=OrderType.MARKET)

    # 信号交易

    if short_position > 0:

      if signal == 1:   # 买入信号则先平空再开多

            context.buy_close(position_symbol, short_position, price, order_type=OrderType.MARKET)

            context.buy_open(dominant_symbol, context.lots, price, order_type=OrderType.MARKET)

    elif long_position > 0:

      if signal == -1:    # 卖出信号则先平多再开空

            context.sell_close(position_symbol, long_position, price, order_type=OrderType.MARKET)

            context.sell_open(dominant_symbol, context.lots, price, order_type=OrderType.MARKET)

    elif curr_position == 0:

      if signal == 1:      # 无仓位情形下,买入信号则开多

            context.buy_open(dominant_symbol, context.lots, price, order_type=OrderType.MARKET)

      elif signal == -1:      # 无仓位情形下,买入信号则开空

            context.sell_open(dominant_symbol, context.lots, price, order_type=OrderType.MARKET)

performance = bigtrader.run(

    market=bigtrader.Market.CN_FUTURE,

    frequency=bigtrader.Frequency.DAILY,

    start_date="2021-01-01",

    end_date="2024-12-31",

    capital_base=50000,

    initialize=initialize,

    handle_data=handle_data,

    order_price_field_buy='open',

    order_price_field_sell='open',

)

performance.render()

后续将邀请专业老师进行系统性的培训,有兴趣的可以入群交流



页: [1]
查看完整版本: AI智能量化投研平台