TradingView Pine Script : 在新入场前检查之前的 strategy.entry 价格

rig*_*ide 5 pine-script

有人问了类似的问题,没有回应,我不允许补充。

Tradingview Pine 脚本在策略进入时保存收盘价

我正在尝试制定一个策略,该策略将多次购买(金字塔式)以在收盘前平均下跌,但我想检查之前的入场价格以确保其低于配置的百分比。

到目前为止我所拥有的:

lastBuy=0

if (condition)
    if (lastBuy==0)
        lastBuy=close
        strategy.entry("buy", true)
    else
        if ((close*1.01)<lastBuy)
            lastBuy=close
            strategy.entry("buy", true)
Run Code Online (Sandbox Code Playgroud)

每次传递代码时,它都会将 lastBuy 重置为零,我永远不会检查之前的收盘价。如果我不设置它,我会收到未声明的错误。

在此先感谢您的帮助!

anq*_*ros 5

我如何将入场价格保存到变量中:

bought = strategy.opentrades[0] == 1 and strategy.position_size[0] > strategy.position_size[1]
entry_price = valuewhen(bought, open, 0)
Run Code Online (Sandbox Code Playgroud)


Cra*_*JEW 5

这适用于入门价格。

entryPrice = valuewhen(strategy.opentrades == 1, strategy.position_avg_price, 0)


Jur*_*ura 1

每次通过代码时,它都会将lastBuy重置为零,并且我永远无法检查之前的收盘价。如果我不设置这个,我会收到未声明的错误。

发生这种情况是因为您的代码尝试重复声明同一lastBuy变量。这样做会导致TradingView 的未声明标识符错误

要解决这种情况,首先用 声明变量=。然后用 更新其值:=。请记住,您不能=对同一变量多次使用该运算符。

因此,将您的代码更改为:

lastBuy = 0

if (condition)
    if (lastBuy == 0)
        lastBuy := close
        strategy.entry("buy", true)
    else
        if ((close*1.01)<lastBuy)
            lastBuy := close
            strategy.entry("buy", true)
Run Code Online (Sandbox Code Playgroud)