Trend Sistem SMA Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-02-23 12:29:51
Tag:

img

Gambaran umum

Strategi ini disebut SMA System Trend Following Strategy. Ide utamanya adalah untuk membangun sinyal perdagangan berdasarkan garis SMA dengan panjang parameter yang berbeda dan memasuki pasar pada titik putus, dengan mekanisme stop loss untuk mengendalikan risiko.

Prinsip Strategi

Strategi ini menggunakan dua garis SMA, SMA1 dan SMA2. Panjang SMA1 adalah 1 dan panjang SMA2 adalah 3. Dengan menghitung dua garis SMA ini, ketika SMA1 melintasi SMA2, sinyal beli dihasilkan. Ketika SMA1 melintasi di bawah SMA2, sinyal jual dihasilkan. Ini bertujuan untuk menangkap tren harga.

Secara khusus, strategi menilai hubungan silang antara garis SMA melalui fungsi ta.crossover dan ta.crossunder, menghasilkan variabel boolean longCondition dan shortCondition. Ketika longCondition benar, sinyal beli dihasilkan. Ketika shortCondition benar, sinyal jual dihasilkan. Strategi akan memasuki pasar pada titik sinyal dan memperbarui variabel profitAccumulated dan lastTradeProfit untuk melacak keuntungan terkumpul.

Untuk pengendalian risiko, strategi juga menetapkan mekanisme stop loss berdasarkan titik tetap. Jika harga mencapai titik stop loss yang ditetapkan dari titik masuk, itu akan memicu penutupan pesanan stop loss.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah bahwa ia memanfaatkan kemampuan pelacakan tren dari garis SMA untuk secara efektif menangkap perubahan tren harga. Dibandingkan dengan strategi garis tunggal, strategi garis ganda dapat menggunakan hubungan silang antara garis untuk menentukan arah tren dan dengan demikian menghasilkan sinyal perdagangan. Selain itu, mekanisme stop loss dapat secara efektif mengendalikan kerugian tunggal.

Analisis Risiko

Risiko utama dari strategi ini adalah bahwa strategi rata-rata bergerak cenderung menghasilkan sinyal palsu. Ketika harga berosilasi, garis SMA dapat sering melintasi, menghasilkan sinyal perdagangan yang tidak perlu. Pada titik ini, kerugian besar dapat terjadi tanpa stop loss yang efektif.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Sesuaikan parameter SMA untuk menemukan kombinasi terbaik dari panjang rata-rata bergerak melalui backtesting.

  2. Meningkatkan kondisi penyaringan dan menetapkan kondisi terobosan harga di dekat titik persimpangan rata-rata bergerak untuk menghindari sinyal palsu.

  3. Berbagai jenis metode stop loss dapat diuji, seperti stop loss mobile, pending order stop loss, dll.

  4. Tambahkan kontrol Posisi Ukuran untuk mengoptimalkan efisiensi pemanfaatan modal.

Kesimpulan

Secara keseluruhan, ini adalah strategi trend following yang khas. Ini menggunakan hubungan terobosan antara garis SMA untuk menentukan arah tren harga dan masuk pada titik balik tren. Pada saat yang sama, strategi ini memiliki fungsi stop loss tetap untuk mengendalikan risiko. Strategi ini sederhana, mudah dimengerti, tetapi masih membutuhkan pengujian dan pengoptimalan yang mendalam sebelum menghasilkan keuntungan yang stabil dalam perdagangan nyata.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © cesarpieres72

//@version=5
strategy("Estrategia SMA y Ganancias Acumuladas con Stop Loss", shorttitle="SMA_Ganancias", overlay=true)

// Definir las variables de las medias móviles
sma1_length = input(1, title="SMA 1 Longitud")
sma2_length = input(3, title="SMA 2 Longitud")

// Calcular las medias móviles
sma1 = ta.sma(close, sma1_length)
sma2 = ta.sma(close, sma2_length)

// Condiciones para las señales de compra y venta
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

// Acumular las ganancias
var float profitAccumulated = 0.0
var float lastTradeProfit = na

if (longCondition)
    strategy.entry("Buy", strategy.long)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

// Mostrar las señales en el gráfico
plot(sma1, color=color.blue, title="SMA 1")
plot(sma2, color=color.red, title="SMA 2")

// Añadir stop loss
stopLossPips = input(5000, title="Stop Loss (en pips)")
stopLossPrice = strategy.position_avg_price * (1 - stopLossPips * syminfo.mintick)
strategy.exit("SL", "Buy", stop=stopLossPrice)


Lebih banyak