Sumber daya yang dimuat... Pemuatan...

Strategi Pelacakan Tren Emas Berdasarkan Investasi Periodik

Penulis:ChaoZhang, Tanggal: 2023-10-31 15:09:22
Tag:

img

Gambaran umum

Strategi ini menggunakan model rata-rata bergerak untuk menentukan arah tren pasar. Ketika tren bullish diidentifikasi, secara berkala akan membuka posisi panjang dengan jumlah tetap untuk melacak tren naik golden cross di pasar.

Logika Strategi

Strategi ini terutama didasarkan pada prinsip-prinsip teknis berikut:

  1. Gunakan garis EMA untuk menentukan arah tren pasar. Ketika garis EMA cepat melintasi garis EMA lambat, itu dinilai sebagai tren bullish dan bersiap untuk memasuki posisi panjang.

  2. Menggabungkan indikator MACD untuk menentukan waktu masuk. Ketika MACD berubah dari positif menjadi negatif, ini menunjukkan bahwa daya beli mulai melemah, jadi sudah waktunya untuk memasuki posisi panjang.

  3. Batas untuk hanya masuk sekali per bulan untuk menghindari mengejar tinggi.

  4. Memungkinkan pengaturan tanggal awal dan tanggal akhir untuk membatasi periode backtest.

Secara khusus, strategi pertama menghitung garis EMA cepat dan garis EMA lambat, dan mendeteksi silang emas di antara mereka untuk menentukan tren pasar. Pada saat yang sama, ia menghitung indikator MACD untuk menentukan titik masuk tertentu. Ketika kedua kriteria terpenuhi, sinyal panjang dihasilkan. Menurut aturan hanya masuk sekali per bulan, pesanan masuk yang sebenarnya ditentukan. Jumlah modal untuk setiap entri dapat ditetapkan sebelumnya. Ketika backtest berakhir, strategi akan secara aktif menutup semua posisi.

Keuntungan

Ini adalah tren yang sederhana dan langsung mengikuti strategi dengan keuntungan berikut:

  1. Menggunakan garis EMA untuk menentukan tren utama sederhana dan praktis. EMA memiliki efek merata pada perubahan harga dan dapat menyaring kebisingan pasar secara efektif.

  2. Indikator MACD dapat mengidentifikasi titik balik ketika daya beli mulai melemah dengan relatif akurat, membuat entri lebih aman.

  3. Membatasi diri untuk hanya mengejar tren naik sekali per bulan dapat menghindari mengejar tertinggi dan membunuh tren naik di pasar bull.

  4. Memungkinkan penyesuaian jumlah entri setiap bulan memberikan fleksibilitas dalam ukuran posisi.

  5. Backtest dapat digunakan untuk mengevaluasi kinerja strategi dengan menetapkan tanggal awal dan akhir.

  6. Ini akan menutup semua posisi secara otomatis ketika backtest berakhir, menghindari posisi yang tersisa canggung.

Risiko dan Pengurangan

Ada beberapa risiko potensial dari strategi ini:

  1. Penentuan tren melalui rata-rata bergerak dapat melewatkan peluang selama penarikan sementara atau bereaksi lambat pada pembalikan tren.

  2. Jika hanya masuk sebulan sekali, Anda mungkin kehilangan kesempatan masuk yang lebih baik.

  3. Ada risiko penyesuaian kurva. Lebih banyak ruang penyesuaian parameter harus diizinkan dan ketahanan harus diuji di seluruh pasar dan periode waktu.

  4. Ada risiko mengejar momentum dan overbuy. Jumlah entri bulanan harus dikendalikan untuk menghindari posisi yang terlalu besar.

Peluang Peningkatan

Tren investasi berkala ini mengikuti strategi dapat diperluas dan ditingkatkan dari aspek berikut:

  1. Tambahkan logika stop loss untuk secara aktif memotong kerugian ketika pola pembalikan bearish muncul.

  2. Pertimbangkan untuk menambahkan pembelian lain ketika histogram MACD menunjukkan divergensi bullish untuk mendapatkan lebih banyak eksposur terhadap tren naik.

  3. Memperkenalkan perbandingan dari bulan inibaru tertinggi versus bulan sebelumnya untuk menilai kekuatan momentum.

  4. Tambahkan logika ukuran posisi. Jumlah entri bulanan dapat dibuat adaptif berdasarkan persentase daripada nilai tetap.

  5. Evaluasi dampak dari kombinasi MA yang berbeda dan parameter MACD. Cari set parameter optimal.

  6. Tambahkan stop loss yang mengikuti harga pada jarak tertentu setelah mencapai level tertinggi baru, memungkinkan keuntungan untuk berjalan.

Ringkasan

Strategi ini merupakan pendekatan yang sederhana dan bersih mengikuti tren dengan menggunakan investasi periodik dan moving average. Ini mudah dipahami dan diimplementasikan, berfungsi sebagai titik awal yang baik untuk belajar trading algoritmik. Tetapi dalam perdagangan langsung, ukuran posisi perlu dikendalikan dengan hati-hati. Strategi harus ditingkatkan lebih lanjut untuk beradaptasi dengan kondisi pasar yang kompleks.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
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/
// © runescapeyttanic

//@version=4
// strategy("Buy and Hold entry finder Strategy",pyramiding=10000, overlay=true,initial_capital=0,default_qty_type=strategy.cash,default_qty_value=1000,currency = currency.EUR,commission_type=strategy.commission.cash_per_order,commission_value=0)

//INPUTS##################################################################################################################

maxEmaDistance = input(title="Maximum EMA Distance", type=input.float, step=0.01, defval=50000)
emalength = input(title="EMA Length", type=input.integer,defval=200)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=12, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=02, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100)

endDate1=endDate-1
//starttag
//startmonat
//MACD########################################################################################################################

fast_length=12
slow_length=26
src=close
col_macd=#0094ff
fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma

//EMA Distance CALC########################################################################################################

ma1 =ema(close,emalength)
distFromMean = close - ma1

inDateRange = true

longCondition = (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0 and inDateRange)
longnow=false

if(longCondition and strategy.position_size == 0)
    strategy.entry("My Long Entry Id", strategy.long)
    longnow:=true

if(longCondition and strategy.position_size > 0)
    longnow:=true
    

if(longCondition and strategy.position_size > 0 and month>valuewhen(longnow, month ,1) or longCondition and strategy.position_size > 0 and year>valuewhen(longnow, year ,1) and inDateRange)
    strategy.entry("My Long Entry Id", strategy.long)

plotchar(minute, "Minuten", "", location = location.top)

plotchar(hour, "Stunden", "", location = location.top)    

plotchar(dayofmonth, "Tage", "", location = location.top)

plotchar(month, "Monat", "", location = location.top)

plotchar(year, "Jahr", "", location = location.top)

plotchar(strategy.position_size, "Positionen", "", location = location.top)

plotchar(longCondition, "Long Condition", "", location = location.top)

if true
    strategy.close_all()

//#########################################################################################################################

plotArrow = if (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0)
    1
else
    0
    
plotarrow(series=plotArrow)



Lebih banyak