95551
在线客服
银河APP
回顶

平台简介

TFast策略云服务是中国银河证券打造的跨平台高性能的交易总线服务,对接多种VIP极速柜台,

支持C++/Python两种主流量化编程语言,同时实现交易策略本地计算机调试和托管服务器执行。

本地开发调试

配置交易、行情、数据的策略编写环境
本地开发策略程序

本地开发调试

查看详情

在线仿真测试

上传策略相关文件到仿真环境
在仿真环境进行模拟交易
验证策略有效性

在线仿真测试

查看详情

交易实盘运行

分配独立的托管服务器实盘环境
实盘环境部署策略文件
运行策略实例,完成实盘交易

交易实盘运行

查看详情
互联网环境
本地客户端

策略文件上传

日志文件下载

安全传输
业务核心网
托管服务器

客户端手工交易

策略运行环境配置

策略程序执行

策略运维监控

功能界面展示
图形化的操作界面,包含账户管理、策略管理、策略编辑和监控等模块。
策略执行框架,包含策略运行函数、行情回调、交易函数等。
适用客户

有成熟策略

已有完善成熟的量化交易策略,需对接量化交易系
统执行平台

性能要求高

对行情、柜台和因子计算都有极高的计算性能要求

编程能力强

有一定的自主编程能力和量化策略开发能力

交易专业性高

符合TFast策略云服务的客户准入要求

平台优势

低延迟交易执行

同时支持普通和两融信用VIP快速柜台,满足高频交易用户做T0和打板策略所需的低延迟性能要求,可实现系统内操作延迟10微秒以下,快速响应系统内用户的交易指令。

丰富的数据源

实盘环境支持Level-2增强行情,并可使用中国银河证券格物金融服务平台金融数据功能,提供行情、财务和资讯等各类数据。

开放的策略编写方式

支持C++和Python两种编程语言的编写策略,可自由的使用第三方计算库,发挥创意,灵活高效的执行各类策略。

多操作系统支持

支持Windows和Linux两大主流操作平台,功能特性同步,为用户提供操作系统的安装包,安装成功即可开箱使用,简单直接,操作方便。

内网托管服务器部署

为用户提供托管服务器部署,物理级别保障用户策略及交易信息的隐私和安全,并提高系统性能速度。

便捷的使用方式

提供图形化的操作界面,简化策略运维流程,配合量化策略执行。

完备的监控系统

含有账户监控、进程监控等功能模块,可实时地监控系统内账户的交易状态以及各项进程状态,让用户更加全面地掌握系统的整体状态。

完全免费

提供快速交易通道、极速行情和各类数据,完全免费。

策略技术开发示例
  • 打板策略
  • T0策略
#encoding=utf-8
# 本策略仅为TFast策略云服务的策略技术开发示例,不视为投资建议
"""
开盘追涨的策略逻辑:
(1)买入信号:开盘高开8%以上、买一量 > 1000000的股票,以涨停价买入
(2)卖出信号:到达撤单时间后,撤掉所有未成交委托
"""
import time, os, signal
from datetime import datetime

from kungfu.wingchun.constants import *

SSE, SZE, BUY, LIMIT, OPEN = Exchange.SSE, Exchange.SZE, Side.Buy, PriceType.Limit, Offset.Open

MD_SOURCE, TD_SOURCE, ACCOUNT = 'sim', 'sim', '123123123**'

# 简化策略逻辑:只买入固定数量的VOLUME,以涨停板价格追入
VOLUME = 4000

# 开盘价比昨收价,高开8个点
HIGHER_PERCENT = 1 + (8 / 100)

# 开盘时,买一位置上的封单数量(1000股)
BID1_VOL = 1000

now = datetime.now()
# 选股开始时间
calc_tm = datetime.strptime(f'{now.year}-{now.month}-{now.day} 09:25:00', '%Y-%m-%d %H:%M:%S').timestamp() # 开盘时间9:25 开始,选强势股
# 撤单开始时间
stop_tm = datetime.strptime(f'{now.year}-{now.month}-{now.day} 09:32:00', '%Y-%m-%d %H:%M:%S').timestamp() # 当日 未成交的 追涨停买单的撤单时间(避免未成交订单暴露在市场中产生风险)

# 启动前回调,添加交易账户,订阅行情,策略初始化计算等
def pre_start(ctx):
ctx.add_account(TD_SOURCE, ACCOUNT)
for market in (MarketType.kSSE, MarketType.kSZSE): # 全市场订阅,选强势股
ctx.subscribe_all(MD_SOURCE, market, SubscribeCategoryType.kStock, SubscribeSecuDataType.kSnapshot) # 只订阅股票、只订阅快照(盘口)

ctx.orders = {} # 开盘追涨停订单的保存 symbol -> [order_id, 7.77, 2000] [订单ID, 挂单价格, 挂单数量]
ctx.canceled = False # 是否对未成交的买单,发起过撤单
print('pre_start') ctx.log.info('pre_start()')

