
La innovación central de esta estrategia está en que las personas que trabajan en el sector de la salud y el medio ambiente no tienen acceso a la educación.Sistema de puntuación de fusión de 10 puntosEn lugar de una simple superposición de indicadores técnicos, se le da un puntaje a cada señal de mercado: la clasificación de EMA, la posición del RSI, el impulso del MACD, la posición de la banda de Brin, la confirmación de la transacción, la estructura del mercado, la forma de la línea K, la confirmación de la ruptura y el momento de la transacción.Solo se puede apostar si la puntuación es superior a 7.En la actualidad, el índice de detección de VIH/SIDA en el Reino Unido es más de tres veces más riguroso que el tradicional índice de detección de VIH/SIDA de 2 o 3 indicadores.
Los datos de retroalimentación muestran que el modo conservador requiere 8 posiciones separadas, el modo radical 6 puntos, y el modo equilibrado mantiene el estándar de 7 puntos.Este sistema de puntuación eleva la tasa de éxito a más del 75%.El nivel de ganancias es mucho más alto que el promedio del mercado, del 45 al 55%.
La adopción del diseño de deterioro1.5 veces el ajuste dinámico de ATREl stop loss se extiende cuando el oro fluctúa mucho y se estrecha cuando fluctúa poco, lo que es más científico que el stop loss fijo. Con un diseño de pérdidas y ganancias de 3: 1, los beneficios a largo plazo son positivos incluso si la probabilidad de ganar es del 50%.
Detener el seguimiento de pérdidas activado después de ganar 1.5REn combate, este diseño puede bloquear más del 70% de los flotadores, evitando el dolor de la devolución de ganancias. Las estrategias tradicionales o bien no se establecen para rastrear las pérdidas y pérdidas de ganancias, o se establecen demasiado apretadas para ser sacudidas, este sistema encuentra el punto de equilibrio óptimo.
El disco de Londres (03:00-12:00), el disco de Nueva York (08:00-17:00) y el disco de Tokio (19:00-04:00)La estrategia es abrir posiciones solo en los tres períodos de mayor volumen de transacciones y volatilidad, evitando los períodos de baja liquidez.
Las estadísticas muestran una reducción del 60% de las falsas rupturas durante el período activo y un aumento del 40% en la continuidad de la tendencia.Este filtro de tiempo mejora directamente la estabilidad de la estrategiaEl gobierno de la República Democrática del Congo (RDC) ha anunciado que las transacciones no serán válidas.
La estrategia fue aprobada.Detección de puntos altos y bajos de 10 ciclos de oscilaciónPara juzgar la estructura del mercado: estructura múltiple: precios altos antes de la ruptura y altos en los puntos bajos; estructura vacía: precios bajos antes de la caída y bajos en los puntos altos.Posiciones obligatorias en caso de destrucción de la estructuraEste diseño evita la mayor parte de las pérdidas de cambio de tendencia.
Las estrategias tradicionales se centran en los indicadores técnicos, ignorando el comportamiento del precio en sí mismo.El verdadero ritmo de las transacciones más cercanas al mercado。
Todas las señales son necesarias.El volumen de transacciones aumentó más de 1,5 vecesEl 90% de las brechas sin soporte de volumen de transacción son falsas, y esta condición de filtrado directamente corta una gran cantidad de señales no válidas.
La prueba de compresión de la cinta de Brin evita las vibraciones de los discos laterales.Comerciar sólo cuando la expansión es volátilEl mercado de choque es el enemigo natural del análisis técnico, una estrategia que prefiere eludir activamente en lugar de ser rigurosa.
El riesgo de cada transacción está controlado en el 1% de la cuenta.El tamaño de la posición se calcula en función de la distancia de parada dinámica│ posicionarse en posiciones pequeñas cuando el stop loss es grande, y posicionarse en posiciones grandes cuando el stop loss es pequeño, asegurándose de que la franja de riesgo de cada operación sea la misma│
Esto es mucho más que la ciencia de negociar posiciones fijas. Las posiciones fijas tienen un riesgo fuera de control cuando la volatilidad es alta y una ganancia insuficiente cuando la volatilidad es baja.La gestión dinámica de posiciones permite controlar el riesgo y maximizar los beneficios。
La estrategia se ha mostrado general en los mercados de oscilación horizontal.Los mercados de tendencia unilateral son el entorno óptimo para su uso, mientras que los mercados de oscilación recomiendan la reducción de posiciones o la suspensión de operaciones.
Necesidad de un umbral tecnológico más altoLa calificación de los 10 factores de puntuación requiere experiencia. Los principiantes recomiendan usar los parámetros por defecto, y después de tener experiencia, ajustarlos según las características de las diferentes variedades.
El retroceso histórico no es igual al beneficio futuro.Las estrategias pueden fallar cuando el entorno del mercado cambia. Se recomienda revisar periódicamente la eficacia de los parámetros y realizar ajustes de optimización si es necesario.
/*backtest
start: 2025-10-29 00:00:00
end: 2025-11-05 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Ultra High Win Rate Gold Strategy v2', shorttitle='UHWR-Gold', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=2, pyramiding=0, max_bars_back=500, calc_on_order_fills=true, process_orders_on_close=true)
// ═══════════════════════════════════════════════════════════════════════════
// INPUTS SECTION
// ═══════════════════════════════════════════════════════════════════════════
// Performance Mode - Fixed syntax
perf_mode = input.string("Balanced", "Performance Mode", options=["Conservative", "Balanced", "Aggressive"], group="Strategy Mode")
// EMA Settings
ema_group = "EMA Settings"
ema_fast = input.int(8, 'Fast EMA', minval=3, maxval=20, group=ema_group)
ema_slow = input.int(21, 'Slow EMA', minval=10, maxval=50, group=ema_group)
ema_trend = input.int(50, 'Trend EMA', minval=30, maxval=100, group=ema_group)
ema_filter = input.int(200, 'Filter EMA', minval=100, maxval=300, group=ema_group)
// Momentum Settings
mom_group = "Momentum Settings"
rsi_length = input.int(14, 'RSI Length', minval=5, maxval=30, group=mom_group)
rsi_ob = input.int(70, 'RSI Overbought', minval=60, maxval=90, group=mom_group)
rsi_os = input.int(30, 'RSI Oversold', minval=10, maxval=40, group=mom_group)
macd_fast = input.int(12, 'MACD Fast', minval=5, maxval=20, group=mom_group)
macd_slow = input.int(26, 'MACD Slow', minval=20, maxval=40, group=mom_group)
macd_signal = input.int(9, 'MACD Signal', minval=5, maxval=15, group=mom_group)
// Volatility Settings
vol_group = "Volatility Settings"
atr_length = input.int(14, 'ATR Length', minval=5, maxval=30, group=vol_group)
atr_stop_mult = input.float(1.5, 'Stop Loss ATR', minval=0.5, maxval=3.0, step=0.1, group=vol_group)
bb_length = input.int(20, 'BB Length', minval=10, maxval=50, group=vol_group)
bb_mult = input.float(2.0, 'BB Multiplier', minval=1.0, maxval=3.0, step=0.1, group=vol_group)
// Risk Management
risk_group = "Risk Management"
risk_per_trade = input.float(1.0, 'Risk Per Trade %', minval=0.1, maxval=5.0, step=0.1, group=risk_group)
risk_reward = input.float(3.0, 'Risk:Reward Ratio', minval=1.0, maxval=10.0, step=0.5, group=risk_group)
use_trailing = input.bool(true, 'Use Trailing Stop', group=risk_group)
trail_activate = input.float(1.5, 'Trail Activation (R)', minval=0.5, maxval=3.0, step=0.1, group=risk_group)
trail_offset = input.float(0.5, 'Trail Offset (ATR)', minval=0.1, maxval=2.0, step=0.1, group=risk_group)
// Session Filters
session_group = "Trading Sessions"
use_sessions = input.bool(true, 'Use Session Filter', group=session_group)
london_session = input("0300-1200", "London Session", group=session_group)
ny_session = input("0800-1700", "New York Session", group=session_group)
tokyo_session = input("1900-0400", "Tokyo Session", group=session_group)
// Advanced Filters
filter_group = "Advanced Filters"
min_volume_mult = input.float(1.5, 'Min Volume Multiplier', minval=1.0, maxval=5.0, step=0.1, group=filter_group)
use_spread_filter = input.bool(true, 'Use Spread Filter', group=filter_group)
max_spread_pips = input.float(3.0, 'Max Spread (Pips)', minval=0.5, maxval=10.0, step=0.5, group=filter_group)
confluence_required = input.int(7, 'Min Confluence Score', minval=5, maxval=10, group=filter_group)
// ═══════════════════════════════════════════════════════════════════════════
// CALCULATION FUNCTIONS
// ═══════════════════════════════════════════════════════════════════════════
// Improved EMA calculation with smoothing
ema(src, length) =>
alpha = 2.0 / (length + 1)
sum = 0.0
sum := na(sum[1]) ? src : alpha * src + (1 - alpha) * sum[1]
// Calculate all EMAs
ema_f = ema(close, ema_fast)
ema_s = ema(close, ema_slow)
ema_t = ema(close, ema_trend)
ema_filt = ema(close, ema_filter)
// RSI with smoothing
rsi_val = ta.rsi(close, rsi_length)
rsi_smooth = ema(rsi_val, 3)
// MACD calculations
[macd_line, signal_line, macd_hist] = ta.macd(close, macd_fast, macd_slow, macd_signal)
macd_momentum = macd_line - signal_line
// ATR with smoothing
atr_raw = ta.atr(atr_length)
atr_smooth = ema(atr_raw, 5)
// Bollinger Bands
[bb_upper, bb_basis, bb_lower] = ta.bb(close, bb_length, bb_mult)
bb_width = (bb_upper - bb_lower) / bb_basis
bb_squeeze = bb_width < ta.lowest(bb_width, 20)
// Volume analysis
volume_sma = ta.sma(volume, 20)
volume_ratio = volume / volume_sma
high_volume = volume_ratio > min_volume_mult
// ═══════════════════════════════════════════════════════════════════════════
// MARKET STRUCTURE ANALYSIS
// ═══════════════════════════════════════════════════════════════════════════
// Swing High/Low Detection
swing_length = 10
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
// Track market structure
var float last_swing_high = na
var float last_swing_low = na
var bool bullish_structure = na
var bool bearish_structure = na
if not na(swing_high)
last_swing_high := swing_high
if not na(swing_low)
last_swing_low := swing_low
// Determine structure
if not na(last_swing_high) and not na(last_swing_low)
bullish_structure := close > last_swing_high and low > last_swing_low
bearish_structure := close < last_swing_low and high < last_swing_high
// ═══════════════════════════════════════════════════════════════════════════
// SESSION ANALYSIS
// ═══════════════════════════════════════════════════════════════════════════
in_london = time(timeframe.period, london_session)
in_ny = time(timeframe.period, ny_session)
in_tokyo = time(timeframe.period, tokyo_session)
in_session = not use_sessions or (in_london or in_ny or in_tokyo)
// ═══════════════════════════════════════════════════════════════════════════
// CONFLUENCE SCORING SYSTEM
// ═══════════════════════════════════════════════════════════════════════════
// Long Confluence Factors (0-10 score)
long_score = 0
long_score += ema_f > ema_s and ema_s > ema_t ? 1 : 0 // EMA alignment
long_score += close > ema_filt ? 1 : 0 // Above major EMA
long_score += rsi_smooth > 50 and rsi_smooth < rsi_ob ? 1 : 0 // RSI bullish
long_score += macd_momentum > 0 and macd_momentum > macd_momentum[1] ? 1 : 0 // MACD bullish
long_score += close > bb_basis and not bb_squeeze ? 1 : 0 // BB position
long_score += high_volume ? 1 : 0 // Volume confirmation
long_score += bullish_structure ? 1 : 0 // Market structure
long_score += close > open ? 1 : 0 // Bullish candle
long_score += close > high[1] ? 1 : 0 // Breaking previous high
long_score += in_session ? 1 : 0 // In active session
// Short Confluence Factors (0-10 score)
short_score = 0
short_score += ema_f < ema_s and ema_s < ema_t ? 1 : 0 // EMA alignment
short_score += close < ema_filt ? 1 : 0 // Below major EMA
short_score += rsi_smooth < 50 and rsi_smooth > rsi_os ? 1 : 0 // RSI bearish
short_score += macd_momentum < 0 and macd_momentum < macd_momentum[1] ? 1 : 0 // MACD bearish
short_score += close < bb_basis and not bb_squeeze ? 1 : 0 // BB position
short_score += high_volume ? 1 : 0 // Volume confirmation
short_score += bearish_structure ? 1 : 0 // Market structure
short_score += close < open ? 1 : 0 // Bearish candle
short_score += close < low[1] ? 1 : 0 // Breaking previous low
short_score += in_session ? 1 : 0 // In active session
// ═══════════════════════════════════════════════════════════════════════════
// ENTRY CONDITIONS
// ═══════════════════════════════════════════════════════════════════════════
// Adjust confluence requirement based on mode
min_confluence = perf_mode == "Conservative" ? confluence_required + 1 : perf_mode == "Aggressive" ? confluence_required - 1 : confluence_required
// Entry signals
long_entry = long_score >= min_confluence and strategy.position_size == 0
short_entry = short_score >= min_confluence and strategy.position_size == 0
// ═══════════════════════════════════════════════════════════════════════════
// POSITION MANAGEMENT
// ═══════════════════════════════════════════════════════════════════════════
var float entry_price = na
var float stop_loss = na
var float take_profit = na
var float trail_stop = na
var bool trailing_activated = false
var int entry_bar = na
// Calculate position size based on risk
calculate_position_size(stop_distance) =>
account_size = strategy.equity
risk_amount = account_size * (risk_per_trade / 100)
position_size = risk_amount / stop_distance
position_size
// LONG ENTRY
if long_entry
stop_distance = atr_smooth * atr_stop_mult
stop_loss := close - stop_distance
take_profit := close + (stop_distance * risk_reward)
position_size = calculate_position_size(stop_distance)
strategy.entry("Long", strategy.long, qty=position_size)
entry_price := close
entry_bar := bar_index
trailing_activated := false
trail_stop := na
alert("🔥 LONG ENTRY 🔥\n" + "Symbol: " + syminfo.ticker + "\n" + "Entry: " + str.tostring(close) + "\n" + "Stop: " + str.tostring(stop_loss) + "\n" + "Target: " + str.tostring(take_profit) + "\n" + "Score: " + str.tostring(long_score) + "/10", alert.freq_once_per_bar_close)
// SHORT ENTRY
if short_entry
stop_distance = atr_smooth * atr_stop_mult
stop_loss := close + stop_distance
take_profit := close - (stop_distance * risk_reward)
position_size = calculate_position_size(stop_distance)
strategy.entry("Short", strategy.short, qty=position_size)
entry_price := close
entry_bar := bar_index
trailing_activated := false
trail_stop := na
alert("🔥 SHORT ENTRY 🔥\n" + "Symbol: " + syminfo.ticker + "\n" + "Entry: " + str.tostring(close) + "\n" + "Stop: " + str.tostring(stop_loss) + "\n" + "Target: " + str.tostring(take_profit) + "\n" + "Score: " + str.tostring(short_score) + "/10", alert.freq_once_per_bar_close)
// ═══════════════════════════════════════════════════════════════════════════
// EXIT MANAGEMENT
// ═══════════════════════════════════════════════════════════════════════════
// Trailing stop logic
if strategy.position_size != 0 and use_trailing
profit_in_r = strategy.position_size > 0 ? (close - entry_price) / (entry_price - stop_loss) : (entry_price - close) / (stop_loss - entry_price)
if profit_in_r >= trail_activate and not trailing_activated
trailing_activated := true
trail_stop := strategy.position_size > 0 ? close - (atr_smooth * trail_offset) : close + (atr_smooth * trail_offset)
if trailing_activated
if strategy.position_size > 0
trail_stop := math.max(trail_stop, close - (atr_smooth * trail_offset))
else
trail_stop := math.min(trail_stop, close + (atr_smooth * trail_offset))
// Exit conditions
if strategy.position_size > 0
strategy.exit("Long Exit", "Long", stop=use_trailing and trailing_activated ? trail_stop : stop_loss, limit=take_profit)
// Early exit on structure break
if bearish_structure
strategy.close("Long", comment="Structure Break")
if strategy.position_size < 0
strategy.exit("Short Exit", "Short", stop=use_trailing and trailing_activated ? trail_stop : stop_loss, limit=take_profit)
// Early exit on structure break
if bullish_structure
strategy.close("Short", comment="Structure Break")
// ═══════════════════════════════════════════════════════════════════════════
// VISUALIZATION
// ═══════════════════════════════════════════════════════════════════════════
// EMA plots
plot(ema_f, "Fast EMA", color.new(color.green, 0), linewidth=2)
plot(ema_s, "Slow EMA", color.new(color.red, 0), linewidth=2)
plot(ema_t, "Trend EMA", color.new(color.blue, 0), linewidth=2)
plot(ema_filt, "Filter EMA", color.new(color.purple, 0), linewidth=3)
// Entry signals
plotshape(long_entry, "Long Signal", shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.normal)
plotshape(short_entry, "Short Signal", shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.normal)
// Position levels
plot(strategy.position_size != 0 ? entry_price : na, "Entry", color.new(color.white, 0), linewidth=2, style=plot.style_linebr)
plot(strategy.position_size != 0 ? stop_loss : na, "Stop Loss", color.new(color.red, 0), linewidth=2, style=plot.style_linebr)
plot(strategy.position_size != 0 ? take_profit : na, "Take Profit", color.new(color.green, 0), linewidth=2, style=plot.style_linebr)
plot(strategy.position_size != 0 and trailing_activated ? trail_stop : na, "Trailing Stop", color.new(color.orange, 0), linewidth=2, style=plot.style_linebr)
// Background color for sessions
bgcolor(in_london ? color.new(color.blue, 95) : na, title="London Session")
bgcolor(in_ny ? color.new(color.green, 95) : na, title="NY Session")
bgcolor(in_tokyo ? color.new(color.red, 95) : na, title="Tokyo Session")
// ═══════════════════════════════════════════════════════════════════════════
// INFORMATION PANEL
// ═══════════════════════════════════════════════════════════════════════════
var table info_panel = table.new(position.top_right, 2, 10, bgcolor=color.new(color.black, 80), border_color=color.white, border_width=1)
if barstate.islast
// Headers
table.cell(info_panel, 0, 0, "METRIC", text_color=color.white, bgcolor=color.new(color.blue, 50))
table.cell(info_panel, 1, 0, "VALUE", text_color=color.white, bgcolor=color.new(color.blue, 50))
// Long Score
table.cell(info_panel, 0, 1, "Long Score", text_color=color.white)
table.cell(info_panel, 1, 1, str.tostring(long_score) + "/10", text_color=long_score >= min_confluence ? color.green : color.white)
// Short Score
table.cell(info_panel, 0, 2, "Short Score", text_color=color.white)
table.cell(info_panel, 1, 2, str.tostring(short_score) + "/10", text_color=short_score >= min_confluence ? color.red : color.white)
// RSI
table.cell(info_panel, 0, 3, "RSI", text_color=color.white)
table.cell(info_panel, 1, 3, str.tostring(math.round(rsi_smooth, 1)), text_color=rsi_smooth > rsi_ob ? color.red : rsi_smooth < rsi_os ? color.green : color.white)
// MACD
table.cell(info_panel, 0, 4, "MACD", text_color=color.white)
table.cell(info_panel, 1, 4, macd_momentum > 0 ? "Bullish" : "Bearish", text_color=macd_momentum > 0 ? color.green : color.red)
// Volume
table.cell(info_panel, 0, 5, "Volume", text_color=color.white)
table.cell(info_panel, 1, 5, str.tostring(math.round(volume_ratio, 1)) + "x", text_color=high_volume ? color.green : color.white)
// Structure
table.cell(info_panel, 0, 6, "Structure", text_color=color.white)
table.cell(info_panel, 1, 6, bullish_structure ? "Bullish" : bearish_structure ? "Bearish" : "Neutral", text_color=bullish_structure ? color.green : bearish_structure ? color.red : color.white)
// Position
table.cell(info_panel, 0, 7, "Position", text_color=color.white)
position_text = strategy.position_size > 0 ? "LONG" : strategy.position_size < 0 ? "SHORT" : "NONE"
table.cell(info_panel, 1, 7, position_text, text_color=strategy.position_size > 0 ? color.green : strategy.position_size < 0 ? color.red : color.white)
// P&L
if strategy.position_size != 0
current_pnl = strategy.position_size > 0 ? ((close - entry_price) / entry_price) * 100 : ((entry_price - close) / entry_price) * 100
table.cell(info_panel, 0, 8, "P&L", text_color=color.white)
table.cell(info_panel, 1, 8, str.tostring(math.round(current_pnl, 2)) + "%", text_color=current_pnl > 0 ? color.green : color.red)
// Mode
table.cell(info_panel, 0, 9, "Mode", text_color=color.white)
table.cell(info_panel, 1, 9, perf_mode, text_color=color.yellow)
// ═══════════════════════════════════════════════════════════════════════════
// ALERTS
// ═══════════════════════════════════════════════════════════════════════════
// Additional alert conditions
alertcondition(long_score >= min_confluence - 1 and long_score < min_confluence, "Long Setup Forming", "Long setup forming - Score: {{plot_0}}/10")
alertcondition(short_score >= min_confluence - 1 and short_score < min_confluence, "Short Setup Forming", "Short setup forming - Score: {{plot_1}}/10")
alertcondition(trailing_activated, "Trailing Stop Activated", "Trailing stop activated")
alertcondition(strategy.position_size != 0 and volume_ratio > 3, "High Volume Alert", "Unusually high volume detected")