Strategi Crossover Rata-rata Bergerak


Tanggal Pembuatan: 2024-01-12 14:04:37 Akhirnya memodifikasi: 2024-01-12 14:04:37
menyalin: 0 Jumlah klik: 615
1
fokus pada
1617
Pengikut

Strategi Crossover Rata-rata Bergerak

Moving average crossover adalah salah satu jenis sinyal trading yang umum. Strategi ini menggunakan crossover antara fast moving average dan slow moving average sebagai sinyal trading. Secara khusus, ketika fast moving average melintasi slow moving average dari bawah, lakukan over; ketika fast moving average melintasi slow moving average dari atas ke bawah, lakukan blank.

Strategi ini menggunakan rata-rata bergerak eksponensial 20 hari (EMA) sebagai rata-rata bergerak cepat, 50 hari EMA sebagai rata-rata bergerak cepat, dan 200 hari EMA sebagai rata-rata bergerak lambat. Lakukan lebih banyak ketika EMA 20 hari dan EMA 50 hari naik bersama-sama melalui EMA 200 hari; kosong ketika EMA 20 hari dan EMA 50 hari turun bersama-sama melalui EMA 200 hari. Ini dapat memfilter beberapa sinyal palsu.

Keunggulan Strategis

  1. Strategi Moving Average sederhana, mudah dipahami dan diterapkan
  2. Menggunakan kombinasi moving averages untuk memfilter sinyal palsu
  3. Kondisi multirumah jelas, mudah untuk menentukan waktu masuk dan keluar

Risiko Strategis

  1. Dalam laporan keuangan, sinyal yang salah bisa muncul.
  2. Rata-rata bergerak memiliki keterlambatan dan tidak dapat menangkap perubahan harga secara tepat waktu
  3. Kegagalan untuk memanfaatkan keuntungan dari terobosan

Optimalkan Pikiran

  1. Optimalkan parameter periodik dari moving averages untuk varietas dan periode yang berbeda
    1. Menambahkan sinyal penyaringan indikator lain, seperti volume transaksi, Brinks, dll.
  2. Menggabungkan strategi tren dan reversal, melacak tren, menunggu kesempatan dalam penyesuaian

Meringkaskan

Konsep strategi lintas rata-rata bergerak sederhana, mudah dikuasai, dan merupakan salah satu strategi dasar untuk perdagangan kuantitatif. Strategi ini memiliki nilai referensi yang bagus sebagai pembelajaran awal. Namun, dalam pertempuran nyata, parameter masih perlu dioptimalkan untuk varietas dan siklus, dan ditambah dengan indikator teknis lain yang lebih kompleks untuk menyaring sinyal, sehingga meningkatkan efektivitas strategi dalam pertempuran nyata.

Kode Sumber Strategi
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 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/
// © rt-maax

//@version=5

strategy(title = "rt maax EMA cross strategy", shorttitle = "rt maax ema ", overlay = true, precision = 8, max_bars_back = 200, pyramiding = 0, initial_capital = 100000, 
     currency = currency.USD, default_qty_type = strategy.cash, default_qty_value = 100000, commission_type = "percent", commission_value = 0.27)
fastema = ta.ema (close , 50)
fema=ta.ema(close,20)
slowema= ta.ema(close,200)
price = close

// === INPUT BACKTEST RANGE ===
fromMonth = input.int(defval = 1,    title = "From Month",  minval = 1, maxval = 12)
fromDay   = input.int(defval = 1,    title = "From Day",    minval = 1, maxval = 31)
fromYear  = input.int(defval = 2021, title = "From Year",   minval = 1970)
thruMonth = input.int(defval = 10,    title = "Thru Month",  minval = 1, maxval = 12)
thruDay   = input.int(defval = 25,    title = "Thru Day",    minval = 1, maxval = 31)
thruYear  = input.int(defval = 2112, title = "Thru Year",   minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range")

// === FUNCTION EXAMPLE ===



longCondition1= ta.crossover (fema , fastema) 
longcondition2= fema> slowema
longcondition3=fastema>slowema


if (longCondition1 and longcondition2 and longcondition3 )
    stoploss=low*0.97
    takeprofit=high*1.12
    strategy.entry("Long Entry", strategy.long)
    strategy.exit ("exit","long",stop=stoploss,limit=takeprofit)
   


shortCondition1 = ta.crossunder (fema , fastema )
shortcondition2= fastema< slowema
shortcondition3= fema< slowema

if (shortCondition1 and shortcondition2 and shortcondition3 )
    stoploss=low*0.97 
    takeprofit=high*1.5
    strategy.entry("Short Entry", strategy.short)
    strategy.exit("exit","short",stop=stoploss,limit=takeprofit)