标签: pine-script

TradingView 帮助使用多个strategy.exit 调用

我在修改 TradingView 策略测试器中的未平仓头寸时遇到奇怪的问题。让我先解释一下上下文:
下面一行根据我的入场条件打开一个订单entryLong

strategy.entry("ID", strategy.long, comment="L_Entry", when = entryLong)

这很有效,但是,在关闭订单之前您无法赚钱;)因此:

strategy.exit( "L_STOP", "ID", loss = fixedSL * 10)

fixedSL该行修改未平仓订单,以低于入场位置的价格添加止损。此时,我唯一的退出条件是价格触及我的止损,这总是会导致亏损策略。为了解决这个问题,我包括:

if (exitLong) strategy.exit("L_TRAIL", "ID", trail_points = fixedTP * 10, trail_offset = trailSL * 10)

然后在达到设定利润添加追踪止损。这样,我就可以安全地锁定利润,同时仍然留有增长空间。问题就在这里。每个退出条件都有一个 ID -L_STOPL_Trail(L 代表 Long,bc 这是买入)。我在图表上引用这些 ID 来帮助调试,并且只有L_STOP出现过的 ID 才会关闭订单。这让我相信L_TRAIL退出条件要么从未满足(不太可能),要么从未设置。我知道布尔值exitLong设置为 True 并且该行应该正在执行。

我可以通过在一次调用中设置追踪止损和止损来完全避免这个问题strategy.exit,但是看到屏幕上打印的L_STOPL_TRAIL来了解导致交易退出的原因非常有帮助。当满足条件时,只会打印订单的 ID,因此一次调用只会是L_STOP,这不会提供有关退出触发器的太多信息。

任何和所有反馈都是有帮助的!如有必要,我还可以添加图表的屏幕截图。

pine-script

6
推荐指数
1
解决办法
7395
查看次数

仍然没有 Pinescript 4 中 int 类型转换的系列?

我正在尝试使用一个系列作为整数。Pinescript 4 出来了,但仍然没有办法做到这一点:

//@version=4 
study("Test Script", overlay=true) 

l = 1 
l := nz(l[1]) + 1 
l := l>20?1:l 
ma = sma(close, l) 
plot(ma, linewidth=4, color=color.black) 
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用“var”。这次没有错误但没有按预期工作

//@version=4 
study("Test Script", overlay=true) 

var l = 1 
l := l>=20?1:l+1 
ma = sma(close, l) 
plot(ma, linewidth=4, color=color.black)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

pine-script

6
推荐指数
1
解决办法
2383
查看次数

如何在 pine script V4 上绘制虚线?

试图绘制一条普通的系列线,但使用松树脚本的 V4 我找不到如何设置样式?

这给了我一个错误:

plot(my_serie, color=color.blue,linewidth=2, style=line.style_dashed)

任何帮助表示赞赏。

pine-script

6
推荐指数
1
解决办法
6475
查看次数

TradingView – Pine Script 中单个订单的多个止盈

我正在尝试实施一个简单的策略,当我收到买入信号时进入多头,然后我想获得多笔利润并设置止损:

  • 以 1% 的利润出售 25% 的数量
  • 以 2% 的利润出售 25% 的数量
  • 以 3% 的利润出售 25% 的数量
  • 以 4% 的利润出售 25% 的数量
  • 止损 2%

我已经尝试了很多基于strategy.close, 的东西strategy.exitstrategy.entry但没有找到任何工作。有没有人有这种策略的经验?

谢谢

pine-script

6
推荐指数
1
解决办法
4944
查看次数

Tradingview - 如何使用多种输入类型=源

我目前正在尝试设置一个脚本,以便在另一个脚本显示多个特定数据点时生成条件警报。

input(type=source) 工作没有问题,但是一旦我尝试添加多个源输入,它就会停止一起工作。

我使用的是 Premium Tradingview 计划,在 pinescript 文档中找不到任何内容来解释此限制。通过深入挖掘,我能找到的最好的推理是他们的系统无法处理每个人在脚本上堆叠脚本的情况。

最简单的解决方案是将条件警报添加到我试图从中提取的脚本中,但在这种情况下我无权访问该源代码。

有谁知道从单一来源提取多个数据点的解决方法?

否则我想我的解决方案是尝试重新创建源并在那里构建警报?

谢谢!

trading pine-script

6
推荐指数
1
解决办法
1611
查看次数

交易视图。Pine-Script:Plotshape,同时使用 location.absolute 和布尔条件..?

