Bitcoin - MA Crossover Strategi

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

img

Ringkasan

Strategi ini adalah strategi perdagangan trend berikut yang direka berdasarkan prinsip persilangan garis purata bergerak Bitcoin. Strategi ini menggunakan persilangan garis purata bergerak pantas dan garis purata bergerak perlahan sebagai isyarat beli dan jual. Apabila garis purata bergerak pantas melintasi di atas garis purata bergerak perlahan, ia dianggap sebagai salib emas dan pergi panjang; apabila garis purata bergerak pantas melintasi di bawah garis purata bergerak perlahan, ia dianggap sebagai salib kematian dan pergi pendek. Pada masa yang sama, strategi ini juga menggabungkan penunjuk RSI untuk mengelakkan kemasukan yang sembrono.

Prinsip Strategi

Strategi ini terutamanya berdasarkan dua penunjuk:

  1. Moving Average (MA): Mengira harga penutupan purata dalam tempoh tertentu untuk menentukan trend harga dan isyarat pembalikan.

  2. Indeks Kekuatan Relatif (RSI): Mengira kelajuan kenaikan dan penurunan harga dalam tempoh tertentu untuk menilai kawasan yang terlalu banyak dibeli dan terlalu banyak dijual.

Secara khusus, strategi ini menggunakan MA yang lebih pendek sebagai garisan pantas dan MA yang lebih lama sebagai garisan perlahan. Apabila garisan pantas melintasi di atas garisan perlahan, ia menunjukkan bahawa kenaikan harga jangka pendek semakin pesat dan isyarat beli dihasilkan; apabila garisan pantas melintasi di bawah garisan perlahan, ia menunjukkan bahawa penurunan harga jangka pendek semakin pesat dan isyarat jual dihasilkan.

Pada masa yang sama, strategi ini juga menetapkan ambang untuk RSI, menghasilkan isyarat beli hanya apabila RSI melebihi 50 dan isyarat jual hanya apabila RSI di bawah 50, mengelakkan kemasukan yang sembrono apabila harga turun naik dengan ganas.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Prinsipnya mudah dan mudah difahami dan dilaksanakan.
  2. Isyarat perdagangan yang boleh dipercayai mengelakkan kemasukan yang tidak rasional.
  3. Kurang parameter dan mudah untuk mengoptimumkan.
  4. Teknik purata bergerak matang dengan aplikasi yang luas.
  5. Indikator RSI dapat mengenal pasti fenomena overbought dan oversold dengan berkesan.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Strategi mengikut trend cenderung kepada kerugian besar apabila harga berbalik.
  2. Purata bergerak ketinggalan dan gagal menangkap pembalikan harga dengan segera.
  3. Pemilihan parameter yang salah boleh menyebabkan kualiti isyarat perdagangan merosot.
  4. Strategi ini hanya mempertimbangkan penunjuk teknikal tanpa faktor asas.

Untuk mengurangkan risiko, adalah disyorkan untuk mengoptimumkan parameter purata bergerak, menyesuaikan kedudukan stop loss, dan mengurangkan saiz kedudukan dengan sewajarnya.

Arahan pengoptimuman

Arah pengoptimuman utama untuk strategi ini termasuk:

  1. Mengoptimumkan parameter tempoh purata bergerak untuk mencari kombinasi parameter yang optimum, melalui carian tambahan, algoritma genetik, dll.

  2. Meningkatkan penunjuk teknikal lain untuk penapisan, seperti KDJ, MACD, dan lain-lain untuk meningkatkan kualiti isyarat perdagangan.

  3. Memantau turun naik harga dan menyesuaikan kedudukan dan menghentikan kerugian.

  4. Menggabungkan jumlah dagangan untuk mengelakkan pecah palsu, hanya mengeluarkan isyarat apabila jumlah dagangan berkembang.

  5. Membangunkan mekanisme penyesuaian parameter sendiri, yang membolehkan strategi untuk menyesuaikan nilai parameter secara automatik berdasarkan persekitaran pasaran yang berbeza.

Kesimpulan

Ringkasnya, ini adalah strategi trend berikut yang tipikal. Berdasarkan prinsip persilangan purata bergerak, logik perdagangan adalah mudah dan jelas, mudah difahami dan dilaksanakan. Menggabungkan penunjuk RSI dapat mengelakkan perdagangan tidak rasional. Strategi ini membawa risiko dan ganjaran, sesuai untuk pelabur dengan beberapa pengalaman perdagangan kuantiti, tetapi risiko kerugian yang berpotensi perlu dijaga. Jika pemaju dapat menambah lebih banyak penapis, mengoptimumkan adaptiviti parameter, ia dapat meningkatkan lagi keuntungan 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 lanjut