我想实现移动平均线(MA)TradingView.
目前已经有用于移动平均一些内置的功能(例如sma(),ema()和wma()).现在我想建立自己的MA功能.
你能帮助我吗?谢谢.
我想在 pine 脚本中为 TradingView 中的几只股票使用相同的警报条件。问题是,除非我创建脚本的副本并为每个脚本自定义消息,否则我不知道哪个股票触发了警报。我想要一些类似的东西:
alertcondition(someCondition, title='Bullish', message=tickerid)
Run Code Online (Sandbox Code Playgroud)
我在这里使用tickerid变量,它是内置变量的松树脚本之一。但是,当我尝试这样做时,我得到的消息实际上是tickerid,而不是与脚本关联的图表的tickerid。有没有办法动态生成tickerid?
有人问了类似的问题,没有回应,我不允许补充。
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 重置为零,我永远不会检查之前的收盘价。如果我不设置它,我会收到未声明的错误。
在此先感谢您的帮助!
因此,TradingView 上 Pine 脚本中的以下代码使用 Heikin-Ashi 烛台open价格,而不是策略测试面板中的实际实际开盘价。
有没有办法让策略测试人员使用真实价格?
此链接进一步解释了该问题。
//@version=2
strategy("haup", overlay=true)
cci20 = cci(close, 20)
sma10 = sma(close, 10)
source = close
sourcea = open
haclose = (open + high + low + close) / 4
haopen = na(haopen[1]) ? (open + close) / 2 : (haopen[1] + haclose[1]) / 2
fromYear = year > 2016
toYear = year < 2019
longCondition = haopen < haclose
if (longCondition and fromYear and toYear)
strategy.entry("Long 1", strategy.long)
closeCondition = …Run Code Online (Sandbox Code Playgroud) 寻找解决方法,不能以这种方式使用 plotshape,因为它在本地范围内不起作用。
//@version=3
study("MA test ", overlay=true)
FastMA = sma(close, 9)
SlowMA = sma(close, 15)
Diff = FastMA - SlowMA
if Diff > 0
plotshape(Diff, style=shape.arrowup, location=location.belowbar, color=green)
Run Code Online (Sandbox Code Playgroud) 我想为交易视图编写一个指标,该指标应根据活动时间范围在特定水平上绘制一条垂直线,例如在 5 分钟图表上,该指标应在与 60 分钟图表不同的水平上绘制线-图表。
我已经尝试过“分辨率”。这是代码的一个片段:
x = (resolution == "5") ? 10 : (resolution == "60") ? 20 : 30
plot(x)
Run Code Online (Sandbox Code Playgroud)
因此,这应该在 10 级绘制一条线,如果图表在 5 分钟时间范围内,在 60 分钟时间范围内在 20 级,在所有其他时间范围内在 30 级。
但它总是在30级绘制,所以代码必须是不正确的。我已经研究过“分辨率”是“输入”函数的常数,所以它似乎不能在这个函数之外使用。
所以我的问题是:什么是正确的代码?谢谢!
我浏览了数百个网站、文章、存储库和聊天室,试图找出如何将来自电视网站的脚本转换为图表库的自定义研究。大多数网站或指南都说"send us your scripts and we'll convert them for you"?!?!(这是开玩笑吗?)
我知道文档站点,但没有关于metainfo: {}选项或构造函数的信息。
任何有关此指南或文档的说明将不胜感激!
在交易视图的策略中,我输入了一个条目并有一个设置追踪止损的条件。同时我想要一个固定价格的止损单,但是当我下两个strategy.exit()命令时,实际上只使用了一个,因为两者都是“止损”类型。但是可以通过调用strategy.exit()并为其提供相同的 id来将退出命令替换为另一个退出命令。所以我的想法是用另一个替换一个退出并返回,当它适合我时,这样只有一个退出订单同时处于活动状态。
假设我有一个策略,有条件进入一个特定价格的头寸,例如conditionEnter和enterPrice,在进入时我也知道止损stopLossPrice,所以我可以设置:
if conditionEnter
strategy.entry(id="longEnter", long=true, qty=1, limit=enterPrice
strategy.exit(id="longExit", from_entry="longEnter", qty_percent=100, stop=stopLossPrice)
Run Code Online (Sandbox Code Playgroud)
现在,如果conditionTrailingStopLoss满足,我相应地替换它:
if conditionTrailingStopLoss
strategy.exit(id="longExit", from_entry="longEnter", qty=strategy.position_size * 0.2, trail_price=priceToTriggerTrailingStopLoss, trail_offset=100)
Run Code Online (Sandbox Code Playgroud)
其中priceToTriggerTrailingStopLoss等于或低于收盘价,以便立即设置追踪止损并追踪价格 100 个分时。请注意,即使它被执行,也只会退出当前位置的五分之一。
正如预期的那样,放置追踪止损退出订单会删除原始止损退出订单 - 当使用不同的 ID 时甚至是这样。我想等到追踪止损已经执行(被填充),然后再次放置止损退出订单。但是我如何确定执行时间?
我尝试了一些东西
if strategy.position_size < strategy.position_size[1]
strategy.exit(id="longEnter", long=true, qty=1, limit=enterPrice
strategy.exit(id="longExit", from_entry="longEnter", qty_percent=100, stop=stopLossPrice)
Run Code Online (Sandbox Code Playgroud)
看到一些退出已被执行,但我从未看到两个订单都被执行。但是,更改命令的顺序确实会影响忽略这两者中的哪一个。如果在上面的一段代码中我将 更改id为完全不同的东西,那么三个退出订单都不会被执行!
那么有人可以在这里帮忙吗?我的意思是想要有一个固定止损和一个追踪止损并不是很奇怪,它必须以某种方式起作用,对吗?
编辑:如果我在图表中向后滚动,我实际上确实看到有时一个,有时另一个退出订单被执行,但对于同一个入场订单仍然没有。
我正在尝试编写一个带有两个指标的 pine 脚本,一个覆盖在图表 (EMA) 上,另一个单独显示?(Stoch)我似乎无法找到有关如何(视觉上)分离这些指标的任何信息,但将它们保留在 1 个 pine 脚本中,即能够基于这些做出交易决策。
有没有办法创建一个指标来反映 Pine Script 中股票的当前价格?我需要这个指标,因为我需要在蜡烛关闭之前输入订单(当有特定的交叉时)并且回测数据是逐条提供的。我认为一个指标可以让我做到这一点,如果没有,还有另一种方法来解决这个问题。
我不是一个有经验的 pine 脚本编写者,任何帮助将不胜感激:) 谢谢,