对于松针策略,在信号发出后延迟进入市场

时间:2021-04-27 18:32:52

标签: pine-script

我正在使用

pinescript 4.0 

在下面的图表中,我正在执行使用以下内容的 strategy

if exec_long 
    // entry condition
    if crossover(rsi, ema ) and inDateRange and close > close[1] 
        strategy.entry("MAN Long Entry Id", strategy.long)

我遇到的问题是入场发生在下一根蜡烛的顶部(见指向右侧的箭头)。对我来说,这可能意味着金钱损失(由于迟到)。我该如何解决这个问题,以便在RSI crosses over the EMA(对于空头和多头)的准确时间进行入场?

TIA

enter image description here

编辑

@e2e4 - 感谢您的回复。我会尝试设置。出于好奇,它可以在实时/生产环境中运行吗?

我已经添加了一个简短条目示例的示例。在这个例子中,仓位被“止损”,因为进场发生在蜡烛的底部。如果入场发生在蜡烛的顶部(参见图片简短 #1),则不会发生“停止退出” - 或者 - 如果它发生在图片简短 #2 中的“虚线”上(目标是保持尽可能低的止损金额)。

<块引用>

=> 话虽如此,想知道您是否知道 Tradingview 网站上的任何代码可能提供某种指导(或代码) 执行不会“停止”的条目(使用 pinescript) 由于 LONG 示例(较早发送)发生的情况 或使用 SHORT 示例(显示在 SHORT #1 和 简短内容#2)

TIA

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

策略和研究脚本以不同的逻辑执行。有关代理模拟器的更多信息: https://www.tradingview.com/pine-script-docs/en/v4/essential/Strategies.html#broker-emulator

在 TradingView 上,根据图表的所有可用历史数据(回溯测试)计算策略,然后在实时数据到来时自动继续计算(前向测试)。 默认情况下,在历史和实时计算期间,代码在柱线收盘时计算。 前测时,您可以选择将脚本计算配置为在每个实时分时发生。要启用此功能,请选中策略设置/属性中的 Recalculate On Every Tick 选项,或使用以下命令在脚本代码中指定:

strategy(..., calc_on_every_tick = true)

您可以将策略设置为在订单成交后执行一次额外计算。为此,您需要检查在策略的设置/属性中填写的订单后重新计算,或者在脚本的代码中使用:

strategy(..., calc_on_order_fills = true)

您可能会发现这篇来自 backtest-rookies 的文章很有用,它解释了信号和订单执行之间 1 根蜡烛线的延迟,有时是 2 根蜡烛线的延迟:https://backtest-rookies.com/2017/11/15/backtesting-101-trades-delayed/