Pine Script条件语句语法

问题描述

我努力用Pine编写if语句。 这个想法是当警告信号触发时止损收紧。 此更严格的止损应代替常规止损和尾随止损。我希望这是一个简单的语法错误,但是我似乎无法通过编辑缩进和空格来修复它。我还有什么更基本的要忽略的吗?

感谢您抽出宝贵的时间阅读本文!

longLossPerc = input(title="Long Stop Loss (%)",minval=0.0,step=0.1,defval=3.4) * 0.01 
longTrailPerc = input(title="Long Trail Loss (%)",defval=2.5) * 0.01 
longTightStopPerc  = input(title="Long K Loss (%)",defval=0.6) * 0.01 

longStopPrice = strategy.position_avg_price * (1 - longLossPerc)
longTrailPrice = strategy.position_avg_price * (1 - longTrailPerc) 
longTightStop = high * (1 - longTightStopPerc) 

    
stopValueLong = 0.0
if (Signal)
    stopValueLong = longTightStop
     else
       stopValueLong = max(longStopPrice,longTailPrice)
else
    0





    

解决方法

您将需要以下形式的某种形式,该形式假设您具有状态变量以了解是否进行交易的区别:

var stopValueLong = 0.0
if (Signal)
    stopValueLong := longTightStop
else if inTrade
    stopValueLong := max(longStopPrice,longTailPrice)
else if closeTrade
    stopValueLong := na

:=运算符对于使用stopValueLong语句的本地作用域将值分配给if变量很重要。看到: https://www.tradingview.com/pine-script-docs/en/v4/language/Expressions_declarations_and_statements.html#variable-assignment

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...