预计阅读时间: 7分钟

PrescienTrader包含多个时间表功能,这些功能与AmiBroker强大的分析和回测功能集成在一起。它还包括演示如何使用分析功能的AFL脚本。分析功能需要PrescientAPI Professional订阅。

以下视频演示了如何设置和运行探索。请观看视频,然后返回本文继续学习本教程。

缩图

勘探

当使用随附的PrescienTrader Backtesting脚本运行勘探时,AmiBroker会扫描您指定的工具清单和指定的日期范围。它为乐器和日期的每种组合生成一行。在上面的示例中,我们仅分析了2018年10月1日至12月31日日期范围内的一种工具(CHF / JPY)。

脚本输出以下探索列:

  • 股票代号
  • 约会时间
  • 开盘价,最高价,最低价,收盘价,交易量,未平仓量
  • 已保存 –使用已保存的参数设置,对于任何行,此列均以黄色突出显示。当您在PrescienTrader中保存参数时,仅针对所选工具和时间范围保存参数。这使您可以为每个仪器和每个时间范围使用自定义参数设置。当您运行探索时,PrescienTrader将自动应用任何自定义参数设置。 “已保存”列中的黄色突出显示是为了提醒您该行正在使用已保存的设置,而不是您在“参数”窗口中输入的设置。
  • PL坡度 –这表示“预测线”趋势的斜率。正斜率预测上升趋势,而负斜率预测下降趋势。
  • FLD分数 –所有有效周期的FLD的总和乘以每个周期的“强度”或“幅度”,这取决于您的PL基础设置。正值表示市场处于周期性上升趋势中。负值表示市场处于周期性下降趋势中。
  • 趋势栏 –当前预测趋势内的相对柱线号。趋势中的第一个柱为零柱。
  • 趋势条 –当前预测趋势中的柱线总数。
  • 趋势百分比 –当前预测趋势的完成百分比。例如,如果趋势栏= 5,趋势栏= 10,则趋势百分比将为50%。请注意,Trend Pct永远不会达到100%,因为那意味着新的趋势已经开始。在旧趋势和新趋势重叠的位置,趋势百分比将为0%。除数字显示外,此列还显示一个条形图,随着趋势的进行从绿色变为红色。
  • 行动 –这是当前行的信号,买/卖/卖空/结单。从包含的脚本生成的信号仅基于趋势斜率。当趋势斜率为正时,它将显示买入信号;当趋势斜率为负时,它将显示空头信号。这旨在作为一个非常简单的 如何使用PrescienTrader指标建立交易系统。 不要将这些示例信号用于实时交易,因为您很可能会亏损! 这个想法是使用我们的指标以及可能的其他指标来开发自己的交易系统,然后对该系统进行广泛的回测。拥有有效的经过回测的系统后,您可以将该系统插入“操作”列以显示您的交易信号。

回测

要运行回溯测试或优化,请先加载PrescienTrader回溯测试AFL脚本。我们建议你 复制脚本,而不是修改原始脚本。我们的分析功能为勘探柱生成输出,并创建包含结果的AFL数组和矩阵。运行回测或优化时,将使用生成的AFL数组和矩阵,其中包括:

  • ptStaticPL
  • ptStaticPLSlope
  • ptStaticFLDScore
  • ptStaticTrendBar
  • ptStaticTrendBars
  • ptStaticTrendPct
  • ptStaticFrequencies(矩阵)
  • ptStaticSlopes(矩阵)
  • ptStaticFLDPrices(矩阵)

如果要对多个时间范围进行分析,则这些函数将为每个时间范围创建一组单独的数组和矩阵。名称将与上面的名称相同,除了每个名称都有一个HTPx后缀,其中x表示较高的时间段索引。例如,第一个较高时间段的数组和矩阵将被命名为ptStaticPLHTP1,ptStaticPLSlopeHTP1,等等……第二个较高时间段的数组和矩阵将被命名为ptStaticPLHTP2,ptStaticPLSlopeHTP2等。

AmiBroker回测器非常强大。它支持真实的投资组合回测,前瞻性测试,蒙特卡洛模拟,多个时间范围测试,金字塔式和规模化,多种货币等等。所有这些功能和功能都可供您进行回测和PrescienTrader的输出。讨论AmiBroker中回测的细节超出了本文的范围。为此,最好阅读AmiBroker文档。

