我试图根据当前打开的符号来实现脚本的不同行为,如何检查符号的名称?
例如(伪代码):
如果符号是 CADJPY - 执行此操作
否则,如果符号是 NAS100USD - 执行此操作
我使用此代码来显示价格线和表格。
//@version=5
indicator('MyIndicator')
ticker = input.symbol(defval='NSE:NIFTY', title='Ticker')
ticker_col = input.color(color.new(color.blue, 0), title='Color')
tickertext_col = input.color(color.new(color.white, 0), title='Text')
ticker_data = request.security(ticker, "", close)
plot(ticker_data, title='Ticker', color=ticker_col, linewidth=1, style=plot.style_line)
table = table.new(position = position.top_right, columns = 3, rows = 4)
table.cell(table_id = table, column = 0, row = 1, text = 'Ticker', text_color = tickertext_col, text_size = size.normal, bgcolor = ticker_col)
Run Code Online (Sandbox Code Playgroud)
使用“输入”部分,我可以为价格线和表格背景分配相同的颜色,因此我想删除“样式”部分中的颜色选项,因为它是多余且无用的。
可行吗?
在 PineScript v5 中,我试图制定一种策略,在下午 3:00(GMT+5:30 时区)之后我不打算进行任何交易。因此,如果当前时间小于下午 3:00,那么只有我会“进入”/“退出”交易。否则,我想在下午 3:00 退出所有未平仓头寸。
所以我尝试了这个:
endOfDay = input.int(defval=1500, title="Close all trades, default is 3:00 PM, 1500 hours (integer)")
if (hour(timenow) < endOfDay)
// Entry
float sl = na
if (sureBuyInTrend)
strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Long")
sl = atrLow
if (sureSellInTrend)
strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Short")
sl = atrHigh
// Exit: target or SL
longExitComment = (close < sl) ? "Long SL hit" : sureSellInTrend ? "Long target hit" : "Long close" …
Run Code Online (Sandbox Code Playgroud) 我有一个脚本,我试图在 2 mA 与 line.new 交叉的地方绘制一个 X 我已经在另一个脚本中尝试了 line.new ,它似乎有效,所以我不知道为什么它不起作用这个脚本。我只是设置 y 但收到错误。
//@version=5
indicator(title="My MACD with crosses", shorttitle="My MACD", timeframe="", timeframe_gaps=true)
// Get User Input
i_showCross = input.bool(title="Show MA Crossovers", defval=true)
// Calculate MA's using user input selections
fast_ma = i_sma_source == "SMA" ? ta.sma(i_src, i_fast_length) : ta.ema(i_src, i_fast_length)
slow_ma = i_sma_source == "SMA" ? ta.sma(i_src, i_slow_length) : ta.ema(i_src, i_slow_length)
crossOver = ta.crossover(fast_ma, slow_ma)
crossUnder = ta.crossunder(slow_ma, fast_ma)
// show label
crossX = label.new(bar_index, na, str.tostring(fast_ma) + "crossed under " …
Run Code Online (Sandbox Code Playgroud) 看来我无法找出适合我的策略的正确脚本,如下所示:
\n在每日时间范围内效果更好,收到的信号更少,但更有效,脚本是这样的:
\n//@version=5\nstrategy("Estrategia Long Only")\n// Definir el indicador ADX\nlen = input(14, title="ADX Length")\nth = input(44, title="ADX Threshold")\nadx_val = ta.adx(high, low, close, len)\n// Definir el indicador RSI\nrsi_len = input(14, title="RSI Length")\nrsi_buy = input(20, title="RSI Buy Threshold")\nrsi_sell = input(35, title="RSI Sell Threshold")\nrsi_val = ta.rsi(close, rsi_len)\n// Generar se\xc3\xb1ales de compra\nadx_above_th = adx_val > th\nrsi_above_buy = rsi_val >= rsi_buy and rsi_val < rsi_sell\nbuy_signal = adx_above_th and rsi_above_buy\n// Entradas largas\nif buy_signal\n …
Run Code Online (Sandbox Code Playgroud) algorithmic-trading tradingview-api pine-script pine-script-v5
我正在尝试添加具有多个选项的输入,如下所示,并根据 TradingView 中的用户选择显示图表:
我尝试过的是:
emaInput = input.string("50 EMA", "Choose EMA", options = ["50 EMA", "100 EMA", "200 EMA"])
upTrend = plot(dir == 1 and emaInput == '200 EMA' ? longStop : na, title='Uptrend Line', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
Run Code Online (Sandbox Code Playgroud)
保存脚本时出现以下错误:
无法使用参数“expr1”=“emaInput”调用“operator and”。使用了“输入字符串”类型的参数,但需要“系列布尔”
任何帮助将不胜感激!