研究了两年,终于研究出来一个无敌策略,不惧牛熊,各种行情都是稳定盈利!! 有感兴趣的朋友欢迎留言,短周期策略。持仓数量十只 为什么不能在盘前,比如9.20分运行函数呢? 还有,我这里已经按照官方文档设置了,为什么还是会报错啊 写了一个打板策略,研究性质哈,分享一下。 需要的话我也可以写,想找我可以看代码 在当今无国界的金融市场中,掌握全球股票实时行情意味着获得无可比拟的投资优势!我们推出业界领先的全球股票实时报价 API,为量化交易团队、金融科技企业和个人投资者提供一站式数据解决方案,我们提供全球股票实时行情数据,包括股票价格、涨跌幅、成交量等,为量化交易团队提供 accurate 和 up-to-date 的数据,从而实现更智能的决策和投资。 一、为什么全球投资者都在使用我们的 API 覆盖全球主要交易所 美洲市场:NYSE、NASDAQ 等(苹果、特斯拉等美股实时数据) 亚洲市场:TWSE、TSE、HKEX 等(台积电、丰田等亚股行情) 欧洲市场:LSE、FSE、XETRA 等(西门子、LVMH 等欧股报价) 东南亚市场:印度、新加坡、泰國等特色交易所 超低延迟实时数据 专业级数据流,延迟<100ms 每秒更新频率,捕捉每一个市场波动 全球实时数据,覆盖全球主要交易所 支持 WebSocket 协议,实现真正的实时推送 量化交易者的完美工具包 清洗后的标准化数据,直接用于策略回测 丰富的技术指标预计算(MACD、RSI、布林带等) 支持多时间粒度(Tick 级、1 分钟、5 分钟等) 免费套餐震撼登场 超高频次 API 调用 实时数据推送,实时获取最新数据 覆盖全球主要交易所 同时查询多只股票 完整历史日线数据 五大核心应用场景 全球市场系统:捕捉全球市场价差机会 多因子量化模型:构建全球 Alpha 策略 智能投顾平台:为客户提供全球资产配置建议 风险管理系统:实时监控跨国投资组合 金融数据门户:打造专业行情网站 数据安全与可靠性 全球数据源:来自全球各大交易所,数据源可靠 高效传输:数据更新频率高,数据实时性高 数据传输稳定:智能熔断机制保障稳定性,分布式数据中心架构 数据质量:数据经过严格审核,数据质量高 二、 如何快速开始 注册账户:30 秒完成,无需信用卡,第三方账号实现一键登录注册, 获取 API 密钥:控制台一键生成 查阅文档:丰富的代码示例和教程 三、特别优惠:量化团队专享 免费套餐:新用户免费试用 八折优惠:新用户升级套餐可获 8 折优惠 专属数据工程师支持:提供一对一数据工程师服务 定制化数据推送服务:提供定制化的数据推送服务 WebSocket 实时行情订阅示例 pip install websocket-client """ **iTick**:是一家数据代理机构,为金融科技公司和开发者提供可靠的数据源APIs,涵盖外汇API、股票API、加密货币API、指数API等,#帮助构建创新的交易和分析工具,目前有免费的套餐可以使用基本可以满足个人量化开发者需求 开源股票数据接口地址 https://github.com/itick-org 申请免费Apikey地址 https://itick.org """ import websocket import json # WebSocket服务器的地址 websocket_url = "wss://api.itick.org/sws" # 用于鉴权 auth_message = { "ac":"auth", "params":"YOUR_KEY" } # 用于订阅的消息格式,这里假设订阅一个名为 "your_channel" 的频道 subscribe_message = { "ac":"subscribe", "params":"700$HK,AAPL$US,TSLA$US", "types":"depth,quote" } def on_open(ws): """ 当WebSocket连接打开时调用的函数 """ print("WebSocket连接已打开,正在发送鉴权消息...") # 发送鉴权消息 ws.send(json.dumps(auth_message)) # 将订阅消息转换为JSON格式并发送 ws.send(json.dumps(subscribe_message)) def on_message(ws, message): """ 当收到WebSocket消息时调用的函数 """ print(f"收到消息: {message}") # 这里可以根据收到的消息内容进行进一步的处理,比如解析JSON数据等 data = json.loads(message) if "data" in data: print(f"数据内容: {data['data']}") def on_error(ws, error): """ 当WebSocket连接出现错误时调用的函数 """ print(f"WebSocket错误: {error}") def on_close(ws, close_status_code, close_msg): """ 当WebSocket连接关闭时调用的函数 """ print(f"WebSocket连接已关闭,状态码: {close_status_code},消息: {close_msg}") if __name__ == "__main__": # 创建WebSocket对象并设置回调函数 ws = websocket.WebSocketApp(websocket_url, on_open=on_open, on_message=on_message, on_error=on_error, on_close=on_close) # 启动WebSocket连接,开始监听消息 ws.run_forever() 原文出自:https://itick.org/blog/stock-api/global-stock-market-realtime-quotes-for-quantitative-trading 编写第一个量化策略(手把手详细版教程) 对于大部分人来说,量化交易是非常陌生与神秘的。本节内容将带你开启第一个量化策略! 本节内容摘要: 1.理解量化策略的基本框架。 2.学会编写一个简单的量化交易策略。 3.学会将量化交易策略绑定实盘模拟交易,并实时收到交易策略的买卖信号。 1.理解量化策略的基本框架 通常情况下,完整的量化交易策略至少需要确定两件事: A.交易标的,即买什么; B.确定交易时机,即怎么买卖。 让我们来设计一个简单完整的量化交易策略: 策略交易标的:贵州茅台; 策略交易时机:5日均线与20日均线金叉时,买入;5日均线与20日均线死叉时,卖出。 2.学会编写一个简单的量化交易策略 第一步:打开SuperMind量化交易平台,先在上方导航栏点击“我的策略”—“策略编译”,再点击蓝色按钮“+新建策略”,接着点击已创建的策略进入策略编译器页面,如下: 温馨提示:“回测列表”下方三个按钮,可以设置编译器字体大小,背景颜色,编译设置,开启全屏编译,查看API文档,如下: 第二步:理解量化交易策略框架对应的代码框架。def init(context): #初始化函数:确定交易标的def handle_bar(context, bar_dict): #定时运行函数:确定交易时机 框架理解: 1.def init(context)与def handle_bar(context, bar_dict)是两个函数,函数格式固定为:def 函数名(参数),其中def后面带空格键,函数末尾必须带冒号。 2.def init(context)函数是初始化函数,只运行一次,确定初始化条件;def handle_bar(context, bar_dict)函数是定时运行函数,平台默认该函数定时运行。日级策略,每日9:30;分钟级策略,交易期间内的每分钟。 3.“#”后面为注释内容,用于注释代码,便于编写和阅读。 第三步:确定交易标的:context.security = '600519.SH'。 温馨提示: 1.context是账户对象,该对象存放所有账户相关信息,持仓、可用现金、资产盈亏。 2.context.security是在账户对象下,设置security变量,存放在账户内,这里我们需要确定交易标的,即:context.security = '600519.SH'。def init(context): context.security = '600519.SH'#已确定交易标的def handle_bar(context, bar_dict): #定时运行函数:确定交易时机 第四步:确定交易时机,即为:5日均线与20日均线金叉时,买入;5日均线与20日均线死叉时,卖出。 从交易时机出发,我们需要计算交易标的5日和20日均线,那么5、20日均线需要用历史行情数据的收盘价来计算。 整个流程即:获取历史行情20日的收盘价数据———计算5、20日均线———判断5、20日均线,进行买卖交易。 A.获取历史行情20日的收盘价数据: 1.找到函数历史数据函数:history 2.填写函数参数,获取到数据: i.交易标的,即:获取那个股票的数据。 ii.数据字段:['close']收盘价,即:获取哪个数据。 iii.输入历史长度,即:获取多长时间的数据。 iv.获取数据的时间步长,即:获取日线级步长数据。 v.填写是否跳过停牌数据,复权选项,返回数据格式。 最终结果即为:history(context.security, ['close'], 20, '1d', False, 'pre', is_panel=1) 3.将获取到的数据储存,便于计算,即:closeprice = history(context.security, ['close'], 20, '1d', False, 'pre', is_panel=1)#获取证券过去20日的收盘价数据 closeprice = history(context.security, ['close'], 20, '1d', False, 'pre', is_panel=1) B.计算5、20日均线: 1.获取数据值,即:closeprice['close'],['close']可以获取储存中的收盘价数据,格式为closeprice['close']。温馨提示:closeprice是我们刚才获取的数据,但是数据有股票、时间、数值,我们直接用['close']获取收盘价数据值用于计算即可。 2.选取数据长度,即:closeprice['close'].iloc[-5:]。iloc[]用于取值,我们之前获取20个数据,但5日均线只需要过去5日的收盘价,因此iloc[-5:]即为获取倒数第五个到最后一个数据。温馨提示: i.iloc[:]是获取所有数据。 ii.iloc[:x]是从第一个获取到第x个,不包括第x个。 iii.iloc[x:y]是从第x个到第y个,包括x,但不包括y。 iv.iloc[-x:]获取倒数第x个到最后一个数据。 3.计算均值,即closeprice['close'].iloc[-5:].mean(),赋值给MA5。同理MA20=closeprice['close'].mean(),即对所有值取平均,相当于MA20=closeprice['close'].iloc[:].mean()。#计算二十日均线价格 MA20 = closeprice['close'].mean()#计算五日均线价格 MA5 = closeprice['close'].iloc[-5:].mean() C.判断5、20日均线,进行买卖交易: 1.if判断条件,即为 if MA5 > MA20:。温馨提示if判断函数的格式为if +添加判断+:,其中if后面必须带一个空格键,其次末尾必须带冒号。 2.当MA5小于MA20时,我们再对持仓市值判断,如果有持仓,那么持仓市值必然大于0,需要进行卖出交易,我们直接通过context账户对象中portfolio资产组合内stock_account股票账户下来获取持仓市值,即为:context.portfolio.stock_account.market_value。 3.下单买入交易: i.当触发MA5大于MA20时,我们需要买入股票,这时候我们可以使用order_target_percent下单函数,该函数以目标市值占比下单。 ii.输入下单函数的参数,order_target_percent函数需要输入两个参数: 1.下单的股票,即为context.security,我们之前将交易标的传入进去,可以直接用。 2.下单的占比,即为1,取值范围[0,1],此时取1,表示全仓买入股票。 iii.触发条件后程序提醒,当代码执行完下单函数后,我们用log.info()来打印日志,这样我们也可以看到程序下单了。 温馨提示:log.info()内你可以直接输入中文,例如:log.info('条件满足!买入贵州茅台啦!')# 如果5日均线大于20日均线,则全仓买入股票if MA5 > MA20: # 按目标市值占比下单 order_target_percent(context.security, 1) # 记录这次买入 log.info("买入 %s" % (context.security)) 4.下单卖出交易: i.当触发MA5小于MA20时,我们需要卖出股票,这时候我们可以使用order_target下单函数,该函数以目标股数下单。 ii.输入下单函数的参数,order_target函数需要输入两个参数: 1.下单的股票,即为context.security,我们之前将交易标的传入进去,可以直接用。 2.下单的目标股数,即0,因为我们需要将持仓股票卖出,卖到0股为止。 iii.触发条件后程序提醒,当代码执行完下单函数后,我们同log.info()来打印日志,这样我们也可以看到程序下单了。# 如果5日均线小于20日均线,并且目前有头寸,则清仓股票elif MA20 > MA5 and context.portfolio.stock_account.market_value > 0: # 卖出所有股票,使这只股票的最终持有量为0 order_target(context.security, 0) # 记录这次卖出 log.info("卖出 %s" % (context.security))最终完整代码:def init(context): # 设置要操作的股票:贵州茅台 context.security = '600519.SH'# 设置买卖条件,每个交易频率(日/分钟/tick)调用一次def handle_bar(context, bar_dict): # 获取股票过去20天的收盘价数据 closeprice = history(context.security, ['close'], 20, '1d', False, 'pre', is_panel=1) # 计算20日均线 MA20 = closeprice['close'].mean() # 计算5日均线 MA5 = closeprice['close'].iloc[-5:].mean() # 如果5日均线大于20日均线,则全仓买入股票 if MA5 > MA20 : # 按目标市值占比下单 order_target_percent(context.security, 1) # 记录这次买入 log.info("买入 %s" % (context.security)) # 如果5日均线小于20日均线,并且目前有头寸,则清仓股票 elif MA20 > MA5 and context.portfolio.stock_account.market_value > 0: # 卖出所有股票,使这只股票的最终持有量为0 order_target(context.security, 0) # 记录这次卖出 log.info("卖出 %s" % (context.security))第五步 回测量化交易策略 通过以上4步,我们已经完成了量化交易策略编写,那么接下来我们需要进行量化交易策略回测。 A.首先,我们尝试去跑通整个历史行情,排查代码错误。 i.右上角设置回测历史长度,设置资金,设置交易频率。 ii.点击左上角“编译运行”按钮,右边出现量化交易策略在历史行情中的表现情况 B.当量化交易策略能跑通整个历史行情后,我们可以确定该代码正确无误,随后点击右上角蓝色按钮“进行回测”。页面跳转至回测页面,在回测详情界面,您可以查看策略收益曲线,风险指标,每日持仓,交易明细,输出日志等信息,如下: C.学会将量化交易策略绑定实盘模拟交易,并实时收到交易策略的买卖信号 1.在回测显示结果页面,右上角点击蓝色按钮开启模拟交易,可以自行选择:从当前日开始模拟,在已有的回测基础上继续模拟.如下图: 2.至此,我们成功开启了模拟交易,可以查看您的模拟交易账户详细情况:交易明细、持仓、盈亏情况、账户风险指标等等。如下图: 3.您可以为您模拟交易账户新建模拟交易、暂停策略运行、发布策略至社区、重启策略、查看策略运行日志、查看策略代码。注意:重启按钮只会在策略运行错误后显示,如果策略运行正常,显示暂停按钮。新建模拟交易如下图: 
社区分享来的策略,增加了部分功能,判断牛熊市场对默认持仓日期和每日开仓数进行调整。策略中有每个指标调整值回测率的记录,方便调试。 在2024年2月6日至2025年1月31日之间,回测收益率超过100%,最大到过120左右。 目前存在问题:1、 24年2月起大盘大跌,目前还没有增加对大盘暴跌不开仓并清仓的处理能力,后期会逐步完善。 2、只进行回测和模拟,没有进入实盘,具体实盘收益不清楚。 从社区取得收获分享给社区。策略提供参考,有错误或优化建议请提出,在此表示感谢。 在高速变化的外汇市场中,每一秒的价格波动都可能意味着巨大的盈利机会或风险。对于专业交易者和机构投资者而言,获取最精细、最及时的市场数据是构建竞争优势的关键。Alltick外汇API以其卓越的Tick级数据服务,正成为全球交易者打造专业级决策引擎的首选工具。 Tick数据:外汇交易的微观世界 Tick数据是金融市场中最基础、最精细的交易记录单元,它记录了每一次价格变动的完整信息,包括时间戳、买卖价格、成交量等核心要素。与传统的分钟级或小时级数据相比,Tick数据具有三大不可替代的价值: 完整还原市场流动性:Tick数据保留了每一笔交易的原始面貌,能够准确反映市场深度和流动性变化,这是聚合数据无法提供的。 捕捉瞬时市场机会:在高频交易和算法策略中,毫秒级的领先意味着巨大的优势。Tick数据的精细时间戳让策略能够基于最及时的信息执行。 精准回测与优化:使用Tick数据进行策略测试,可以最大程度还原真实市场环境,避免"滑点幻觉",提高策略的实战可靠性。 Alltick外汇API的核心优势 作为专业的金融数据服务商,Alltick外汇API在Tick数据服务领域建立了显著的技术优势: 多市场全覆盖:提供全球主要外汇货币对的Tick级数据,包括主要直盘、交叉盘及新兴市场货币对,满足不同策略需求。 超低延迟传输:通过全球分布式服务器网络和优化数据传输协议,实现毫秒级的数据推送,确保策略基于最新市场状况运行。 完整历史回溯:部分货币对历史数据可追溯至10年前,为长期策略研究和季节性模式分析提供坚实基础。 智能数据清洗:内置多重校验机制,自动过滤异常Tick,提供经过清洗的高质量数据流,减少策略噪声干扰。 弹性存储方案:支持从Tick级原始数据到各时间维度聚合数据的灵活转换,平衡存储成本与分析需求。 Tick数据驱动的交易决策引擎构建 基于Alltick外汇API的Tick级数据,交易者可以构建多层次的决策引擎: 1.高频交易系统 利用Tick序列中的微观结构特征,开发基于订单流分析、瞬时价差套利等策略。Alltick提供的精确时间戳和完整订单簿快照,是这类策略成功的基础。 智能风控模块 通过实时监测Tick数据中的异常波动和流动性变化,建立动态风险阈值,实现毫秒级的自动平仓或对冲指令触发。 算法执行优化 分析历史Tick数据中的价格弹性与市场影响成本,优化大订单拆分算法,降低交易执行滑点。 市场情绪指标 从Tick频率的买卖压力变化中提取实时情绪信号,作为趋势策略的辅助确认工具。 Alltick API的技术整合生态 为降低使用门槛,Alltick提供全面的开发者支持: 多语言SDK:涵盖Python、Java、C++等主流编程语言,快速接入现有交易系统 云端数据管道:支持直接将Tick数据流导入AWS、Azure等云平台进行分析 可视化工具包:内置Tick数据可视化模块,助力快速探索数据特征 策略沙箱环境:提供历史Tick数据回放功能,支持策略的仿真测试 专业级服务保障 针对机构客户,Alltick提供定制化解决方案: 专属数据链路保障,满足超低延迟需求 按需定制数据字段与推送频率 专业技术团队提供策略优化咨询 合规性支持,满足各司法辖区监管要求 结语:从Tick到Alpha的转化之道 在外汇市场这个全球最大、最具流动性的竞技场中,信息优势直接转化为盈利优势。Alltick通过提供可靠、精准、及时的Tick级数据流,赋能交易者构建从市场微观结构中发现Alpha的专业能力。无论是开发高频策略、优化执行算法,还是完善风险管理系统,Tick数据都是不可或缺的基础设施。 立即接入Alltick,开启您的Tick数据赋能之旅,构建下一代智能交易决策引擎! 在瞬息万变的金融市场中,每一毫秒的延迟都可能意味着盈利机会的错失或风险的失控。传统数据接口的滞后性、信息碎片化等问题,长期困扰着交易员与量化团队。而随着高频交易和算法策略的普及,对实时行情的需求已从“锦上添花”变为“生死攸关”。如何突破延迟瓶颈,抢占市场先机?答案或许藏在Tick数据与下一代股票API技术的融合中。 延迟的代价:交易者的隐形敌人 在金融交易中,延迟不仅是技术问题,更是直接的成本问题。 策略失效风险:当行情数据滞后,基于均值回归或动量突破的算法可能因信号延迟而误判; 滑点放大:在剧烈波动的市场中,毫秒级延迟可能导致成交价偏离预期,尤其影响大额订单; 机会成本:套利策略依赖跨市场、跨品种的瞬时价差捕捉,延迟将直接抹平利润空间。据行业统计,纳斯达克交易所中,交易指令每增加1毫秒延迟,盈亏可能相0.01%-0.1%。对高频策略而言,这足以颠覆全年收益。 Tick数据:穿透市场的“显微镜” Tick数据(逐笔成交数据)是市场最细粒度的交易记录,包含每一笔成交的价格、成交量、时间戳等信息。与传统K线相比,其价值体现在: 1.还原市场真实脉动:揭示隐藏在大单背后的主力动向与流动性变化; 2.赋能精准策略:为高频做市、统计套利、订单流分析提供底层燃料; 3.风险控制前置化:通过异常Tick波动预警,规避“闪崩”等极端行情冲击。 然而,Tick数据的价值释放依赖两大前提:毫秒级实时传输与高吞吐处理能力——这正是多数传统API的短板。 技术破局:API如何重塑实时交易体验 API(应用程序接口)作为数据与策略的“桥梁”,其性能直接决定交易系统的上限。新一代股票API的革新聚焦于: 超低延迟架构:从数据源直连、协议优化到全球多节点部署,压缩传输链路; 高并发支持:单秒万级Tick数据的稳定推送与实时清洗; 灵活性与兼容性:支持多语言SDK、自定义订阅字段,适配个性化策略需求。 以Alltick股票API为例,其通过全球核心交易所直连通道与二进制压缩协议,将端到端延迟降至毫秒级,同时提供完整的Tick历史数据回溯,帮助用户构建更精准的回测模型。而类似技术的普及,正推动实时交易从“极客专属”走向“大众化工具”。 实时交易的应用新场景 1.量化私募: 基于Tick级订单簿的流动性预测,优化算法交易执行路径; 捕捉“盘口跳变”信号,开发短周期统计套利策略。 2.个人投资者: 通过实时异动监控,追踪主力资金流向; 结合新闻事件与Tick波动,提升短线决策效率。 3.机构风控: 实时监测组合持仓的Tick级风险敞口,动态调整对冲策略。 未来已来:实时数据驱动的交易革命 随着5G、边缘计算等技术的成熟,实时交易的基础设施将迎来新一轮升级。未来的竞争不仅是算力的比拼,更是数据时效性、完整性与技术生态的整合之战。无论是机构还是个人,提前布局低延迟基础设施,意味着在市场中占据“更近的观察位”与“更快的反应速度”。 在“时间就是Alpha”的金融战场,告别延迟并非终点,而是解锁新维度的起点。Alltick等新一代API技术,正通过极速、稳定的Tick数据服务,降低实时交易的门槛,让更多投资者拥有与机构同台竞技的“武器”。 立即试用Alltick,重新定义交易策略、拥抱技术红利!