参数和参数变量

运行分析时,PrescienTrader将使用您在“参数”窗口中指定的参数值。但是,如果您以前保存了当前市场和时间范围的工具设置,则 保存的设置将覆盖“参数”窗口中显示的设置。这使您可以对投资组合中的每个工具使用不同的参数值来执行投资组合分析。当您查看“参数”窗口时,它将显示您输入的最后一个设置,不一定是保存的设置。点击 重置所有 按钮显示保存的仪器设置。

此外,您可以保存默认设置。与保存的仪器设置不同,保存的默认设置可以 覆盖显示的设置。这样,您就可以利用AmiBroker自动记住您输入的最后一个设置这一事实,因此,如果要多次测试一组特定的设置,则不必每次都重新输入。但是,您始终可以通过单击 重置所有 按钮。请记住 保存的仪器设置优先于保存的默认设置,因此,如果您单击 重置所有 并且它不会显示您的默认设置,这意味着您已保存了当前显示的乐器和时间范围的乐器设置。

最后,您可以通过设置与每个参数相对应的AFL变量来覆盖大多数参数。可用变量包括:

  • ptPolarity(0 =正,1 =负)
  • ptPLBasis(0 =振幅,1 =强度)
  • ptLookbackRange
  • ptMinFrequency
  • ptMaxFrequency
  • ptHarmonicFilter
  • ptMinConfidence
  • ptBestXCycles

每个变量还具有较高的时间段变化以进行多时间框架分析。要设置较高的时间段变量,请在变量名称后附加HTP1,HTP2,HTP3等。例如:

  • ptMinFrequencyHTP1
  • ptMaxFrequencyHTP2
  • ptLookbackRangeHTP3
  • ptHarmonicFilterHTP2
  • ptMinConfidenceHTP1
  • ptPLBasisHTP4

变量始终会覆盖“参数”窗口设置和所有已保存的设置。 如果在AFL中设置参数变量,则相应的参数将从“参数”窗口中消失。 您必须先设置所有参数变量,然后才能调用 先验分析 要么 预先分析准备 功能。

单线程与多线程分析

PrescienTrader支持单线程和多线程分析。单线程功能仅需要一行代码,因此非常适合运行快速探索或简单的回测。缺点是分析在单个线程中运行,因此一次只能分析一行。但是,如果您的分析仅包含几百行,则时间差异可以忽略不计。在这种情况下,编写多线程分析的其他代码所花费的时间要比运行它所节省的时间更长。

PrescienTrader Backtester脚本–单线程部分

分析脚本示例称为 PrescienTrader回测器。如果查看此脚本,则会看到它包含一个单线程部分和一个多线程部分,您可以在使用参数设置之间进行切换。单线程分析部分包含一行代码:

PTBacktest();

PT回测 函数不带任何参数,因为您在“参数”窗口中配置了所有参数。在运行时,它会创建一个API请求,将该请求提交给PrescientAPI,解析响应,将结果输出到探索列,并生成上述AFL数组。

要执行多时间框架分析,只需多次调用PrescientAnalysis函数。例如,如果要分析基本时间段和两个更高的时间段,则可以使用以下代码:

PTBacktest(); PTBacktest(); PTBacktest();

函数的每个实例都在“参数”窗口中创建另一个时间范围,因此在上面的示例中,“参数”窗口将包含基准时间段HTP1和HTP2的设置。不要将多线程与多时间框架混淆;这是两个完全不同的概念。多线程是指一次运行多个分析,例如分析一系列工具。多时间范围是指在多个时间范围内分析每种工具。例如,您可以分析标准普尔500的每日,每周和每月时间范围。在该示例中,您还将受益于以多线程模式运行,因为它将同时分析所有三个时间范围。但是,您可以在单线程模式下运行多时间范围分析,在这种情况下,它将按顺序分析时间范围。

PrescienTrader分析脚本–多线程部分

多线程部分比单线程脚本更复杂,并且需要几行代码:

