Strategi ini dinamakan
Strategi ini menggunakan dua garis SMA, SMA1 dan SMA2. Panjang SMA1 adalah 1 dan panjang SMA2 adalah 3. Dengan mengira dua garis SMA ini, apabila SMA1 melintasi di atas SMA2, isyarat beli dihasilkan. Apabila SMA1 melintasi di bawah SMA2, isyarat jual dihasilkan. Ini bertujuan untuk menangkap trend harga.
Secara khusus, strategi menilai hubungan silang antara garis SMA melalui fungsi ta.crossover dan ta.crossunder, menghasilkan pembolehubah longCondition dan shortCondition boolean. Apabila longCondition benar, isyarat beli dihasilkan. Apabila shortCondition benar, isyarat jual dihasilkan. Strategi akan memasuki pasaran pada titik isyarat dan mengemas kini profitAccumulated dan lastTradeProfit pembolehubah untuk mengesan keuntungan terkumpul.
Untuk kawalan risiko, strategi juga menetapkan mekanisme stop loss berdasarkan titik tetap. Jika harga mencapai titik stop loss yang ditetapkan dari titik masuk, ia akan mencetuskan penutupan pesanan stop loss.
Kelebihan terbesar strategi ini adalah bahawa ia menggunakan keupayaan penjejakan trend garis SMA untuk menangkap perubahan dalam trend harga dengan berkesan. Berbanding dengan strategi garis tunggal, strategi garis ganda dapat menggunakan hubungan silang antara garis untuk menentukan arah trend dan dengan itu menghasilkan isyarat perdagangan. Di samping itu, mekanisme stop loss dapat mengawal kerugian tunggal dengan berkesan.
Risiko utama strategi ini adalah bahawa strategi purata bergerak cenderung menghasilkan isyarat palsu. Apabila harga berayun, garis SMA mungkin sering melintasi, mengakibatkan isyarat perdagangan yang tidak perlu. Pada ketika ini, kerugian besar mungkin berlaku tanpa kerugian berhenti yang berkesan.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Sesuaikan parameter SMA untuk mencari kombinasi terbaik panjang purata bergerak melalui backtesting.
Meningkatkan keadaan penapisan dan menetapkan keadaan kejayaan harga berhampiran titik persilangan purata bergerak untuk mengelakkan isyarat palsu.
Pelbagai jenis kaedah stop loss boleh diuji, seperti stop loss mudah alih, pending order stop loss, dll.
Tambah kawalan saiz kedudukan untuk mengoptimumkan kecekapan penggunaan modal.
Secara keseluruhan, ini adalah strategi trend berikut yang tipikal. Ia menggunakan hubungan terobosan antara garis SMA untuk menentukan arah trend harga dan memasuki titik perubahan trend. Pada masa yang sama, strategi ini mempunyai fungsi stop loss tetap untuk mengawal risiko. Strategi ini mudah, mudah difahami, tetapi masih memerlukan ujian dan pengoptimuman mendalam sebelum membuat keuntungan yang stabil dalam perdagangan sebenar.
/*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)