Strategi Crossover Rata-rata Pergerakan Eksponensial


Tanggal Pembuatan: 2023-10-17 16:55:10 Akhirnya memodifikasi: 2023-10-17 16:55:10
menyalin: 0 Jumlah klik: 719
1
fokus pada
1617
Pengikut

Strategi Crossover Rata-rata Pergerakan Eksponensial

Ringkasan

Ini adalah strategi perdagangan otomatis berdasarkan dua periode waktu yang berbeda. Ini menggunakan indikator teknis yang sederhana dan sangat cocok untuk belajar dan berlatih pemula.

Prinsip

Strategi ini menggunakan dua rata-rata bergerak indeks, satu adalah rata-rata periode waktu yang besar, dan satu adalah rata-rata periode saat ini. Ketika rata-rata periode saat ini melintasi rata-rata periode yang besar, lakukan lebih banyak; Ketika rata-rata periode saat ini melintasi rata-rata periode yang besar, lakukan kosong.

Secara khusus, strategi pertama mendefinisikan dua parameter rata-rata:

  1. tf - periode waktu yang besar, garis matahari default
  2. len - panjang siklus rata-rata, default 3

Kemudian perhitungkan dua EMA masing-masing:

  1. ma1 - 3 hari EMA pada garis besar
  2. ma2 - EMA hari ke-3 dari siklus saat ini

Akhirnya, masuk ke logika transaksi:

  • Bila ma2 > ma1, lakukan lebih banyak
  • Bila ma2 < ma1, kosongkan

Dengan cara ini, arah tren dinilai melalui persilangan garis rata-rata periode waktu yang berbeda, dan perdagangan otomatis dilakukan.

Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Prinsipnya sederhana, mudah dipahami dan diterapkan, sangat cocok untuk pemula.
  2. Perdagangan yang berjalan, mengikuti tren, dapat menghasilkan keuntungan yang lebih baik.
  3. Dengan menggunakan indeks moving average, lebih sensitif terhadap perubahan harga dan dapat menangkap perubahan tren tepat waktu.
  4. Kombinasi garis rata-rata periode yang berbeda, dapat memainkan keunggulan masing-masing, meningkatkan stabilitas sistem.
  5. Tidak perlu terlalu banyak parameter, mudah untuk diuji dan dioptimalkan, dan mudah dioperasikan pada hard disk.

Risiko

Strategi ini juga memiliki beberapa risiko:

  1. “Saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa”.
  2. Pada saat ini, ada beberapa peluang yang mungkin terlewatkan.
  3. Tidak dapat memfilter secara efektif dua baris yang tidak berurutan.
  4. Hanya berdasarkan rata-rata sederhana, sulit untuk beradaptasi dengan pasar yang kompleks.

Risiko dapat dikurangi dengan mengatur stop loss, mengoptimalkan kombinasi parameter, atau menambahkan indikator lainnya.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Uji parameter rata-rata periode besar yang berbeda untuk menemukan kombinasi terbaik.
  2. Menambahkan filter pada indikator volume lalu lintas untuk menghindari sinyal palsu.
  3. Menggabungkan indikator tren untuk meningkatkan kekuatan kepemilikan dan efisiensi operasi.
  4. Tetapkan Stop Loss Adaptif untuk Mengontrol Kerugian Tunggal
  5. Mengoptimalkan manajemen posisi, menyesuaikan ukuran posisi sesuai dengan pasar.
  6. Selain itu, ada juga yang menambahkan model pembelajaran mesin untuk membuat strategi lebih cerdas.

Meringkaskan

Strategi crossover rata-rata bergerak ini menggunakan indikator sederhana untuk menangkap tren, cocok untuk praktik pembelajaran pemula. Ada ruang yang lebih besar untuk pengoptimalan, dapat memperkenalkan lebih banyak indikator dan model teknis untuk perbaikan, mengembangkan strategi perdagangan kuantitatif yang lebih efektif.

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

//@version=3
strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
tf = input("D", title = "Big Timeframe")
len = input(3, minval = 1, title = "MA length")
src = input(close, title = "MA Source")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MAs
ma1 = request.security(syminfo.tickerid, tf, sma(src, len))
ma2 = sma(src, len)
plot(ma1, linewidth = 2, color = blue, title = "Big TF MA")
plot(ma2, linewidth = 2, color = red, title = "MA")

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]

if ma2 > ma1
    strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if ma2 < ma1
    strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()