OPEN-SOURCE SCRIPT
Sniper Strategy [Short Only]

//version=6
strategy("Sniper Strategy [Short Only]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, currency=currency.NONE)
// --- 参数设置 ---
atrPeriod = input.int(10, "ATR")
factor = input.float(3.0, "Factor")
sl_buffer = input.float(0.0, "SL Buffer", tooltip="在Supertrend上方增加一点缓冲")
// --- 核心计算 ---
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
// direction > 0 代表空头(红), < 0 代表多头(绿)
short_signal = ta.change(direction) > 0
exit_signal = ta.change(direction) < 0
// --- 变量记录 ---
var float entry_price = na
var float sl_price = na
var float tp_price = na
var bool tp_hit = false
// --- 1. 进场逻辑 (Entry) ---
if short_signal
// 做空止损放在 Supertrend 价格上方
float initial_sl = supertrend + sl_buffer
entry_price := close
sl_price := initial_sl
// 计算风险值 (价格差)
float risk_val = sl_price - entry_price
// 1R 止盈目标 (做空是向下减)
tp_price := entry_price - risk_val
tp_hit := false
strategy.entry("S", strategy.short)
// 标签:显示具体止损价格 + 亏损百分比
float risk_pct = (risk_val / entry_price) * 100
label_txt = "SL: " + str.tostring(sl_price, "#.##") + "\nRisk: " + str.tostring(risk_pct, "#.2") + "%"
// 做空标签显示在K线上方
label.new(bar_index, high, text=label_txt, style=label.style_label_down, color=color.new(color.red, 40), textcolor=color.white, size=size.small)
// --- 2. 持仓管理 (Management) ---
if strategy.position_size < 0
// 1R 目标达成:平仓 50%
strategy.exit("1R", "S", stop=sl_price, qty_percent=50, limit=tp_price)
// 剩余仓位止损
strategy.exit("End", "S", stop=sl_price)
// 1R 视觉提示 (只提示一次)
if not tp_hit and low <= tp_price
tp_hit := true
label.new(bar_index, low, text="1R 💰", style=label.style_label_up, color=color.new(color.yellow, 20), textcolor=color.black, size=size.small)
// --- 3. 趋势反转离场 (Exit) ---
if exit_signal
strategy.close_all()
entry_price := na
sl_price := na
tp_price := na
strategy("Sniper Strategy [Short Only]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, currency=currency.NONE)
// --- 参数设置 ---
atrPeriod = input.int(10, "ATR")
factor = input.float(3.0, "Factor")
sl_buffer = input.float(0.0, "SL Buffer", tooltip="在Supertrend上方增加一点缓冲")
// --- 核心计算 ---
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
// direction > 0 代表空头(红), < 0 代表多头(绿)
short_signal = ta.change(direction) > 0
exit_signal = ta.change(direction) < 0
// --- 变量记录 ---
var float entry_price = na
var float sl_price = na
var float tp_price = na
var bool tp_hit = false
// --- 1. 进场逻辑 (Entry) ---
if short_signal
// 做空止损放在 Supertrend 价格上方
float initial_sl = supertrend + sl_buffer
entry_price := close
sl_price := initial_sl
// 计算风险值 (价格差)
float risk_val = sl_price - entry_price
// 1R 止盈目标 (做空是向下减)
tp_price := entry_price - risk_val
tp_hit := false
strategy.entry("S", strategy.short)
// 标签:显示具体止损价格 + 亏损百分比
float risk_pct = (risk_val / entry_price) * 100
label_txt = "SL: " + str.tostring(sl_price, "#.##") + "\nRisk: " + str.tostring(risk_pct, "#.2") + "%"
// 做空标签显示在K线上方
label.new(bar_index, high, text=label_txt, style=label.style_label_down, color=color.new(color.red, 40), textcolor=color.white, size=size.small)
// --- 2. 持仓管理 (Management) ---
if strategy.position_size < 0
// 1R 目标达成:平仓 50%
strategy.exit("1R", "S", stop=sl_price, qty_percent=50, limit=tp_price)
// 剩余仓位止损
strategy.exit("End", "S", stop=sl_price)
// 1R 视觉提示 (只提示一次)
if not tp_hit and low <= tp_price
tp_hit := true
label.new(bar_index, low, text="1R 💰", style=label.style_label_up, color=color.new(color.yellow, 20), textcolor=color.black, size=size.small)
// --- 3. 趋势反转离场 (Exit) ---
if exit_signal
strategy.close_all()
entry_price := na
sl_price := na
tp_price := na
Script open-source
Nello spirito di TradingView, l'autore di questo script lo ha reso open source, in modo che i trader possano esaminarne e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricordiamo che la ripubblicazione del codice è soggetta al nostro Regolamento.
Declinazione di responsabilità
Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.
Script open-source
Nello spirito di TradingView, l'autore di questo script lo ha reso open source, in modo che i trader possano esaminarne e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricordiamo che la ripubblicazione del codice è soggetta al nostro Regolamento.
Declinazione di responsabilità
Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.