# 启动准备工作完成后回调,策略只能在本函数回调以后才能进行获取持仓和报单
def post_start(ctx):
book = ctx.get_account_book(TD_SOURCE, ACCOUNT)
ctx.log.info(f'[可用资金]: {book.asset.avail}') # 这里可用检查一下资金账户的金额是否足够
ctx.log.warning("post_start()")

# 用户自定义的因子计算函数,可以利用 订阅的股票盘口(Quote对象),进一步筛选出 下单标的
def symbol_filter(quote):
symbol = quote.instrument_id
# 对每一个symbol(非科创、非创业、非B股),利用 开盘价、买一量进行筛选
return not symbol.startswith('688') and not symbol[0] in ('2', '3') and int(symbol) % 10 == 1 and quote.open_price / quote.pre_close_price >= HIGHER_PERCENT and quote.bid_volume[0] >= BID1_VOL

# 收到快照行情时回调,行情信息通过quote对象获取
def on_quote(ctx, quote):

if calc_tm * 1000000000 <= quote.data_time < stop_tm * 1000000000: # 收到开盘(9:25)的第一个盘口Quote对象

# 有可能:开盘价是零,缺少昨收价,没有人挂买单,等等异常情况;此时不做处理,直到出现一个正常的盘口
if quote.open_price>0 and quote.pre_close_price>0 and len(quote.bid_volume)>0:

symbol = quote.instrument_id
if symbol not in ctx.orders: # 当日已下过买单的symbol, 直接略过
if symbol_filter(quote): # 对盘口进行计算,如果满足 用户自定义的追涨停条件
ctx.log.warning(f'开盘追涨停挂单: {quote.exchange_id}.{symbol}, 开盘价偏离幅度: {round(quote.open_price / quote.pre_close_price, 2)}, 买一封单: {quote.bid_volume[0]}')
oid = ctx.insert_order(symbol, SSE if quote.exchange_id=='SSE' else SZE, ACCOUNT, quote.upper_limit_price, VOLUME, LIMIT, BUY, OPEN)
if oid > 0:
ctx.orders[symbol] = [oid, quote.upper_limit_price, VOLUME]

elif stop_tm * 100000000 <= quote.data_time: # 到了撤单时间 and 还未发起过撤单
if not ctx.canceled:
ctx.log.info('到了撤单时间, 撤掉所有的买入挂单')
for symbol in ctx.orders: # 把未成交的买单,全部撤回
oid, _, quantity = ctx.orders[symbol]
ctx.cancel_order(oid)

ctx.canceled = True

# 订单信息返回
def on_order(ctx, order):
symbol = order.instrument_id

if order.status == OrderStatus.Error: # 如果买单报盘,出现错误,就删除掉
del ctx.orders[symbol]

elif order.status in (OrderStatus.Cancelled, OrderStatus.PartialFilledNotActive): # 撤单成功、部成部撤
ctx.orders[symbol][-1] -= order.volume_left # 从下单总数量里,减掉 撤单成功的数量
if ctx.orders[symbol][-1] == 0: # 撤单成交,导致下单总数量为零
del ctx.orders[symbol]
if not ctx.orders and time.time() >= stop_tm:
ctx.log.info('今日追涨停结束,策略退出')
os.kill(os.getpid(), signal.SIGINT)

# 订单成交信息返回
def on_trade(ctx, trade):
symbol = trade.instrument_id

ctx.orders[symbol][-1] -= trade.volume # 从下单总数量里,减掉 成交的数量
if ctx.orders[symbol][-1] == 0: # 成交导致下单总数量为零
del ctx.orders[symbol]
if not ctx.orders and time.time() >= stop_tm:
ctx.log.info('今日追涨停结束,策略退出')
os.kill(os.getpid(), signal.SIGINT)
风险提示
1. 本材料所载全部内容仅为中国银河证券股份有限公司(以下简称银河证券)供投资者参考使用。本平台不主动推介或投资建议,并非作为证券交易或使用金融投资工具的邀请或保证。
2. 银河证券认为本材料所载内容及观点客观公正,但不担保其内容的准确性或完整性,投资者不应单纯依靠本材料而取代自我独立判断。投资者需知晓任何服务平台(系统)在任何情况下都无法保证可以获得盈利或本金不受损失。银河证券不对因投资者使用本材料内容投资而导致的损失负任何责任。
3. 本材料所提及的服务平台是一种专业的金融服务平台,建议具备一定风险承受能力、投资交易及风控经验的投资者使用,请根据自身实际情况审慎决策是否使用该服务平台。由于该平台升级及版本不同等因素,实际使用的功能、指标、策略、交易界面等要素可能与本材料中的介绍不同,请以平台实际功能为准。
4. 银河证券无需因接收人收到本材料而视其为公司客户。若投资者并非银河证券客户,为保证服务质量、控制投资风险,投资者应首先联系银河证券工作人员,完成投资者适当性匹配,并充分了解该项服务的性质、特点、使用的注意事项以及若不当使用可能带来的风险或损失,否则,请勿接收或使用本材料中的任何信息。 股市有风险,投资需谨慎。