【TB开拓者 Trade Blazer】TB开拓者如何避免未来函数?历史K线引用避坑指南

本方案由 EasyQuant AI量化助手 提供。如有更多问题,直接用 EasyQuant AI量化助手 帮您快速解决量化交易编程难题。

问题背景

未来函数是导致“回测收益很好、实盘无法复现”的常见原因。策略在每一个时点只能使用当时已经确定的数据,不能借用未来 K 线的价格,也不能把未收盘 K 线的最终高低收当作已知信息。

策略逻辑

  • 使用 Close[1] 判断上一根已完成 K 线的状态。

  • 使用当前与上一根均线的关系确认真正的交叉。

  • 信号确认后,按照下一次可执行价格处理交易。

  • 禁止使用负数索引引用未来数据。

TB简语言示例

Params
    Numeric FastLength(5);
    Numeric SlowLength(20);
    Numeric Lots(1);

Vars
    NumericSeries FastMA(0);
    NumericSeries SlowMA(0);
    BoolSeries LongSignal(false);
    BoolSeries ExitSignal(false);
    BoolSeries TrendWasDown(false);
    BoolSeries TrendWasUp(false);

Begin

    // 使用当前与过去已经形成的K线数据计算均线
    FastMA = Average(Close, FastLength);
    SlowMA = Average(Close, SlowLength);

    // 上一根K线:短均线位于长均线下方
    TrendWasDown = FastMA[1] <= SlowMA[1];

    // 上一根K线:短均线位于长均线上方
    TrendWasUp = FastMA[1] >= SlowMA[1];

    // 当前上穿 + 上一根尚未上穿,确认金叉
    LongSignal = FastMA > SlowMA
                 And TrendWasDown;

    // 当前下穿 + 上一根尚未下穿,确认死叉
    ExitSignal = FastMA < SlowMA
                 And TrendWasUp;

    // 空仓时才根据信号开多
    If MarketPosition = 0 And LongSignal Then
    Begin
        Buy(Lots, Open);
        Commentary("均线金叉确认,按下一可执行价格开多");
    End;

    // 持仓时根据信号平仓
    If MarketPosition > 0 And ExitSignal Then
    Begin
        Sell(0, Open);
        Commentary("均线死叉确认,执行平多");
    End;

    // 以下写法不能用于真实策略:
    // If Close[-1] > Close Then Buy(Lots, Open);
    // 负数索引可能引用未来数据,会使回测结果失真。

End

注意事项

  1. 正数索引通常表示过去数据,例如 Close[1] 是上一根 K 线。

  2. 负数索引可能引用未来数据,不能用于实盘交易信号。

  3. 即使不使用负数索引,也应注意当前 K 线是否已经收盘。

  4. 跨周期、跨品种和盘后数据都要检查时间是否已经对齐。

总结

避免未来函数的原则很简单:策略在任意时点,只能使用当时已知的信息。这个原则决定了回测结果是否具备实际参考价值。


本方案由 EasyQuant AI量化助手 提供。

