【问题标题】:Nested if statement in pine script松树脚本中的嵌套 if 语句
【发布时间】:2020-05-05 21:23:15
【问题描述】:

我正在尝试在交易视图中构建一个 ema 脚本,但正在为如何完成代码而苦恼。我实际上是在尝试编写此代码,但不确定如何将其嵌套在 if 语句中:

(tl <= em1 and tc > ema2) and ((tc<ema3) or (tc<em4) or (tc<em5))

我怎样才能为此放置一个嵌套的 if 语句?目标是使用 if 语句来绑定其余代码



// EMA trap
m1=8
m2=3.1
m3=3.2
m4=3.4

tl=low
tc=close

em1 = ema(tl,m1)
em2 = ema(tc,m1)
em3 = ema(tc,m2)
em4 = ema(tc,m3)
em5 = ema(tc,m4)```

【问题讨论】:

  • 对不起,我不明白你的问题,你的代码 sn-p 的目的还不清楚。需要解释更多。

标签: if-statement nested pine-script


【解决方案1】:

ema() 不能使用浮点句点,所以用整数替换它们。

当您的条件为真时,这会在图表上绘制一个箭头:

//@version=4
study("", "", true)
// EMA trap
m1=8
m2=3
m3=4
m4=5

tl=low
tc=close

em1 = ema(tl,m1)
em2 = ema(tc,m1)
em3 = ema(tc,m2)
em4 = ema(tc,m3)
em5 = ema(tc,m4)

cond = tl <= em1 and tc > em2 and (tc < em3 or tc < em4 or tc < em5)
plotchar(cond, "cond", "▼", location.top)

【讨论】:

  • 您好,非常感谢您提供帮助。所以我认为你走在正确的道路上,但我认为我还没有真正解释我想要做什么,我为此道歉。我试图编码的是:(当前柱线的低交叉价格低于或等于 8EMA,但收盘价高于 8EMA)和((当前柱线的收盘价低于 1 柱前的 3EMA)或(当前柱线的收盘价低于 2 柱前的 3EMA)或(当前柱的收盘价低于 3 柱前的 3EMA))当这种情况发生时,您的代码会显示某些事件的箭头,但不是每次都显示。那怎么办?
  • 我认为我什至不需要 m3=4 和 m4=5,因为它们将引用与 3EMA 不同的 EMA
  • 分别定义和绘制所有基本条件,以确保它们在您认为应该发生的时候发生。验证这一点后,只需将它们组合成一个布尔表达式,在它们之间使用 and。使用这种技术:pinecoders.com/faq_and_code/…
  • //@version=4 study("EMA Trap", "EMA Trap", true) // EMA trap m1=8 m2=3 red=#FF0000 tl=low tc=close em1 = ema(tl,m1) em2 = ema(tc,m1) em3 = ema(tc,m2) cond = (tl &lt;= em1 and tc &gt; em2) and (tc &lt; em3[1] or tc &lt; em3[1] or tc &lt; em3[3]) /// plotchar(cond, "cond", "▼", location.top) plotshape(cond, "cond", location=location.absolute, style=shape.triangledown, size=size.tiny, color=red, transp=0)
  • 这是您需要自己完成的工作。按照常见问题解答中的示例并简单地替换您自己的条件。如果您不能自己编写代码,那么您需要雇人为您编写代码:pinecoders.com/resources/#trusted-pine-programmers-for-hire
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
相关资源
最近更新 更多