postVars = PTBacktestPrepare();
如果(StrLen(postVars)> 0){
    ih = InternetPostRequest(“ https://api.prescientrading.com”,postVars);
    如果(ih){
        响应=“”;
        while((line = InternetReadString(ih))!=“”)
            响应+ =行;
        PTBacktestExecute(response);
        InternetClose(ih);
    }
    其他{
        msg =“ API没有响应-可能超时或Internet连接问题-等待60秒”;
        _TRACE(msg);
        PTLogToFile(msg);
        PTWait(60);
    }
}

附加代码的原因是,AmiBroker在诸如PrescienTrader之类的插件中不支持多线程。因此,该插件无需处理单个插件函数中的全部分析操作,而是可以处理除API请求之外的所有事情,API请求是最耗时的部分,因此从在多个线程中运行可带来最大的收益。

让我们逐步分解一下……

  1. 第一步,我们调用PTBacktestPrepare并将结果分配给postVars变量。此函数使用在“参数”窗口中定义的参数来为API请求生成正确格式的数据。
  2. 在第二步中,我们使用InternetPostRequest和InternetReadString函数发出API请求。由于它与远程服务器进行交互,因此这是该过程中最慢的部分,因此,从多个线程中运行可以最大程度地受益。
  3. 在最后一步,我们对API返回的数据运行PTBacktestExecute。此函数解析数据,将结果输出到探索列,并生成上述AFL数组。

如您所见,它并不是那么复杂,但是它比单线程方法需要更多的代码。如果您要分析大量数据,则多线程方法最多可以快32倍,具体取决于计算机具有的CPU内核数。

与单线程方法一样,您可以通过多次插入上述代码块或将代码块包装在for循环中来分析多个时间范围。

优化

优化是对参数进行微调以获得一个或一组市场的最佳结果的过程。 AmiBroker允许同时优化多达64个参数,支持产品组合优化,并包括三个智能优化引擎, 标准粒子群优化, 部族CMA-ES.

PrescienTrader支持对其所有参数进行优化,而不必为每个参数编写代码。 要设置优化参数,请按住 转移 键,然后单击“参数”工具栏图标。 这将显示优化参数窗口,您可以在其中输入 范围 (从和到)每个参数和一个 用于数字参数。该范围代表优化范围。例如,要优化回溯范围,可以选择以下内容:

回顾范围从:5
回溯范围至:10
回溯范围步长:1

输入这些参数将以5为增量在5到10之间优化回溯范围,因此它将测试5、6、7、8、9、10的值。

记录中

运行分析时,PrescienTrader会连续将信息输出到“跟踪”窗口。每行包含以下信息:

  • 分析类型(回测,优化,探索等)
  • 被分析仪器的符号
  • 时间段(每天,每周,每月等)
  • 数据系列(收盘价,平均价等)
  • 参数值:
    • 极性
    • PL基础
    • 最小频率
    • 最大频率
    • 回溯范围
    • 谐波滤波器
    • 最低置信度
    • 最佳X周期

对于每个参数值,在括号中指示其来源。来源可以是以下之一:

  • 参数-值是从“参数”窗口获取的。
  • 选择–根据“参数”窗口中指定的优化设置生成值。
  • 已保存–该仪器和时间段的保存值。
  • AFL –值取自与该参数对应的AFL变量。
  • 数组–值是从AFL数组中获取的。由于数组可以为每个条使用不同的值,因此不会显示任何值。

AFL变量具有最高优先级,其次是保存的值,然后是在“参数”窗口中指定的值。

除了“跟踪”窗口外,您还可以通过在“参数”窗口中输入文件路径来启用日志记录。

本文是否有帮助?
不喜欢 0
观看次数: 1419
永久自由
每日交易信号
通过PrescientSignals
订阅
订阅以每天免费收到发送到您的电子邮件收件箱的免费交易信号
免费信号会延迟一周。通过比较前一周的预测与实际结果,您可以无风险地评估我们的PrescientSignals服务。
永久自由
PrescientSignals的每日交易信号
订阅
订阅以每天免费收到发送到您的电子邮件收件箱的免费交易信号
免费信号会延迟一周。通过比较前一周的预测与实际结果,您可以无风险地评估我们的PrescientSignals服务。