
Strategi ini ialah sistem perdagangan mengikut arah aliran yang menggabungkan isyarat persilangan purata bergerak dengan pengurusan risiko dinamik. Ia menggunakan purata bergerak eksponen (EMA) yang pantas dan perlahan untuk mengenal pasti arah aliran pasaran dan menggabungkannya dengan penunjuk Average True Range (ATR) untuk mengoptimumkan pemasaan kemasukan. Pada masa yang sama, strategi ini menyepadukan mekanisme perlindungan tiga kali ganda: peratusan henti kerugian, sasaran keuntungan dan hentian kerugian tertinggal.
Logik teras strategi adalah berdasarkan elemen utama berikut:
Ini ialah strategi mengikut arah aliran yang direka dengan baik dan jelas secara logik. Dengan menangkap arah aliran melalui pindah silang purata bergerak, menggunakan ATR untuk mengawal risiko, dan menyelaraskan dengan pelbagai mekanisme henti rugi, sistem perdagangan yang lengkap terbentuk. Kelebihan utama strategi adalah kawalan risiko yang komprehensif dan kebolehsesuaian yang tinggi, tetapi dalam perdagangan sebenar, anda perlu memberi perhatian kepada masalah isyarat palsu dan kos transaksi. Melalui arahan pengoptimuman yang dicadangkan, masih terdapat ruang untuk penambahbaikan strategi selanjutnya.
/*backtest
start: 2024-12-29 00:00:00
end: 2025-01-05 00:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jesusperezguitarra89
//@version=6
strategy("High Profit Buy/Sell Signals", overlay=true)
// Parámetros ajustables
fastLength = input.int(5, title="Fast EMA Length")
slowLength = input.int(20, title="Slow EMA Length")
atrLength = input.int(10, title="ATR Length")
atrMultiplier = input.float(2.5, title="ATR Multiplier")
stopLossPercent = input.float(1.0, title="Stop Loss %")
takeProfitPercent = input.float(5.0, title="Take Profit %")
trailingStop = input.float(2.0, title="Trailing Stop %")
// Cálculo de EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Cálculo del ATR
atr = ta.atr(atrLength)
// Señales de compra y venta
longCondition = ta.crossover(fastEMA, slowEMA) and close > slowEMA + atrMultiplier * atr
shortCondition = ta.crossunder(fastEMA, slowEMA) and close < slowEMA - atrMultiplier * atr
// Dibujar señales en el gráfico
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Estrategia de backtesting para marcos de tiempo en minutos
if longCondition
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", from_entry="Buy", limit=close * (1 + takeProfitPercent / 100), stop=close * (1 - stopLossPercent / 100), trail_points=atr * trailingStop)
if shortCondition
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", from_entry="Sell", limit=close * (1 - takeProfitPercent / 100), stop=close * (1 + stopLossPercent / 100), trail_points=atr * trailingStop)
// Mostrar EMAs
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")