
この戦略は,指数移動平均 ((EMA) に基づく自己適応的取引システムであり,AIの最適化方法によってパラメータを動的に調整し,取引パフォーマンスの継続的な改善を実現する.この戦略は,取引誘発条件として高速と遅いEMAの交差信号を統合し,リスクと利益の最適なバランスを実現するために,スマートな止損と停止管理機構を備えています.
戦略の核心は,2つの異なる周期の指数移動平均 ((EMA) をベースとする.システムは,5周期と10周期を初期パラメータ設定として採用し,高速EMAと遅いEMAの交差形状を観察することによって取引信号を生成する.快線がスローラインを上に向かって渡るときは買取信号を触発し,高速線がスローラインを下に向かって渡るときは売り信号を触発する.システムの特徴は,自適性最適化メカニズムにある - 取引表を継続的に監視し,動的に止損と止レベルを調整し,システムが常に最適なパラメータの組み合わせで動作することを保証する.
これは,技術分析の伝統的知性と現代的自適性最適化技術の融合した取引システムである.EMAクロスを通じて基礎取引信号を提供し,ダイナミックな止損停止管理と連携し,取引戦略のスマートな動作を実現している.システムの自適性特性は,継続的な最適化の能力を有するものだが,使用する際には,市場環境の変化とリスク管理の重要性を注意する必要がある.実況取引の前に十分な裏付けとパラメータ感度分析を行うことが推奨されている.
/*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))