首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我的pinescript代码中回测数据为0的原因

在Pinescript代码中,回测数据为0的原因可能有以下几种情况:

  1. 数据源问题:回测数据为0可能是因为数据源中缺少相应的数据或者数据源本身存在问题。建议检查数据源是否完整,并确保数据源的准确性和可靠性。
  2. 数据处理问题:回测数据为0可能是因为在代码中对数据进行处理时出现了错误。可以检查代码中的数据处理逻辑,确保没有出现错误或者漏洞。
  3. 数据获取问题:回测数据为0可能是因为在获取数据时出现了问题。可以检查代码中的数据获取逻辑,确保数据能够正确地被获取到。
  4. 数据格式问题:回测数据为0可能是因为数据格式不正确。可以检查数据的格式是否符合代码的要求,并进行相应的格式转换或处理。
  5. 其他问题:回测数据为0还可能是由于其他未知的问题导致的。可以尝试通过调试代码、查看日志等方式来定位和解决问题。

总之,回测数据为0可能是由于数据源、数据处理、数据获取、数据格式等多种因素导致的。在解决问题时,可以逐一排查并修复可能存在的问题。如果问题仍然存在,建议参考Pinescript的官方文档或者向Pinescript社区寻求帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

公开代码量化程序开发历程!

于是很快花了一两天时间写了一个简单程序(看了一下,这个程序还在硬盘里,1000行左右代码,逻辑比较完整,不但可以,还可以暴力搜索参数,也是开始设计那些交易系统。...当然这个过程也暴露出很严重问题,就是没有按照最终希望交易过程去建立过程(和实盘不一致,策略终究不靠谱),这使得接下来一个阶段一直停滞不前。...然后随后几天再接再厉,策略增加大盘指数判断,年化收益上升到48%,用2010-2018年数据,年化收益也有38%。...后来,从重新设计了轮动程序,并且进行了深度代码优化,使得单次执行时间缩短到非常小,最后又经过缓存优化,轮动执行100次,只需要不到10秒时间,这才使得可以把重点从全A平均转到随机选股轮动...性能数据 补充一下有关性能数据。 首先回全A平均收益和轮动是不一样。所谓全A平均收益,是指用交易策略对每一个股票单独进行,每个股票是独立,所以可以利用CPU多核并行能力。

51440

量化交易 平台介绍

原因有三: 没有完整股票行情和基本面数据1. 平台是载体, 重点在于快速验证策略1....证券投资机构各自使用框架不同, 没用通用框架 RiceQuant 平台介绍 网址: https://www.ricequant.com/welcome/ 注册 注册就不多赘述了, 小伙伴们请自行完成...创建策略 首先我们先点击进入平台, 如图: 然后我们点击新建策略, 如图: 在新建策略我们点击代码策略, 如图: 在策略名称我们填入 “第一个策略”, 如图: 策略页面功能介绍...策略页面的样子: 各个区块功能: 如何完成一个策略 选择策略运行信息: 选择运行区间和初始资金- 选择频率- 选择股票池 编写策略逻辑: 获取股票行情, 基本面数据- 选择哪些股票...在 handle_bar 方法实现策略具体逻辑, 包括交易型号产生, 订单创建. handle_ bar 内逻辑会在每次 bar 数据更新时候被触发.

91110
  • Node写毕设项目100人并发就撑不住,是这样解决

    毕设项目是学院编写一个在线 SQL 考试系统,目标是支撑 300 人同时进行在线 SQL 编程考试,全栈开发。...开启一次从 0 到 100 递增 PTS 并发压,结果如下: 可见从 100 并发开始,就出现了无法忽略异常请求返回数量,5万请求860个异常,系统已经撑不住了,然后阅读生成测试报告,发现几乎所有异常都发生在一个接口...定位并缩小问题范围 查找异常接口Network数据之后发现,该接口是用户登录接口,怎么会呢?一个和业务本身无关接口竟然成了系统瓶颈,惊讶片刻,开始寻找更多信息,以确定原因。...关键代码如下: // 存储调函数map结构,用于在子进程给主进程返回事件时,进行相应调处理 const callbackMap = new Map(); /** * 子进程创建各种类型事件绑定...解决问题办法很简单,申请一个公网 ip 服务器即可。 进程间共享状态怎么办 Node进程间状态共享有两种思路: 将状态存储在公共Redis数据,所有进程对它进行存取。

    88810

    记一次 JAVA 内存泄露分析

    背景 前不久,上线了一个新项目,这个项目是一个压系统,可以简单看做通过回放词表(http请求数据),不断地向服务发送请求,以达到压服务目的。...,那也就10多万,怎么会有20多万呢,我们在代码也没有找到对此有显示声明实例化地方。...我们通过对 httpasyncclient 发送请求源码进行跟踪了一下后发现,其内部实现是将回调类塞入到了http请求类,而请求类是放在在缓存队列,所以导致调类引用关系没有解除,大量调类晋升到了...核心代码分析: ? ? ? 代码优化 找到问题原因,我们现在来优化代码,验证我们结论。...因为Listcache1会保存调对象,所以我们不能缓存请求类,只能缓存基本数据,在使用时进行动态生成,来保证调对象及时回收。

    2.6K50

    Python零基础学习

    ,目标持仓比例) 比例在 1 与 0 之间#此处将持仓比例调整 0 ,则等同于全部卖出order_target_percent(context.stock, 0) 6 策略 以上,我们用几行代码就把策略框架完整地搭建起来了...7 从日测到分钟: 在循环部分, handle 函数根据选择频率(日、分钟)循环运行,在以上, handle 内代码会每日被触发一次 def handle(context, bar_dict...before_trading(context): # 设定并重置 context.fired 0 context.fired = 0 #从开始日期至结束日期,根据选择频率...会被每天重置 0 在 handle 函数,我们加入了判断,如 context.fired 0 ,则继续执行下面的代码,否则本次循环结束。...年 1 月 4 日至 2016 年 10 月 4 日,用资金 10 万元进行分钟吧,请点击 运行 8 模拟交易: 模拟交易通过实时分钟切片数据进行撮合,也就是 handle 函数会每分钟被触发一次循环

    1.1K70

    AI股市预测实战:用LSTM神经网络预测沪深300未来五日收益率

    :得到 LSTM 预测结果后,若 LSTM 预测值小于 0,则记为 - 1,若大于 0,记为 1。...每个模型做两次回,第一次(后文简称 1)直接以 LSTM 预测值在沪深 300 上做单:若 LSTM 预测值 1,买入并持有 5day(若之前已持仓,则更新持有天数),若 LSTM 预测值...- 1,若为空仓期,则继续空仓,若已持有股票,则不更新持有天数; 第二次(后文简称 2)以 LSTM 择时指标,与 StockRanker 结合在 3000 只股票做单:若 LSTM 预测值...2) 在权重上施加正则项探究 神经网络过拟合:在训练神经网络过程,“过拟合” 是一项尽量要避免事。神经网络 “死记” 训练数据。...过拟合意味着模型在训练数据表现会很好,但对于训练以外预测则效果很差。原因通常模型 “死记” 训练数据及其噪声,从而导致模型过于复杂。

    3.2K62

    vn.py源码解读(一、环境配置与初试)

    有人说,为什么学那么多平台呀。...其实个人觉得,做cta的话,两个平台还是要,这样,当你策略出现和你预计不符,而你有无法在代码逻辑层面找到问题时候,你就可以用另外一个平台试一下,来看看到底是你策略本身就不行,还是你代码有着当前水平无法察觉问题...闲话不说,总而言之,个人觉得,vn.py还是一个很不错期货cta平台,而且,不仅仅局限于,还可以直接当一个交易系统使用,整个代码框架也是相当不错,只是似乎对刚入门小朋友不是特别友好,入门级别的教程比较少...3.例子         和别的项目一样,我们要现有一个核心,在vn.py叫做engine,引擎,还是比较好理解。...# 设置使用数据 engine.setBacktestingMode(engine.BAR_MODE) # 设置引擎模式K线 engine.setDatabase(MINUTE_DB_NAME

    2.4K20

    一位从事量化交易实战者,手把手带你入门量化交易!

    一旦确定了某个或某套策略组合,就需要根据历史数据对其盈利能力进行测试,这就属于范畴了。 策略 目的是提供证据,以证明通过上述过程确定策略在应用于历史数据和样本外数据时是能获得收益。...这就为该策略在“现实世界”表现设定了预期。然而,由于种种原因并不能完全保证策略成功。这或许是量化交易中最为微妙领域了,因为这其中有许多偏差,需要经过深思熟虑尽量消除偏差。...我们会讨论一些常见偏差类型,比如前瞻性偏差,幸存者偏差和优化偏差(也称“数据透视”偏差)。其他重要领域还包括历史数据可用性和清洗程度,考虑实际交易成本和选择一个稳定平台。...不会Tradestation类似的软件或是Excel和MATLAB这类工具做过多研究,因为相信可以搭建一个完整自用技术栈,原因如下:这样做一个好处是,哪怕是使用最先进统计策略,都可以紧密地集成化软件和执行系统...个人偏好是尽可能多地去搭建自己数据采集器,策略和执行系统。如果你资金要冒险投资,那么对系统进行过全面测试并了解其缺陷和特定问题后,你晚上睡觉才能安眠吧?

    2K31

    流量录制与回放技术实践

    启动前、结束后、其他标志性事件结束后都会向压系统传状态 对录制和回放产生数据进行处理与传 打日志,记录 GoRepaly 输出状态数据,便于后续排查 GoReplay 本身只提供最基本功能,...”状态给压服务,随后调起 GoReplay 录制结束,GoReplay 退出,Gor 控制器传“录制结束”状态给压服务 Gor 控制器传其他信息给压系统 压服务判定录制任务结束后,通知压机将录制数据读取到本地文件...答案如下: 首先判断数据长度是不是大于等于协议头长度,即 16 个字节 判断数据前两个字节是否魔数 0xdabb 判断第17个比特位是不是 1,不为1可丢弃掉 通过上面的检测可快速判断出数据是否符合...原因是我们插件反序列化时拿不到接口参数类型信息,所以我们把参数反序列化成了 Map 对象,这样 this$0 这个字段和值也会作为键值对存储到 Map 。...之后,把改动代码发布到线上,对于一些比较大应用,一次发布涉及到几十台机器,还是相当耗时。接着,把接口参数数据从日志文件清洗出来。最后,还要把这些数据转换成压脚本。

    6.2K30

    开发 | AI股市预测实战:用LSTM神经网络预测沪深300未来五日收益率

    :得到 LSTM 预测结果后,若 LSTM 预测值小于 0,则记为 - 1,若大于 0,记为 1。...每个模型做两次回,第一次(后文简称 1)直接以 LSTM 预测值在沪深 300 上做单:若 LSTM 预测值 1,买入并持有 5day(若之前已持仓,则更新持有天数),若 LSTM 预测值...- 1,若为空仓期,则继续空仓,若已持有股票,则不更新持有天数; 第二次(后文简称 2)以 LSTM 择时指标,与 StockRanker 结合在 3000 只股票做单:若 LSTM 预测值...过拟合意味着模型在训练数据表现会很好,但对于训练以外预测则效果很差。原因通常模型 “死记” 训练数据及其噪声,从而导致模型过于复杂。...结果如图 6,加入正则项之后 1 和 2 最大撤均有下降,说明加入正则项后确实减轻了模型过拟合。

    1.3K50

    Backtrader 来了!

    ,Backtrader 以“大脑”cerebro 统一调度中心,数据、策略、条件等信息都会导入 cerebro ,并由 cerebro 启动和完成,最后返回回结果: ?...本文省去了选股过程,直接提供最终选股结果,然后对选股结果做回,具体条件如下: ? 数据说明 测试用到 2 个数据集,一个是日度历史行情数据,另一个是最终选股结果数据集 。...在导入多只股票数据时需注意以下细节: ▪ 各股交易日不统一:上市日期不一致、退市日期不一致、区间内出现停牌等,都会使得不同股票各自交易日数量不统一,所以要以区间内所有交易日基础,对每只股票缺失交易日进行补齐...; ▪ 行情数据缺失:在补齐交易日过程,会使得补充交易日缺失行情数据,需对缺失数据进行填充。...比如将缺失 volume 填充 0,表示股票无法交易状态;将缺失高开低收做前向填充;将上市前缺失高开低收填充 0 等; ▪ 股票与行情数据匹配:通过设置 adddata() 方法 name

    6.2K105

    setInterval 和 hooks 撞在一起,翻车了~

    关注 ▲程序员自习室▲ 和众多前端精英,一起向上生长 前言 事情是这样子,周末加班赶项目,有个同步数据功能为异步进程,需要写个轮询来获取同步结果。这功能简单啊,轮询熟啊!...于是,不假思索写下功能代码,测试都懒得直接部署移。...这也是轮询没有生效原因!...另一方面,由于设置了 savedCallback ref,我们可以获取到最后一次渲染时设置调,然后在计时器触发时调用。这下数据都有记忆了,问题被解决了,不过这也太麻烦了,可读性很差!...希望我们代码最后是下面这样子: function Counter() { const [count, setCount] = useState(0); useInterval(() =>

    1.3K20

    朋友惨痛亲历:一行代码,百万人民币打水漂

    我们团队负责是一个底层核心系统,链路上会有上百个应用依赖,为了应对大促这种超高流量场景,大促前有一轮又一轮。在首轮压测时,便发现我们系统上有个数据库表不支持压,导致压计划无法进行。...因此团队有位同事 A 就起了紧急迭代,针对业务依赖这个数据库表做压改造,代码变更也就几行。 与此同时,同事 B 在这个系统上也想改下代码,就搭了压改造车,两块变更一起发布。...代码滚后,上游系统之前异常错误码逐步恢复到基线水平,客满同事也反馈不再有新投诉进来。至此,止血工作完成。 03 事件缘起和善后 接下来就是定位原因和善后工作。...由此看来,故障直接原因是同事 B 代码误提交,但事实上在提交后各个环节里都有疏漏地方。不久之后,同事 B 和负责测试同事就离职了。...04 感受和思考 当时还是职场小菜鸟懵懵懂懂,亲历了这么一次大故障,让感受到代码强大,强大影响力和破坏力。 「敬畏代码」不再是耳边循循教导,而是要落实到工程实践

    35030

    用 Python 实现你量化交易策略

    Python 学习者,有相当一部分是冲着爬虫去。因为爬虫可以帮你解决很多工作和生活问题,节约你生命。不过 Python 还有一个神秘而有趣应用领域,那就是量化交易。...通过这些平台,你可以很方便地实现自己交易策略,进行验证,甚至对接交易系统(由于政策原因,现在很多交易接口暂停开放)。 在交易策略方面,是外行(虽然曾经也有证券从业资格)。...以优矿例,注册之后,在“开始研究”页面,新建一个 Notebook,就可以开始用 Python 写你自己策略。 ? 右上角下拉框选择“策略”,就会帮你自动填写上策略基本结构代码。 ?...开始一些变量是对基本配置。initialize 里可以做一些初始化工作。handle_data 则是代码核心,用来实现每个交易日(或每分钟)交易指令。...具体变量含义,这里不做特别细致解释,文档里都有说明。仅从命名和注释里也可以看出,设定了时间,股票池,资金,交易频率等。

    5.1K82

    python程序化交易实例-用 Python 实现你量化交易策略「建议收藏」

    Python 学习者,有相当一部分是冲着爬虫去。因为爬虫可以帮你解决很多工作和生活问题,节约你生命。不过 Python 还有一个神秘而有趣应用领域,那就是量化交易。...通过这些平台,你可以很方便地实现自己交易策略,进行验证,甚至对接交易系统(由于政策原因,现在很多交易接口暂停开放)。 在交易策略方面,是外行(虽然曾经也有证券从业资格)。...以优矿例,注册之后,在”开始研究”页面,新建一个 Notebook,就可以开始用 Python 写你自己策略。 右上角下拉框选择”策略”,就会帮你自动填写上策略基本结构代码。...开始一些变量是对基本配置。initialize 里可以做一些初始化工作。handle_data 则是代码核心,用来实现每个交易日(或每分钟)交易指令。...具体变量含义,这里不做特别细致解释,文档里都有说明。仅从命名和注释里也可以看出,设定了时间,股票池,资金,交易频率等。

    2.8K30

    【量化核武】美丽——教你定量计算过拟合概率

    摘要 金融数据信噪比很低,使得过拟合成为必然。本文介绍一个量化分析框架,它可以计算过拟合概率,有助于评价量化策略有效性。...众所周知,金融数据信噪比很低。当我们在尝试了大量参数时、或是在选股时测试了大量因子后,找出来效果最好一组参数或者一个因子总能获得非常不错效果。...增大 N 对应着在增加 number of tests,增大 V(SR) 对应着完全不考虑业务依据而漫无目的扩大参数取值范围。这些都是造成过拟合原因。...之前文章《出色不如走运 (II)》对 Dr. Harvey 一些研究进行了梳理,而本文介绍过拟合概率量化手段则是 Dr....中有很多门道(见《科学回大学问》);准确与否对于该策略在实盘外表现至关重要。由于金融数据信噪比极低且难以分辨出数据哪些是噪音、哪些是因果关系,这使得或多或少都会存在过拟合。

    1.8K41

    LSTM Networks在股票市场上探究

    1;如果预测值0: predictions...第一次(后文简称1)直接以LSTM预测值在沪深300上做单:若LSTM预测值1,买入并持有5day(若之前已持仓,则更新持有天数),若LSTM预测值-1,若为空仓期,则继续空仓,若已持有股票...,则不更新持有天数; 第二次(后文简称2)以LSTM择时指标,与StockRanker结合在3000只股票做单:若LSTM预测值1,则允许StockRanker根据其排序分数买入股票,若LSTM...神经网络“死记”训练数据。过拟合意味着模型在训练数据表现会很好,但对于训练以外预测则效果很差。原因通常模型“死记”训练数据及其噪声,从而导致模型过于复杂。...由结果可以看出,加入指示标后LSTM模型收益率相对下降,但是撤更小。LSTM预测值小于0时间段覆盖了沪深300上大多数大幅下跌时间段,虽然也错误地将一些震荡或上涨趋势划归下跌趋势。

    1.4K72

    研报复制(五):单向波动差择时

    区间:20060406-20190531 标的:沪深300指数 语言:python 为了方便与报告结果相对比,区间起点与报告相同,终点设置上月末。需要数据代码后台回复“单向波动差”。...首先给出报告结果,这里移动平均窗宽60日 ? 这里净值比 = 策略净值/沪深300归一化到20060406 ? 60日结果如下 ? 10日与60日对比如下 ?...报告最终效果跟之前比非常逆天,净值曲线撤很小,很平稳。 ?...但是报告并没有给出具体RPS值跟移动平均窗宽之间关系,所以就只能自己尝试了,这里尝试了一个很简单逻辑:RPS值都在0-1之间,设定最大窗宽60,最小1,根据RPS对窗宽做一个线性插值,...最终结果如下 ? 结果相比于之前撤降低了很多,但远远达不到报告逆天效果,而且这里还是没有考虑交易成本代码调整比较简单,略过。

    3.1K53

    BackTrader 中文文档(十三)

    处理 2 百万根蜡烛超出核心内存 所有这些都可以改进,如果考虑到backtrader有几个配置选项用于执行会话,包括优化缓冲区并仅使用最少需要数据集(理想情况下仅使用大小1缓冲区,这仅在理想情况下发生...) 让我们与之前未经优化运行进行比较 而不是花费超过76秒预加载数据,因为数据没有预加载,立即开始 总时间114.32秒,比135.93秒快了15.90%。...,用户解释了希望复制在例如 TradingView 获得结果,这在当今非常流行,或者其他一些平台。...即使不真正了解 TradingView 中使用语言 Pinescript,并且对引擎内部没有任何了解,仍然有一种方法可以让用户知道,跨平台编码必须谨慎对待。...[0]: self.buy() 虽然这只是一个小例子,但它展示了由于指标被编码1栏差异而导致结果可能会有所不同。

    21000

    代码级性能优化变迁之路(一)

    一、前言 大家好,很久没有和大家一起讨论技术了,那么今天将和大家一起探讨负责某项目的性能变迁之路。...Paste_Image.png 注: 在上述事例,会话B会抛出死锁异常,死锁原因就是A和B二个会话互相等待。...Paste_Image.png 项目在压过程,cpu一直居高不下,那么通过分析得出如下分析: 数据库连接池影响 我们针对线上环境进行模拟,尽量真实在测试环境再现,采用数据库连接池咱们默认...方案二: 使用AKKA技术框架,下面是以前写一个简单情况: http://www.jianshu.com/p/6d62256e3327 4、日志打印问题 先看下面这段日志打印程序: QuataDTO...Paste_Image.png 再看压图如下: ? Paste_Image.png ? Paste_Image.png 原因可以根据log4j源码分析如下: ?

    46020
    领券