在 TradingView PineScript 编程语言中,Plotshape 命令格式为:plotshape(series, title, style, location, .... 其中“Series 被视为除 location.absolute 之外的所有位置值的一系列布尔值。”

因此,使用“系列”,您可以指定是否必须为特定条形图绘制形状。除非......当您使用“location.absolute”时。在这种情况下,“系列”参数是形状的垂直坐标......如果你问我,语法很奇怪。为什么不将坐标添加为单独的参数?

因此,我无法在单个 PlotShape 命令中同时使用布尔值(指示是否必须绘制形状)和绝对位置。因此,我使用布尔值来代替“series”和“location.top”或“location.bottom”。但这并不是我真正想要的。

有人知道这个问题的解决方法吗?

谢谢!

pine-script

6
推荐指数
1
解决办法
1万
查看次数

在代码交易视图中隐藏图表、数量和信号标签上的交易

我正在寻找一种隐藏方式:图表上的交易、数量和信号标签 -

当使用 pinescript 策略进行交易视图时。

我想在代码中而不是在设置窗口中执行此操作。目前,我每次对脚本进行更改时都必须取消选中这些框,并且我无法在代码或额外代码中找到设置来实现这一点。

每次我在脚本中进行更改时取消选中这些框是....mweh...

希望有人能帮我解决这个看似简单的问题。我已经花了很多时间来解决这个问题……但到目前为止还没有运气。

pine-script

6
推荐指数
1
解决办法
769
查看次数

为了一致性,控制台输出应该在每次计算时调用该函数?

当我添加到图表或保存时,我的脚本最近刚刚开始在控制台中显示这些行。

"The function 'anonym_function_10' should be called on each calculation for consistency. It is recommended to extract the call from the ternary operator or from the scope."
"The function 'anonym_function_11' should be called on each calculation for consistency. It is recommended to extract the call from the ternary operator or from the scope." 
Run Code Online (Sandbox Code Playgroud)

需要一些帮助来理解这一点,代码是否会因准确性而受到影响,或者这可能是将来可能出现的问题?解决这个问题的解决方案是什么?

// @version=4
f_top_fractal(src) => src[4] < src[2] and src[3] < src[2] and src[2] > src[1] and src[2] > src[0]
f_bot_fractal(src) => src[4] > src[2] and src[3] …
Run Code Online (Sandbox Code Playgroud)

trading pine-script

6
推荐指数
1
解决办法
1万
查看次数

如何在 Python 中实现 RSI Divergence

我想知道是否有任何涵盖RSI-Divergence(快速和慢速之间的区别)的Python 库RSI或有关如何在 Python 中实现其算法的任何指导。

已经提出的问题:以编程方式检测 RSI 分歧。答案之一建议使用 Python 版本的quantconnect 论坛,但它没有涵盖任何内容。

我无法找到它的数学公式,但我能够在 pine-script 中找到RSI-Divergence,如下所示,但我无法将其转换为 Python,因为它无法pine-script使用tradingview进行调试。

study(title="RSI Divergence", shorttitle="RSI Divergence")
src_fast = close, len_fast = input(5, minval=1, title="Length Fast RSI")
src_slow = close, len_slow = input(14,minval=1, title="Length Slow RSI")
up_fast = rma(max(change(src_fast), 0), len_fast)
down_fast = rma(-min(change(src_fast), 0), len_fast)
rsi_fast = down_fast == 0 ? 100 : up_fast == 0 ? 0 : 100 - (100 …
Run Code Online (Sandbox Code Playgroud)

python algorithm algorithmic-trading pine-script

6
推荐指数
1
解决办法
4557
查看次数

Trail_price、trail_offset 在 pinescript 中到底是如何工作的?

感谢大家迄今为止的帮助。到目前为止,我已经在 pinescript 中编写了许多不同的策略,并且我已经阅读了 pinescript 手册和许多谷歌文章,但我仍然对追踪止损在 pinescript 中如何工作感到困惑。

例如,对于strategy.exit,我有一个trail_price,它标记要激活的追踪止损条目。然而,我所有的回溯测试都表明追踪止损位于该特定蜡烛线的最高点,即使 Trail_offset 尚未被触及。仅仅是因为交易视图回溯测试假设在一根蜡烛线中达到了最大利润,即使后续蜡烛线继续朝着您的目标方向发展?

例如,这是我的strategy.exit 的示例。Strategy.exit("long_TP", "long", Trail_price = 入场价格 + ATR, Trail_offset = ATR, stop= 入场价格 - ATR). 我注意到,只要在该特定交易收盘前获利,我将赚取 2 倍到 3 倍的 Trail_offset(在本例中基于 ATR,即,如果 ATR 为 50 点,我将赚取 100 甚至 150 点)。蜡烛吧。任何后续的蜡烛线,即使做多,即使没有达到 Trail_offset 止损,也不会被纳入计算(即,即使我的 ATR 是 50 点,当蜡烛线收盘时我可能会赚取 70 点,即使随后的蜡烛继续做多)。

我的假设是否不正确(即我的代码),或者这只是回溯测试的限制,因为程序无法知道蜡烛条内部发生了什么,只能知道最高价、最低价、开盘价和收盘价?然而,我确实对此感到好奇,因为有时即使蜡烛线处于最低点,也没有达到 Trail_offset,因此理论上利润应该继续累积,而不是在蜡烛线收盘后止损。

编辑:我添加了一些更多信息以进行澄清 - 这是一个带有一些解释的示例代码:

If condition == true
long = strategy.position_size[0] > strategy.position_size[1]  //go long if there is order entry
entry_price_long = valuewhen(long, open, 0) //entry price is the opening price, …
Run Code Online (Sandbox Code Playgroud)

trading algorithmic-trading forex back-testing pine-script

6
推荐指数
1
解决办法
6149
查看次数