标签: pine-script

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
查看次数

Tradingview - 用于按百分比止盈和止损的 pine 脚本

我在将止盈和止损合并到一个脚本中时遇到严重问题。

我正在使用此脚本进行 TP https://kodify.net/tradingview/orders/percentage-profit/

这是 SL 的 https://kodify.net/tradingview/orders/percentage-stop/

我想出了下面的脚本,它不适合 SL。因此,订单将保持开放状态,直到达到目标价%。我需要你的帮助来修复它并像 TP 一样激活 SL。

//@version=3
strategy(title="Take profit (% of instrument price)",
     overlay=true, pyramiding=1)

// STEP 1:
// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
     type=float, minval=0.0, step=0.1, defval=3) * 0.01

longLossPerc = input(title="Long Stop Loss (%)",
     type=float, minval=0.0, step=0.1, defval=1) * 0.01

// Calculate moving averages
fastSMA = sma(close, 20)
slowSMA = sma(close, 60)

// Calculate trading conditions
enterLong  = crossover(fastSMA, slowSMA)


// …
Run Code Online (Sandbox Code Playgroud)

pine-script

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

如何在TradingView Pine脚本中优化参数?

我想在TradingView Pine回测中优化指标参数。其他工具也可以做到这一点,但是当我在TradingView中搜索此功能时,我什么也找不到。有人可以帮忙吗?

如果在TradingView中无法实现,那么有没有办法使用其他工具呢?

提前致谢!

back-testing tradingview-api pine-script

5
推荐指数
1
解决办法
585
查看次数

tradeview pine 脚本错误“无法在本地范围内使用‘plot’”

我正在尝试在 Tradingview 下使用 Pine 语言编写一个简单的 if-then-else 语句。代码的作用基于用户输入。

\n\n

如果选中该框,则绘制线条。

\n\n

如果未选中该框,则不绘制该线。

\n\n

这是我的代码:

\n\n
notPlot = -2000\nvar ch382= input(true, ".382")\nif ch382\n    plot( ch382? bottom + diff * .382:   noPlot, title="fib-.236", linewidth=3, color=color.orange )\n
Run 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

如何将plot语句放在if语句中

\n\n
    \n
  • 但 -
  • \n
\n\n

我需要做的是如果选中该框则绘制,如果未选中该框则〜不绘制〜。

\n

plot pine-script

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

Pinescript 设置仓位大小

我的策略()完全有效,但现在我正在尝试管理资金投入交易的方式。

\n

这是我目前的情况:
\n我的止损设置为最后 10 个柱线的最低点,止盈设置为 1.5 倍止损。
\n我的策略.退出:

\n
strategy.exit("EXIT LONG","LONG", stop=longSL, limit=longTP)\n
Run Code Online (Sandbox Code Playgroud)\n

到这里为止,一切都运行良好。

\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)\n
Run 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我怎样才能做到这一点?

\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)

trading pine-script

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

pine 脚本中 := 和 = 运算符之间的区别

我对 TradingView Pine 脚本非常陌生,我没有找到合适的参考来理解:==运算符之间的差异。

有人有参考或描述吗?

提前致谢

pine-script

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

检查变量是否为 NA

我使用 pine 脚本,我想检查某些变量是否为 NA。说:

float value = na

if value == na
   // do something
Run Code Online (Sandbox Code Playgroud)

As far as I am aware, the manual says that it is not guaranteed to work. Are there any alternatives to check if a variable is NA? I can't assign it to 0 though, since the outcome value can be 0.0 in my script. I am new to Pine Script. Thanks!

null pine-script

5
推荐指数
1
解决办法
5013
查看次数

找不到函数或函数引用“ema”

我收到错误第 13 行:找不到函数或函数引用“ema”。当我知道 ema 是一个函数时。

我正在尝试执行一个简单的策略,如果价格高于 200 DEMA,并且 SuperTrend 指标发出“买入”信号,则进入多头交易。如果超级趋势指标给出“卖出”信号,我想卖出。我的代码朝着正确的方向发展吗?非常感谢一些帮助!

//@version=5
strategy("DEMA and SuperTrend", overlay=true)

// SuperTrend
atrPeriod = input(12, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

// DEMA
demaLength = input(200)
src = input(close, title="Source")
e1 = ema(src, demaLength)
e2 = ema(e1, demaLength)
dema = 2 * e1 - e2

if ta.change(direction) < 0 and close > dema
    strategy.entry("long", strategy.long)
    
if ta.change(direction) > 0
    strategy.close("long", strategy.close)
Run Code Online (Sandbox Code Playgroud)

trading indicator algorithmic-trading pine-script

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

我如何检查图表上当前打开的交易品种?

我试图根据当前打开的符号来实现脚本的不同行为,如何检查符号的名称?

例如(伪代码):

如果符号是 CADJPY - 执行此操作

否则,如果符号是 NAS100USD - 执行此操作

pine-script pine-script-v5

5
推荐指数
1
解决办法
2447
查看次数

pine 脚本在一天结束时关闭所有仓位

我的问题是我无法在一天结束时关闭我的未平仓头寸,因为我使用的是兰科图表模式。如您所知,ranko 蜡烛时间不是固定的,所以我如何在 pine 脚本中使用 IST 时间在每天的特定时间退出。

在没有砖形图的情况下,我使用此代码来退出中毒

if (hour==15 and minute==29)
    strategy.close_all("Day Close")
Run Code Online (Sandbox Code Playgroud)

pine-script

5
推荐指数
1
解决办法
3081
查看次数