Strategi ini disebut
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.
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.
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.
Strategi dapat dioptimalkan dalam aspek berikut:
Sesuaikan parameter SMA untuk menemukan kombinasi terbaik dari panjang rata-rata bergerak melalui backtesting.
Meningkatkan kondisi penyaringan dan menetapkan kondisi terobosan harga di dekat titik persimpangan rata-rata bergerak untuk menghindari sinyal palsu.
Berbagai jenis metode stop loss dapat diuji, seperti stop loss mobile, pending order stop loss, dll.
Tambahkan kontrol Posisi Ukuran untuk mengoptimalkan efisiensi pemanfaatan modal.
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)