Bitcoin - MA Strategi Crossover

Penulis:ChaoZhang, Tanggal: 2023-12-04 13:55:45
Tag:

img

Gambaran umum

Strategi ini adalah strategi perdagangan yang dirancang berdasarkan prinsip crossover dari garis rata-rata bergerak Bitcoin. Strategi ini menggunakan crossover dari garis rata-rata bergerak cepat dan garis rata-rata bergerak lambat sebagai sinyal beli dan jual. Ketika garis rata-rata bergerak cepat melintasi di atas garis rata-rata bergerak lambat, itu dianggap sebagai salib emas dan pergi panjang; ketika garis rata-rata bergerak cepat melintasi di bawah garis rata-rata bergerak lambat, itu dianggap sebagai salib kematian dan pergi pendek. Pada saat yang sama, strategi ini juga menggabungkan indikator RSI untuk menghindari masuk yang sembrono.

Prinsip Strategi

Strategi ini terutama didasarkan pada dua indikator:

  1. Moving Average (MA): Menghitung harga penutupan rata-rata selama periode tertentu untuk menentukan tren harga dan sinyal pembalikan.

  2. Relative Strength Index (RSI): Menghitung kecepatan kenaikan dan penurunan harga selama periode tertentu untuk menilai area overbought dan oversold.

Secara khusus, strategi ini menggunakan MA yang lebih pendek sebagai garis cepat dan MA yang lebih panjang sebagai garis lambat. Ketika garis cepat melintasi di atas garis lambat, ini menunjukkan bahwa kenaikan harga jangka pendek meningkat dan sinyal beli dihasilkan; ketika garis cepat melintasi di bawah garis lambat, ini menunjukkan bahwa penurunan harga jangka pendek meningkat dan sinyal jual dihasilkan.

Pada saat yang sama, strategi ini juga menetapkan ambang untuk RSI, menghasilkan sinyal beli hanya ketika RSI di atas 50 dan sinyal jual hanya ketika RSI di bawah 50, menghindari masuk sembrono ketika harga turun naik dengan keras.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Prinsipnya sederhana dan mudah dimengerti dan diterapkan.
  2. Sinyal perdagangan yang dapat diandalkan menghindari masuk yang tidak rasional.
  3. Lebih sedikit parameter dan mudah dioptimalkan.
  4. Teknik rata-rata bergerak yang matang dengan aplikasi luas.
  5. Indikator RSI dapat secara efektif mengidentifikasi fenomena overbought dan oversold.

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Strategi yang mengikuti tren cenderung mengalami kerugian besar ketika harga terbalik.
  2. Rata-rata bergerak tertinggal dan gagal menangkap pembalikan harga dengan cepat.
  3. Pilihan parameter yang salah dapat menyebabkan kualitas sinyal perdagangan memburuk.
  4. Strategi hanya mempertimbangkan indikator teknis tanpa faktor fundamental.

Untuk mengurangi risiko, dianjurkan untuk mengoptimalkan parameter periode rata-rata bergerak, menyesuaikan posisi stop loss, dan secara tepat mengurangi ukuran posisi.

Arahan Optimasi

Arah optimasi utama untuk strategi ini meliputi:

  1. Mengoptimalkan parameter periode rata-rata bergerak untuk menemukan kombinasi parameter yang optimal, melalui pencarian inkremental, algoritma genetik, dll.

  2. Meningkatkan indikator teknis lainnya untuk penyaringan, seperti KDJ, MACD, dll untuk meningkatkan kualitas sinyal perdagangan.

  3. Memantau fluktuasi harga dan menyesuaikan posisi dan stop loss sesuai.

  4. Masukkan volume perdagangan untuk menghindari breakout palsu, hanya mengeluarkan sinyal ketika volume perdagangan berkembang.

  5. Mengembangkan mekanisme penyesuaian parameter sendiri, memungkinkan strategi untuk menyesuaikan nilai parameter secara otomatis berdasarkan lingkungan pasar yang berbeda.

Kesimpulan

Singkatnya, ini adalah strategi yang mengikuti tren yang khas. Berdasarkan prinsip crossover rata-rata bergerak, logika perdagangan sederhana dan jelas, mudah dimengerti dan diimplementasikan. Menggabungkan indikator RSI dapat menghindari perdagangan irasional. Strategi membawa risiko dan imbalan, cocok untuk investor dengan beberapa pengalaman perdagangan kuantitatif, tetapi risiko kerugian potensial perlu dijaga. Jika pengembang dapat menambahkan lebih banyak filter, mengoptimalkan adaptivitas parameter, itu dapat lebih meningkatkan profitabilitas strategi yang stabil.


/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Trading Strategy Warning - Past performance may not equal future performance
//Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown.
//Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended
//Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future
strategy("Bitcoin - MA Crossover Strategy", overlay=true)

// User Input
usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false)
sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false)
sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false)
rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false)

// Create Indicator's
shortSMA = sma(close, sma_fast)
longSMA = sma(close, sma_slow)
rsi = rsi(close, rsi_valu)
strategy.initial_capital = 50000
// Units to buy
amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit)
units = floor(amount / close)

// Specify entry conditions
longEntry = crossover(shortSMA, longSMA)
shortEntry = crossunder(shortSMA, longSMA)

// Specify exit conditions
longExit = crossunder(shortSMA, longSMA)
shortExit = crossover(shortSMA, longSMA)

// Execute long trade
if (longEntry)
    strategy.entry("long", strategy.long, units, when = rsi > 50)

// Exit long trade
if(longExit and strategy.position_size > 0)    
    strategy.order("exit long", strategy.short, abs(strategy.position_size))

// Execute short trade
if (shortEntry)
    strategy.entry("short", strategy.short, units, when = rsi < 50)
    
// Exit short trade
if(shortExit and strategy.position_size < 0)    
    strategy.order("exit short", strategy.long, abs(strategy.position_size))

// Plot Moving Average's to chart
plot(shortSMA)
plot(longSMA, color=color.black)

Lebih banyak