Ini adalah strategi perdagangan beradaptasi sendiri berdasarkan isyarat silang dua garis rata. Strategi ini menggunakan isyarat perdagangan yang dihasilkan oleh purata bergerak sederhana (SMA) 14 dan 28 kitaran, dan menggabungkan mekanisme berhenti dan berhenti yang boleh disesuaikan, untuk mencapai pengurusan imbangan risiko dan keuntungan. Strategi ini menggunakan kaedah pengurusan dana tetap, dengan modal awal 2000 dan 200 untuk setiap perdagangan.
Logik teras strategi ini adalah berdasarkan hubungan silang antara purata bergerak sederhana dari dua tempoh yang berbeza. Apabila purata jangka pendek (peringkat 14) melintasi rata-rata jangka panjang (peringkat 28) melintasi, ia akan menghasilkan isyarat banyak; apabila purata jangka pendek melintasi rata-rata jangka panjang (peringkat 28) melintasi, ia akan menghasilkan isyarat kosong.
Ini adalah strategi perdagangan yang jelas dan logik. Ia menyediakan isyarat perdagangan melalui persilangan dua garis sejajar, dengan mekanisme henti rugi yang disesuaikan, menangkap peluang perdagangan dan mengawal risiko. Walaupun ada ruang untuk pengoptimuman strategi, reka bentuk keseluruhan sesuai dengan prinsip asas perdagangan kuantitatif. Dengan arah pengoptimuman yang disarankan, kestabilan dan keuntungan strategi dijangka akan meningkat lagi.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('My Custom Strategy', overlay = true)
// Parámetros de las SMAs (Medias Móviles Simples)
sma14 = ta.sma(close, 14)
sma28 = ta.sma(close, 28)
// Stop Loss y Take Profit configurables
stop_loss_percent = input.float(2, title="Stop Loss %", minval=0.1, step=0.1)
take_profit_percent = input.float(4, title="Take Profit %", minval=0.1, step=0.1)
// Cálculo de stop loss y take profit
stop_loss = close * (1 - stop_loss_percent / 100)
take_profit = close * (1 + take_profit_percent / 100)
// Condiciones de entrada para compra (long)
longCondition = ta.crossover(sma14, sma28)
if (longCondition)
strategy.entry('Long', strategy.long, stop=stop_loss, limit=take_profit)
plotshape(series=longCondition, color=color.new(color.blue, 0), style=shape.labelup, location=location.belowbar, text="BUY")
// Condiciones de entrada para venta (short)
shortCondition = ta.crossunder(sma14, sma28)
if (shortCondition)
strategy.entry('Short', strategy.short, stop=stop_loss, limit=take_profit)
plotshape(series=shortCondition, color=color.new(color.red, 0), style=shape.labeldown, location=location.abovebar, text="SELL")
// Visualización de las SMAs en el gráfico
plot(sma14, color=color.blue, title="SMA 14")
plot(sma28, color=color.red, title="SMA 28")