我正在使用 Tradingview.com 中使用的 Pine 脚本。
我的问题是:如何获得等于当前值的最后一个值?我考虑过使用for循环或其他东西。
我尝试了这段代码,但它返回一个错误:
getval(x,y) =>
for i = 1 to 100
val = valuewhen(i, y, 1)
val2 = valuewhen(x=i, val, 1)
val2
Run Code Online (Sandbox Code Playgroud) 我正在尝试在电视中建立一个策略(仅限多头头寸),其中strategy.entry将考虑之前的退出价格。例如:
strategy.entry("long", strategy.long, when = longcondition==true)
strategy.close("long", strategy.close, when = longcondition==false)
Run Code Online (Sandbox Code Playgroud)
除了 longcondition==true 之外,我还想为 Strategy.entry 插入另一个条件,它说明了以下意图:
strategy.entry("long", strategy.long, when = longcondition==true and close[1] < previousExitPrice)
Run Code Online (Sandbox Code Playgroud)
怎样做才正确呢?预先感谢您的答复。
我正在尝试在交易视图中使用 pine-script 开发多个时间范围 RSI,但我似乎对长期图表视图中的短期 RSI 存在问题。
例如,以下代码将显示 5 分钟 RSI。如果我将图表设置为 5 分钟,它将正确显示 RSI。但是,当我选择更大的时间范围(例如 1 小时等)时,该值就会变得不正确。
study("Multi Time Frame RSI", "MTF RSI", overlay=false)
src = input(title="Source", type=source, defval=close)
_5min_rsi = security(tickerid, "5", rsi(src, 14))
plot(_5min_rsi, title="5min_RSI", color=purple, linewidth=1)
Run Code Online (Sandbox Code Playgroud)
我认为问题与正在操作的系列数据有关。由于某种原因,当我使用“5”的安全性作为我的分辨率时,其数据会在较高的时间范围图表中丢失,并且它使用当时不同系列的收盘价。至少这是我的假设。我相信我错误地使用了“security”函数,或者可能向 RSI 函数提供了错误的输入“src”。
我还尝试切换 RSI 和安全性,看看是否可以获取 5 分钟系列数据并将其输入到我的 RSI 函数中,但这并没有更好的效果。例如
_5min_rsi = rsi(security(tickerid, "5", src), 14)
Run Code Online (Sandbox Code Playgroud)
本质上,我需要看到的是,无论我在交易视图中处于什么时间范围,我都应该看到正确计算的 5 分钟 RSI。在当前状态下,代码只能在 1 分钟和 5 分钟的时间范围内运行,这显然是不可接受的。
我浏览了数百个网站、文章、存储库和聊天室,试图找出如何将来自电视网站的脚本转换为图表库的自定义研究。大多数网站或指南都说"send us your scripts and we'll convert them for you"?!?!(这是开玩笑吗?)
我知道文档站点,但没有关于metainfo: {}选项或构造函数的信息。
任何有关此指南或文档的说明将不胜感激!
我正在编写一个指标,需要读取之前的 32 根蜡烛 ohlc 数据才能进行预测。previous 32 candles ohlc data如何在 TradingView > PineScript Editor > Indicator 中获取?
假设我想将 AO 指示器作为 Pine 脚本标准的一部分包含在内。pine 脚本如何访问指标?策略或研究可以导入由另一个 Pine 脚本或内置指标生成的系列吗?
我正在尝试在 Tradingview 下使用 Pine 语言编写一个简单的 if-then-else 语句。代码的作用基于用户输入。
\n\n如果选中该框,则绘制线条。
\n\n如果未选中该框,则不绘制该线。
\n\n这是我的代码:
\n\nnotPlot = -2000\nvar ch382= input(true, ".382")\nif ch382\n plot( ch382? bottom + diff * .382: noPlot, title="fib-.236", linewidth=3, color=color.orange )\nRun Code Online (Sandbox Code Playgroud)\n\n我怎样才能以正确的方式写这个?
\n\n如果我尝试运行它,我得到:\xe2\x80\x9ccannot use \'plot\' in a local scope\xe2\x80\x9d
\n\n任何帮助将不胜感激。
\n\n预计到达时间:我在下面找到了这个帖子
\n\n\n\n我需要做的是如果选中该框则绘制,如果未选中该框则〜不绘制〜。
\n我需要在特定时间平仓,例如我想在15:15平仓。
pine 脚本中有内置函数来检查时间吗?
我的策略()完全有效,但现在我正在尝试管理资金投入交易的方式。
\n这是我目前的情况:
\n我的止损设置为最后 10 个柱线的最低点,止盈设置为 1.5 倍止损。
\n我的策略.退出:
strategy.exit("EXIT LONG","LONG", stop=longSL, limit=longTP)\nRun Code Online (Sandbox Code Playgroud)\n到这里为止,一切都运行良好。
\n问题:
\n即使我使用:
strategy("TEST MACD DEFAULT", shorttitle="MACD", overlay=true, initial_capital=1000, default_qty_type=strategy.equity, default_qty_value=1, currency=currency.EUR, process_orders_on_close=true, pyramiding=0)\nRun Code Online (Sandbox Code Playgroud)\n钱没有按照我想要的方式投入交易。
\n我想要什么:
\n我的资本为 1000\xe2\x82\xac。
\n我希望我的止损(已设置为最后 10 个柱中的最低点)为我资本的 1% = 10\xe2\x82\xac。
\n我的 TP 是 1.5xSL,所以它是 15\xe2\x82\xac。
\n这意味着对于我输掉的每笔交易,我会输掉 10\xe2\x82\xac,而对于我赢的每笔交易,我会赢取 15\xe2\x82\xac。
\n但这不是我所拥有的:\n
问题: \n
\n我怎样才能做到这一点?
这是我的代码(仅适用于多头头寸):
\n//@version=4\nstrategy("TEST MACD DEFAULT", shorttitle="MACD", overlay=true, initial_capital=1000, default_qty_type=strategy.cash, default_qty_value=10, currency=currency.EUR, process_orders_on_close=true, pyramiding=0)\n\n// MACD\n[macdLine, signalLine, _] = macd(close, 12, 26, 9)\n\n// EMA …Run Code Online (Sandbox Code Playgroud)