源码链接: https://pan.quark.cn/s/a4b39357ea24 在本文中,我们将详细研究如何运用C# Winform应用程序来获取Excel文件中的内容并将其信息传输至数据库系统。这一流程包含若干核心环节,例如文件处理操作、数据解析工作以及与数据库系统的通信交互。C#是由Microsoft公司设计的一种面向对象的结构化编程语言,在Windows桌面应用程序开发领域具有广泛的应用,特别是Winform平台。Winform是.NET框架中提供的一个用户界面工具集,主要用于开发图形化用户界面的软件。在此情境下,我们设计一个Winform程序,使其能够通过图形用户界面与Excel文档进行交互。获取Excel文档内容通常需要借助外部库,比如NPOI或EPPlus,这两个库都是.NET环境下处理办公文档的强大工具。NPOI能够支持较旧版的Excel文件格式(.xls),而EPPlus则主要用来处理较新版本的OpenXML格式(.xlsx)。在本案例中,可能已经采用了其中一个库来完成相关功能。 以下是达成此功能的基本操作流程: 1. **安装库件**:在Visual Studio开发环境中,借助NuGet包管理器来安装NPOI或EPPlus库模块。 2. **启动Excel文件**:借助库提供的应用程序接口,例如NPOI中的`HSSFWorkbook`(针对.xls)或`ExcelPackage`(针对.xlsx),来打开指定路径的Excel文档。 3. **遍历工作表**:获取工作簿中的各个工作表,并逐一检查每一行和每一列。这可以通过NPOI中的`HSSFSheet`类或EPPlus中的`Worksheet`类来实现。 4. **获取单元格信息**:...
内容概要:本文系统研究了光伏并网逆变器与虚拟同步发电机(VSG)在弱电网环境下的正负序阻抗建模方法,并基于Simulink平台构建了两者的精细化阻抗模型,实现了扫频仿真与稳定性对比分析。研究聚焦于不对称电网条件下系统的动态响应特性,通过分序阻抗建模揭示其在扰动下的交互机理,采用扫频法验证模型准确性,并结合奈奎斯特稳定性判据对两类逆变器的并网稳定性进行深入评估。内容涵盖从理论建模、仿真实现到稳定性判据应用的完整技术链条,尤其强调对VSG惯性与阻尼特性的模拟及其对系统稳定裕度的改善作用,为高比例新能源接入引发的弱电网稳定问题提供了有效的分析工具与解决方案,具备较高的学术研究价值与工程复现意义。; 适合人群:电力电子、电力系统自动化、新能源并网技术及相关专业的硕士/博士研究生、科研人员以及从事并网逆变器控制、电网稳定性分析的工程师。; 使用场景及目标:①掌握光伏并网逆变器与虚拟同步发电机的正负序阻抗建模核心技术;②熟练运用Simulink进行阻抗扫描(sweeping)与时域/频域联合仿真;③对比分析跟网型与构网型逆变器在弱电网中的稳定性能差异,为新型电力系统中构网型控制策略的设计与优化提供理论依据和技术支撑。; 阅读建议:建议结合文中提及的“博士论文复现”“期刊复现”等实例,下载配套的Simulink仿真模型与相关代码资源,动手实践阻抗建模与扫频全过程,深入理解锁相环、电流环等控制环节对序阻抗特性的影响,并可进一步拓展至多机并网、宽频振荡等复杂场景的稳定性研究。
内容概要:本文研究了基于改进秃鹰算法的微电网群经济优化调度问题,旨在通过智能优化算法实现微电网群在满足电力供需平衡前提下的最低运行成本。文中详细构建了微电网群的系统架构与非线性数学模型,并将经济调度问题转化为复杂的多变量优化问题,采用改进的秃鹰算法进行高效求解。该算法通过模拟秃鹰捕食行为,结合自适应参数调整与局部搜索增强机制,显著提升了全局寻优能力与收敛效率。通过Matlab平台完成了算法编程与仿真验证,测试结果表明,该方法不仅有效降低了系统综合运行成本,还提高了能源利用效率与供电可靠性。同时,文章深入分析了不同参数设置和外部条件对优化性能的影响,为实际工程应用提供了理论依据和技术支持。; 适合人群:适用于从事电力系统、微电网、可再生能源集成、智能优化算法等领域研究的科研人员与工程技术人员,尤其适合对经济调度、智能算法设计与应用感兴趣的研究者; 使用场景及目标:①为微电网群的经济调度提供一种高精度、强鲁棒性的智能优化解决方案;②展示改进秃鹰算法在复杂非线性工程优化问题中的优越性能与应用潜力;③推动智能优化算法在现代电力系统调度中的深度融合与实践推广; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点关注模型构建、算法设计与仿真实验部分,以掌握其核心技术逻辑。对于拟应用于实际项目的研究者,建议先在小规模系统中验证算法有效性,再逐步扩展至多区域、多能源耦合的复杂微电网场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值