
La estrategia es un sistema de negociación auto-adaptativo basado en el índice de promedios móviles (EMA) que ajusta dinámicamente los parámetros para lograr una mejora continua en el rendimiento de la negociación a través de métodos de optimización de la inteligencia artificial. La estrategia integra señales cruzadas de EMA rápidas y lentas como condiciones de activación de la negociación y está equipada con un mecanismo de gestión inteligente de stop loss y stop loss para lograr el equilibrio óptimo entre el riesgo y los beneficios.
El núcleo de la estrategia está basado en dos promedios móviles indexados de diferentes períodos (EMA). El sistema utiliza 5 y 10 períodos como configuración de parámetros iniciales, generando señales de negociación al observar la forma cruzada entre el EMA rápido y el EMA lento. Se activa una señal de compra cuando la línea rápida cruza la línea lenta hacia arriba y una señal de venta cuando la línea rápida cruza la línea lenta hacia abajo.
Se trata de un sistema de negociación que combina la sabiduría tradicional del análisis técnico con la tecnología moderna de optimización de la adaptación. A través del cruce de EMA, se proporcionan señales de negociación básicas, junto con la gestión dinámica de stop-loss, que permite el funcionamiento inteligente de las estrategias de negociación. La característica de adaptación del sistema lo hace capaz de optimización continua, pero se debe tener en cuenta la importancia de los cambios en el entorno del mercado y el control del riesgo.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Evolutivna Strategija - AI Optimizacija", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Varijable za praćenje performansi
var float bestProfit = na
var float bestStopLoss = na
var float bestTakeProfit = na
// Početni parametri (fiksne vrednosti)
ema_fast_final = input.int(5, "Početni EMA Fast", minval=5, maxval=50) // Mora biti simple int
ema_slow_final = input.int(10, "Početni EMA Slow", minval=10, maxval=100) // Mora biti simple int
// Kreiranje EMA koristeći fiksne vrednosti
ema_fast_adaptive = ta.ema(close, ema_fast_final)
ema_slow_adaptive = ta.ema(close, ema_slow_final)
// Signali kupovine i prodaje
buy_signal = ta.crossover(ema_fast_adaptive, ema_slow_adaptive)
sell_signal = ta.crossunder(ema_fast_adaptive, ema_slow_adaptive)
// Stop Loss i Take Profit parametri
sl_input = input.float(1.0, "Početni Stop Loss (%)", step=0.1)
tp_input = input.float(1.0, "Početni Take Profit (%)", step=0.1)
// Dinamično prilagođavanje parametara SL i TP
if (na(bestProfit) or strategy.netprofit > bestProfit)
bestProfit := strategy.netprofit
bestStopLoss := sl_input
bestTakeProfit := tp_input
// Otvaranje pozicija
if (buy_signal)
strategy.entry("BUY", strategy.long)
strategy.exit("TP/SL", "BUY", stop=close * (1 - bestStopLoss / 100), limit=close * (1 + bestTakeProfit / 100))
if (sell_signal)
strategy.entry("SELL", strategy.short)
strategy.exit("TP/SL", "SELL", stop=close * (1 + bestStopLoss / 100), limit=close * (1 - bestTakeProfit / 100))
// Vizualizacija
plot(ema_fast_adaptive, color=color.green, title="EMA Fast (Adaptive)")
plot(ema_slow_adaptive, color=color.red, title="EMA Slow (Adaptive)")
// Prikaz najboljih rezultata
var label result_label = na
if (na(result_label))
result_label := label.new(x=bar_index, y=high, text="", style=label.style_label_down, color=color.blue)
label.set_xy(result_label, bar_index, high)
label.set_text(result_label, "Best rezult: " + str.tostring(bestProfit, "#.##") +
"\nSL: " + str.tostring(bestStopLoss) + "%" +
"\nTP: " + str.tostring(bestTakeProfit) + "%" +
"\nEMA Fast: " + str.tostring(ema_fast_final) +
"\nEMA Slow: " + str.tostring(ema_slow_final))