Strategi DCA Reversal Bulanan

Penulis:ChaoZhang, Tanggal: 2023-10-08 16:12:29
Tag:

Gambaran umum

Tujuan dari strategi ini adalah untuk mengidentifikasi titik-titik pembalikan tren penurunan jangka pendek aset, dan menginvestasikan sejumlah uang tetap di titik-titik tersebut.

Prinsip-prinsip

Strategi ini beroperasi pada jangka waktu bulanan. Ada 240 bar 1 jam di setiap bulan, yang digunakan untuk menentukan waktu pembalikan tren.

Secara khusus, strategi ini menghitung perbedaan antara EMA cepat dan EMA lambat (EMA_CD), serta garis sinyal EMA_CD. Ketika garis cepat melintasi di atas garis sinyal, strategi ini menentukan akhir dari tren penurunan jangka pendek dan memicu sinyal beli.

Setelah sinyal beli, strategi akan menutup semua posisi pada akhir bulan. Kemudian prosesnya diulang pada bulan berikutnya, dengan pembelian dan penahan berkala tetap selama satu bulan.

Hal ini memungkinkan kita untuk bottom-perikanan di akhir penurunan jangka pendek, dan biaya dolar rata-rata pada interval tetap.

Keuntungan

Keuntungan terbesar dari strategi ini adalah bahwa ia dapat menyaring pasar yang terikat rentang dan hanya membeli pada titik pembalikan tren, sehingga biaya dolar rata-rata pada harga yang relatif lebih baik.

Selain itu, menggunakan EMA untuk menentukan titik pembalikan dapat lebih stabil dan akurat dibandingkan dengan hanya melihat pembalikan lilin. EMA dapat meratakan kebisingan pasar jangka pendek yang mempengaruhi waktu masuk.

Akhirnya, stop loss bulanan mengunci kinerja untuk setiap investasi bulanan, membatasi kerugian maksimum per bulan.

Risiko

Risiko terbesar dari strategi ini adalah bahwa harga terus menurun setelah membeli, yang mengarah pada stop loss pada akhir bulan.

Kita dapat mengoptimalkan parameter EMA untuk meningkatkan identifikasi, atau menggabungkan indikator lain seperti RSI untuk mengkonfirmasi sinyal pembalikan.

Risiko lain adalah tingkat stop loss. Stop loss yang terlalu ketat dapat dengan mudah dihentikan oleh fluktuasi jangka pendek. Stop loss yang terlalu luas gagal membatasi kerugian. Parameter optimal perlu ditemukan dengan menguji tingkat stop loss yang berbeda.

Peluang Peningkatan

Strategi ini dapat ditingkatkan di bidang berikut:

  1. Mengoptimalkan periode EMA untuk menemukan kombinasi parameter optimal untuk mengidentifikasi pembalikan.

  2. Tambahkan filter lain seperti RSI untuk mengkonfirmasi sinyal pembalikan.

  3. Uji tingkat stop loss yang berbeda untuk menemukan titik optimal yang memaksimalkan pencegahan kerugian tanpa mendapatkan whipsawed.

  4. Pertimbangkan untuk menambahkan stop trailing di atas stop loss untuk menyesuaikan stop level secara dinamis berdasarkan harga.

  5. Uji jangka waktu yang berbeda seperti harian atau mingguan untuk melihat mana yang terbaik untuk strategi ini.

Kesimpulan

Ide keseluruhan strategi ini sederhana dan jelas - menggunakan EMA untuk mengidentifikasi pembalikan tren jangka pendek, dan rata-rata biaya dolar pada titik pembalikan setiap bulan. Ini dapat secara efektif menyaring pasar yang berbelit-belit dan berinvestasi dengan harga yang relatif rendah. Ruang optimasi sebagian besar terletak pada pengaturan parameter dan teknik stop loss. Secara keseluruhan ini adalah konsep strategi yang sangat baik untuk alokasi aset tetap, layak untuk pengujian dan peningkatan lebih lanjut.


/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © BHD_Trade_Bot

// @version=5
// strategy(
//  shorttitle            = 'DCA After Downtrend',
//  title                 = 'DCA After Downtrend (by BHD_Trade_Bot)',
//  overlay               = true,
//  calc_on_every_tick    = true,
//  calc_on_order_fills   = true,
//  use_bar_magnifier     = true,
//  pyramiding            = 100,
//  initial_capital       = 0,
//  default_qty_type      = strategy.cash,
//  default_qty_value     = 1000,
//  commission_type       = strategy.commission.percent,
//  commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2017)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time   = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time     = timestamp(end_year, end_month, end_day, 23, 59)

window() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 20)
hist = emacd - emacd_signal

// Count n candles after x long entries
var int nPastCandles = 0
var int entryNumber = 0
nPastCandles := nPastCandles + 1



// ENTRY CONDITIONS

// 8 hours per day => 240 hours per month
entry_condition1 = nPastCandles > entryNumber * 240

// End of downtrend
entry_condition2 = ta.crossover(emacd, emacd_signal)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2


if ENTRY_CONDITIONS and window()
    entryNumber := entryNumber + 1
    entryId = 'Long ' + str.tostring(entryNumber)
    strategy.entry(entryId, strategy.long)
    
    

// CLOSE CONDITIONS

// Last bar
CLOSE_CONDITIONS = barstate.islast

if CLOSE_CONDITIONS
    strategy.close_all()


    
// Draw
plot(ema50, color=color.orange, linewidth=3)
plot(ema200, color=entry_condition1 ? color.green : color.red, linewidth=3)


Lebih banyak