Pine 脚本策略 - 当*价格*(未平仓)穿过某个值时如何触发入场?目前进入交易一根蜡烛太晚了

Bir*_*rel 4 pine-script

只是玩玩,学习如何编写策略。我现在正在尝试的是(伪代码)......

if(previousCandle == red 
   ... AND previousCandle.high >= sma
   ... AND previousCandle.low <= sma 
   ... AND currentPrice > previousCandle.high)
    
    enter trade
Run Code Online (Sandbox Code Playgroud)

我在 Pine Script 中拥有的是......

redTouch = close < open and high >= ma and low <= ma

longCond = redTouch[1] and close > high[1]

strategy.entry("Long", strategy.long, when = longCond)
Run Code Online (Sandbox Code Playgroud)

所有蜡烛redTouch均已正确识别(之前使用 BG 颜色进行检查),但对于longCondI don’t Want close > high[1],因为它仅在下一根蜡烛上进入交易(并且为时已晚)。

以下屏幕截图显示了当前正在进入交易的位置(红色蜡烛上的蓝线),以及我希望它在哪里触发/进入(绿色蜡烛上的黄线)。

迟到的和期望的交易

如何更改close > high[1]price > high[1]或类似的蜡烛内交叉触发?或者您只能在 Pine Script 中的一个蜡烛中输入交易吗?

kma*_*yat 5

您需要做一些事情才能获得您正在寻找的行为。

  1. 添加process_orders_on_close=true到您的strategy声明语句中,以使策略测试器处理触发条件的柱,而不是下一个开盘柱。
  2. 也许将您要输入的价格存储在变量中high[1]+somenumber
  3. 添加limit=YourEntryPriceVariable到您的strategy.entry声明中

这将创建一个限价订单,以您在发生的柱上指定的价格输入。