
La estrategia se basa en la tecnología de gráficos Heikin Ashi para filtrar el ruido del mercado, combinado con un sistema de seguimiento de stop loss de ajuste dinámico de la media real de la amplitud de la ATR, para generar señales de negociación mediante el cruce de la media móvil de los índices. La estrategia solo ejecuta operaciones de múltiples cabezas y mejora la estabilidad de la señal y la gestión de las operaciones mediante componentes ajustados a la tasa de volatilidad. La estrategia es especialmente adecuada para mercados de alta volatilidad como las criptomonedas, pero también para los operadores que buscan un seguimiento de tendencias sistematizadas.
El principio central de la estrategia se basa en la interacción de varios componentes tecnológicos clave:
Haykanush quiere filtrarLas estrategias ofrecen tres diferentes modelos de cálculo de Heiken Ashe: (Calculación manual, función integrada de TradingView y diagrama regular) para mitigar el ruido a corto plazo del mercado y resaltar la dirección de las tendencias potenciales. El modelo de cálculo manual ofrece los resultados más transparentes y confiables, mientras que la función integrada utiliza los pilares históricos confirmados para evitar el replanteo.
ATR para el seguimiento de los mecanismos de suspensiónLa amplitud media real (ATR) es una medida dinámica de la volatilidad del mercado, combinada con los parámetros definidos por el usuario (valores clave y ATR) para calibrar la sensibilidad de seguimiento de los estancamientos, lo que permite adaptarse a diferentes entornos de volatilidad del mercado. Este mecanismo está diseñado para proporcionar un punto de salida dinámico, proteger los fondos y bloquear los beneficios durante el desarrollo de la tendencia.
Se genera una señal de cruce EMA: Las señales de entrada y salida se derivan de la interacción entre el precio de Heiken Ashi y el promedio móvil del índice (EMA). Los eventos de cruce entre estos dos componentes se utilizan para identificar objetivamente la transformación de la dinámica y emitir señales de entrada o salida potencialmente múltiples.
Implementación estricta de la detención de pérdidasLa estrategia incluye una función de stop loss opcional, que se puede configurar como un porcentaje del precio de entrada o una desviación de puntos fijos. Es importante destacar que el stop loss se ejecuta en función del precio real del mercado, en lugar de los valores de Heikhan sintetizados, para garantizar que la gestión del riesgo se base en la liquidez real del mercado y en los niveles de precios.
Protocolo de retroalimentaciónLa estrategia está configurada para la retroalimentación realista, utiliza fill_orders_on_standard_ohlc=true para simular la ejecución de órdenes en el precio estándar de OHLC, y contiene un filtro de fecha configurable para definir un período histórico específico para la evaluación de rendimiento.
Visualización de datosEl guión proporciona señales de compra/venta, la superposición de gráficos de ATR para el seguimiento de los niveles de stop loss y stop loss, y tablas de información que muestran los parámetros de la estrategia en tiempo real, el estado de la posición actual, la dirección de la tendencia y los niveles de precios clave.
Capacidad de filtración de ruidoLa tecnología de Heiken Achieve filtra eficazmente el ruido del mercado a corto plazo, ayudando a los operadores a concentrarse en las tendencias más importantes del mercado y reduciendo la interferencia de las falsas señales.
Gestión de riesgos dinámicosEl mecanismo de seguimiento de pérdidas basado en ATR puede ajustarse automáticamente a la volatilidad del mercado, proporcionando un alto más flexible cuando la volatilidad aumenta, fortaleciendo la protección cuando la volatilidad disminuye y optimizando la relación entre el riesgo y el rendimiento.
Señales de entrada y salida objetivasLas señales generadas a través de la EMA eliminan el juicio subjetivo, hacen que las decisiones de negociación sean más sistemáticas y repetibles, y ayudan a mantener la disciplina emocional.
Ejecución de precios reales de mercadoLa estrategia consiste en usar el precio real del mercado (en lugar del precio de la síntesis de Heiken-Ash) para ejecutar operaciones y paradas, lo que proporciona resultados de retroalimentación más precisos y más cercanos al entorno de las operaciones reales.
Comentarios visuales y monitoreoLas tablas de información integradas y los indicadores visuales proporcionan el estado de la estrategia en tiempo real y los puntos de datos clave para facilitar la evaluación y el monitoreo rápidos y mejorar la capacidad de toma de decisiones.
Configuración de parámetros flexibleLos parámetros clave ajustables (valor de sensibilidad, ciclo ATR, método Heiken-Ash y configuración de stop loss) permiten que las estrategias se adapten a diferentes entornos de mercado y preferencias de riesgo de los operadores.
Diseño de estrategias de varios jefesEl objetivo de la estrategia es capturar las tendencias al alza, evitando el riesgo potencial de estiramiento de capitales en blanco, especialmente para mercados con un largo período de pesimismo, como algunas criptomonedas.
Riesgo de inversión de tendenciaComo estrategia de seguimiento de tendencias, el ATR no puede evitar completamente este tipo de pérdidas.
Trampas de optimización de parámetros: Los parámetros de optimización excesiva pueden conducir a la curva de ajuste, lo que hace que la estrategia tenga un buen rendimiento en los datos históricos pero un mal rendimiento en los mercados futuros. Se recomienda probar en varios mercados y marcos de tiempo para garantizar la estabilidad.
Riesgo de tiempo de entrada: Las señales de cruce de EMA pueden aparecer en etapas más tardías de la evolución de la tendencia, lo que hace que la posición de entrada no sea ideal. En mercados fuertes, esto puede conducir a compras en niveles altos.
Detener el riesgo de desencadenamientoEn un mercado de alta volatilidad, incluso si la tendencia general es positiva, los precios pueden tocar el nivel de stop loss por un corto período de tiempo, lo que lleva a una salida innecesaria. Se debe establecer con cuidado los parámetros de stop loss según las características del mercado.
Dependencia de un solo indicador técnico: La estrategia se basa principalmente en los indicadores ATR y EMA, sin tener en cuenta los factores fundamentales o otros indicadores técnicos, y puede perderse importantes puntos de inflexión en el mercado.
Desempeño de los mercados horizontales a largo plazoEn el mercado horizontal a largo plazo, la estrategia puede generar múltiples señales erróneas, lo que lleva a una acumulación de pequeñas pérdidas consecutivas. Se recomienda su uso cuando se confirma que el mercado está en un estado de tendencia.
Punto de deslizamiento y riesgo de ejecución: Aunque la estrategia tiene en cuenta los puntos de deslizamiento en la retroalimentación, los puntos de deslizamiento y los retrasos de ejecución en las operaciones reales pueden ser mayores que los valores establecidos, especialmente en mercados con poca liquidez.
Integración de análisis de múltiples marcos de tiempoConsidere la integración de señales de confirmación de tendencia en los marcos de tiempo más altos, y ejecute una operación solo cuando la tendencia de los marcos de tiempo más altos está en la misma dirección, lo que puede aumentar significativamente la ganancia y el riesgo-rendimiento.
Filtros de fluctuaciónAumentar los filtros basados en la volatilidad, suspender la negociación o ajustar el tamaño de la posición durante períodos de alta volatilidad puede reducir el riesgo de fluctuaciones extremas en el mercado.
Gestión de posiciones dinámicas: Realizar un ajuste dinámico del tamaño de la posición basado en la volatilidad y las condiciones del mercado, en lugar de una configuración porcentual fija, para optimizar la eficiencia del uso de los fondos en diferentes condiciones del mercado.
Confirmación de varios indicadoresLa integración de otros indicadores técnicos complementarios (como el índice RSI de relativa debilidad, el indicador aleatorio o MACD) como confirmación secundaria puede reducir la tasa de señales falsas y mejorar la calidad de las operaciones.
Mejoras en las estrategias de detención de pérdidasLa implementación de estrategias de stop loss más complejas, como el seguimiento de múltiplos de ATR o stop loss basados en niveles de soporte/resistencia, en lugar de simples porcentajes o puntos fijos, puede adaptarse mejor a la estructura del mercado.
La estrategia de salida se ha refinadoDesarrollo de mecanismos de partición de ganancias y salidas por lotes más sofisticados para bloquear parte de las ganancias y optimizar la curva de retorno general mientras se mantiene el umbral de la tendencia.
Identificación del sistema de mercado: agregar algoritmos de identificación de sistemas de mercado, ajustar automáticamente los parámetros de la estrategia para adaptarse a diferentes estados de mercado (trend, oscilación o reversión), mejorar la capacidad de adaptación de la estrategia.
Integración del aprendizaje automáticoExplorar técnicas de aprendizaje automático para optimizar la selección de parámetros o predecir los mejores puntos de entrada/salida, lo que puede mejorar aún más el rendimiento de las estrategias y reducir la intervención subjetiva.
La estrategia de comercio de tendencias de seguimiento de pérdidas de ATR de Heikhan es un sistema de seguimiento de tendencias diseñado para ser razonable y con control de riesgo, especialmente para mercados con mucha volatilidad. La estrategia proporciona un marco de comercio objetivo y sistematizado mediante la combinación de la capacidad de filtrado de ruido del gráfico de Heikhan, la gestión de riesgos dinámicos de ATR y la función de identificación de tendencias de EMA.
La principal ventaja de esta estrategia reside en su capacidad de gestión de riesgos adaptable y dinámica, que permite ajustar automáticamente los niveles de pérdidas en función de la volatilidad del mercado, proteger los fondos y bloquear las ganancias. Al mismo tiempo, su estricta implementación de pérdidas y su mecanismo de ejecución basado en precios reales del mercado aseguran la fiabilidad y la reproducibilidad de los resultados de la medición.
Sin embargo, como una estrategia de seguimiento de tendencias, puede enfrentarse a desafíos cuando el mercado se desplaza horizontalmente o se invierte rápidamente. Las mejoras como la integración de análisis de múltiples marcos de tiempo, el aumento de filtros de volatilidad, la optimización de la gestión de posiciones y la mejora de las estrategias de salida pueden mejorar aún más la solidez y el rendimiento de la estrategia.
Esta estrategia ofrece una base sólida para los comerciantes que desean construir una metodología de negociación sistematizada, que se puede personalizar y ampliar según las preferencias personales de riesgo y las características del mercado, con el potencial de lograr una estabilidad de los retornos ajustados al riesgo en una variedad de entornos de mercado.
/*backtest
start: 2024-08-18 00:00:00
end: 2025-08-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_OKX","currency":"DOGE_USDT","balance":5000}]
*/
//@version=6
strategy(title="Mutanabby_AI | ATR+ | ") // Ensures realistic execution
// 📊 INPUT PARAMETERS
//=============================================================================
a = input.int(1, title="🔧 Key Value (Sensitivity)", minval=1, maxval=10,
tooltip="Lower = More signals, Higher = Fewer signals")
c = input.int(10, title="📈 ATR Period", minval=1, maxval=500,
tooltip="Period for ATR calculation")
// 🕯️ HEIKIN ASHI METHOD SELECTION
//=============================================================================
ha_method = input.string("Manual Calculation", title="🕯️ Heikin Ashi Method",
options=["Manual Calculation", "ticker.heikinashi()", "Regular Candles"],
tooltip="Manual = Most reliable, ticker.heikinashi = Good, Regular = Standard OHLC")
// 🛡️ STOP LOSS SETTINGS
//=============================================================================
use_stop_loss = input.bool(false, title="🛡️ Enable Stop Loss",
tooltip="Enable stop loss at entry price level")
stop_loss_type = input.string("Percentage", title="📊 Stop Loss Type",
options=["Percentage", "Fixed Points"],
tooltip="Choose stop loss calculation method")
stop_loss_percent = input.float(2.0, title="📉 Stop Loss %", minval=0.1, maxval=50.0, step=0.1,
tooltip="Stop loss percentage below entry price")
stop_loss_points = input.float(10.0, title="📉 Stop Loss Points", minval=0.1, step=0.1, tooltip="Stop loss in price points below entry price")
// Date condition
date_condition = true
// 🎨 VISUAL SETTINGS
//=============================================================================
show_signals = input.bool(true, title="🎯 Show Buy/Sell Signals")
show_trailing_stop = input.bool(true, title="📈 Show ATR Trailing Stop")
show_stop_loss = input.bool(true, title="🛡️ Show Stop Loss Line")
show_bar_colors = input.bool(true, title="🎨 Color Bars")
show_position_info = input.bool(true, title="📊 Show Position Info")
// 🧮 HEIKIN ASHI CALCULATIONS
//=============================================================================
// METHOD 1: MANUAL HEIKIN ASHI CALCULATION (MOST RELIABLE)
//=============================================================================
// Manual HA calculation - most transparent and reliable
var float ha_open_manual = na
ha_close_manual = (open + high + low + close) / 4
ha_open_manual := na(ha_open_manual[1]) ? (open + close) / 2 : (ha_open_manual[1] + ha_close_manual[1]) / 2
ha_high_manual = math.max(high, math.max(ha_open_manual, ha_close_manual))
ha_low_manual = math.min(low, math.min(ha_open_manual, ha_close_manual))
// METHOD 2: TICKER.HEIKINASHI() (GOOD ALTERNATIVE)
//=============================================================================
// Get Heikin Ashi data via ticker.heikinashi() - non-repainting
ha_ticker = ticker.heikinashi(syminfo.tickerid)
[ha_open_ticker, ha_high_ticker, ha_low_ticker, ha_close_ticker] = request.security(ha_ticker, timeframe.period, [open[1], high[1], low[1], close[1]], lookahead=barmerge.lookahead_on) // Use confirmed bars to prevent repainting
// METHOD 3: REGULAR CANDLES
//=============================================================================
// Regular OHLC data
ha_open_regular = open
ha_high_regular = high
ha_low_regular = low
ha_close_regular = close
// SELECT METHOD BASED ON USER INPUT
//=============================================================================
src = ha_method == "Manual Calculation" ? ha_close_manual :
ha_method == "ticker.heikinashi()" ? ha_close_ticker : ha_close_regular
source_open = ha_method == "Manual Calculation" ? ha_open_manual :
ha_method == "ticker.heikinashi()" ? ha_open_ticker : ha_open_regular
source_high = ha_method == "Manual Calculation" ? ha_high_manual :
ha_method == "ticker.heikinashi()" ? ha_high_ticker : ha_high_regular
source_low = ha_method == "Manual Calculation" ? ha_low_manual :
ha_method == "ticker.heikinashi()" ? ha_low_ticker : ha_low_regular
// 📊 ATR TRAILING STOP CALCULATION
//=============================================================================
// Calculate True Range using selected method
tr1 = source_high - source_low
tr2 = math.abs(source_high - src[1])
tr3 = math.abs(source_low - src[1])
tr = math.max(tr1, math.max(tr2, tr3))
// ATR calculation
xATR = ta.sma(tr, c)
nLoss = a * xATR
// ATR Trailing Stop logic
var float xATRTrailingStop = na
xATRTrailingStop := if src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0)
math.max(nz(xATRTrailingStop[1]), src - nLoss)
else if src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0)
math.min(nz(xATRTrailingStop[1]), src + nLoss)
else if src > nz(xATRTrailingStop[1], 0)
src - nLoss
else
src + nLoss
// Position state tracking
var int pos = na
pos := if src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0)
1
else if src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0)
-1
else
nz(pos[1], 0)
// 🎯 SIGNAL GENERATION
//=============================================================================
// EMA for crossover detection
ema_val = ta.ema(src, 1)
// Crossover conditions
above = ta.crossover(ema_val, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema_val)
// Buy and sell signals
buy_signal = src > xATRTrailingStop and above
sell_signal = src < xATRTrailingStop and below
// Trend direction
is_uptrend = src > xATRTrailingStop
is_downtrend = src < xATRTrailingStop
// 🛡️ STOP LOSS CALCULATION
//=============================================================================
var float entry_price = na
var float stop_loss_level = na
// Calculate stop loss level
calculate_stop_loss(entry_price_val) =>
if stop_loss_type == "Percentage"
entry_price_val * (1 - stop_loss_percent / 100)
else
entry_price_val - stop_loss_points
// 📈 LONG ONLY STRATEGY LOGIC
//=============================================================================
var bool in_long_position = false
// Entry condition: Buy signal when not in position
long_entry = buy_signal and date_condition and not in_long_position
// Exit conditions - CRITICAL: Use real prices for stop loss, not HA prices
atr_exit = sell_signal and date_condition and in_long_position
stop_loss_hit = use_stop_loss and in_long_position and low <= stop_loss_level // Uses real low price
// Combined exit condition
long_exit = atr_exit or stop_loss_hit
// Execute trades - Orders execute at REAL market prices
if long_entry
strategy.entry("LONG", strategy.long, comment="🚀 LONG")
in_long_position := true
entry_price := close // REAL entry price, not HA price
stop_loss_level := use_stop_loss ? calculate_stop_loss(entry_price) : na
if long_exit
exit_reason = stop_loss_hit ? "🛡️ STOP LOSS" : "💰 ATR EXIT"
strategy.close("LONG", comment=exit_reason)
in_long_position := false
entry_price := na
stop_loss_level := na
// 🎨 VISUAL ELEMENTS
//=============================================================================
// Trailing stop line color
stop_color = pos == 1 ? color.green : pos == -1 ? color.red : color.blue
// Plot ATR Trailing Stop
plot(show_trailing_stop ? xATRTrailingStop : na,
color=stop_color,
linewidth=2,
title="ATR Trailing Stop")
// Plot Stop Loss Level
plot(show_stop_loss and use_stop_loss and in_long_position ? stop_loss_level : na,
color=color.new(color.red, 0),
linewidth=2,
style=plot.style_linebr,
title="Stop Loss Level")
// Plot buy/sell signals
plotshape(show_signals and buy_signal,
title="Buy Signal",
text="BUY",
style=shape.labelup,
location=location.belowbar,
color=color.new(color.green, 0),
textcolor=color.white,
size=size.small)
plotshape(show_signals and sell_signal,
title="Sell Signal",
text="SELL",
style=shape.labeldown,
location=location.abovebar,
color=color.new(color.red, 0),
textcolor=color.white,
size=size.small)
// Plot stop loss hit signal
plotshape(show_signals and stop_loss_hit,
title="Stop Loss Hit",
text="SL",
style=shape.labeldown,
location=location.abovebar,
color=color.new(color.orange, 0),
textcolor=color.white,
size=size.small)
// Bar coloring
barcolor(show_bar_colors ? (is_uptrend ? color.new(color.green, 70) :
is_downtrend ? color.new(color.red, 70) : na) : na)
// Position status background
bgcolor(show_position_info and strategy.position_size > 0 ? color.new(color.green, 95) : show_position_info and strategy.position_size == 0 ? color.new(color.gray, 98) : na, title="Position Status")
// Entry price line - shows REAL entry price
plot(show_position_info and strategy.position_size > 0 ? strategy.position_avg_price : na,
color=color.new(color.blue, 0),
linewidth=1,
style=plot.style_linebr,
title="Entry Price")
// 📊 INFORMATION TABLE
//=============================================================================
if show_position_info and barstate.islast
var table info_table = table.new(position.top_right, 3, 11,
bgcolor=color.white,
border_width=1,
border_color=color.gray,
frame_width=1,
frame_color=color.black)
// Table headers
table.cell(info_table, 0, 0, "Mutanabby_AI | Manual HA | ATR | SL", text_color=color.white, bgcolor=color.blue, text_size=size.small)
table.cell(info_table, 1, 0, "", text_color=color.white, bgcolor=color.blue)
table.cell(info_table, 2, 0, "", text_color=color.white, bgcolor=color.blue)
// Strategy info
table.cell(info_table, 0, 1, "HA Method:", text_color=color.rgb(10, 10, 10), text_size=size.small)
method_color = ha_method == "Manual Calculation" ? color.green :
ha_method == "ticker.heikinashi()" ? color.blue : color.gray
table.cell(info_table, 1, 1, ha_method, text_color=method_color, text_size=size.small)
table.cell(info_table, 0, 2, "Key Value:", text_color=color.rgb(10, 10, 10), text_size=size.small)
table.cell(info_table, 1, 2, str.tostring(a), text_color=color.blue, text_size=size.small)
table.cell(info_table, 0, 3, "ATR Period:", text_color=color.rgb(2, 2, 2), text_size=size.small)
table.cell(info_table, 1, 3, str.tostring(c), text_color=color.blue, text_size=size.small)
table.cell(info_table, 0, 4, "Stop Loss:", text_color=color.rgb(3, 3, 3), text_size=size.small)
table.cell(info_table, 1, 4, use_stop_loss ? "ON" : "OFF",
text_color=use_stop_loss ? color.green : color.gray, text_size=size.small)
table.cell(info_table, 0, 5, "Position:", text_color=color.rgb(3, 3, 3), text_size=size.small)
table.cell(info_table, 1, 5, strategy.position_size > 0 ? "LONG" : "NONE",
text_color=strategy.position_size > 0 ? color.green : color.gray, text_size=size.small)
table.cell(info_table, 0, 6, "Trend:", text_color=color.rgb(0, 0, 0), text_size=size.small)
table.cell(info_table, 1, 6, is_uptrend ? "UP" : "DOWN",
text_color=is_uptrend ? color.green : color.red, text_size=size.small)
table.cell(info_table, 0, 7, "Current Price:", text_color=color.black, text_size=size.small)
table.cell(info_table, 1, 7, str.tostring(close, "#.##"), text_color=color.black, text_size=size.small)
table.cell(info_table, 0, 8, "Trailing Stop:", text_color=color.black, text_size=size.small)
table.cell(info_table, 1, 8, str.tostring(xATRTrailingStop, "#.##"), text_color=color.blue, text_size=size.small)
// Show stop loss level if enabled and in position
if use_stop_loss and in_long_position
table.cell(info_table, 0, 9, "Stop Loss:", text_color=color.black, text_size=size.small)
table.cell(info_table, 1, 9, str.tostring(stop_loss_level, "#.##"), text_color=color.red, text_size=size.small)
else
table.cell(info_table, 0, 9, "Stop Loss:", text_color=color.black, text_size=size.small)
table.cell(info_table, 1, 9, "N/A", text_color=color.gray, text_size=size.small)
table.cell(info_table, 0, 10, "Last Signal:", text_color=color.black, text_size=size.small)
signal_text = buy_signal ? "BUY" : sell_signal ? "SELL" : stop_loss_hit ? "STOP LOSS" : "NONE"
signal_color = buy_signal ? color.green : sell_signal ? color.red : stop_loss_hit ? color.orange : color.gray
table.cell(info_table, 1, 10, signal_text, text_color=signal_color, text_size=size.small)
// 🚨 ALERTS
//=============================================================================
// Alert conditions
alertcondition(buy_signal, title="🚀 Mutanabby_AI | ATR+ LONG Entry",
message="Mutanabby_AI | ATR+ : BUY signal at {{close}}")
alertcondition(sell_signal, title="💰 Mutanabby_AI | ATR+ LONG Exit",
message="Mutanabby_AI | ATR+ : SELL signal at {{close}}")
alertcondition(stop_loss_hit, title="🛡️ Mutanabby_AI | ATR+ Stop Loss Hit",
message="Mutanabby_AI | ATR+ : STOP LOSS hit at {{close}}")
alertcondition(buy_signal or sell_signal or stop_loss_hit, title="🔔 Mutanabby_AI | ATR+ Any Signal",
message="Mutanabby_AI| ATR+ : {{ticker}} - {{close}} - Signal: {{strategy.position_size > 0 ? 'EXIT' : 'ENTRY'}}")
//=============================================================================
// 📝 STRATEGY NOTES:
//
// 🎯 OPTIMAL IMPLEMENTATION for realistic backtesting:
// 📈 Uses manual HA calculation for transparency and reliability
// 💰 Orders execute at REAL market prices (not synthetic HA prices)
// 🛡️ Stop loss uses real market prices for accurate risk management
// 🔧 Multiple HA methods available for comparison and validation
// ⚡ Added fill_orders_on_standard_ohlc=true for extra protection
//
// 🎯 METHOD COMPARISON:
// 🥇 Manual Calculation: Most reliable, transparent, no external dependencies
// 🥈 ticker.heikinashi(): Good alternative, uses confirmed bars to prevent repainting
// 🥉 Regular Candles: Standard OHLC for comparison purposes
//
// 💡 BEST PRACTICES IMPLEMENTED:
// ✅ Always run on regular candlestick charts (not native HA charts)
// ✅ Use confirmed/historical HA values to prevent repainting
// ✅ Execute all orders at real market prices
// ✅ Stop loss based on real prices, not synthetic HA prices
// ✅ Entry price tracking uses actual fill prices
// ✅ Transparent calculation methods for verification
//
// 🚨 AVOID:
// ❌ Running strategies directly on TradingView's native HA charts
// ❌ Using current bar HA values (causes repainting)
// ❌ Stop loss based on HA prices instead of real prices
//=============================================================================