Strategi perdagangan kuantitatif berdasarkan pembalikan rata-rata pergerakan saluran ATR


Tanggal Pembuatan: 2023-12-11 15:38:25 Akhirnya memodifikasi: 2023-12-11 15:38:25
menyalin: 3 Jumlah klik: 776
1
fokus pada
1621
Pengikut

Strategi perdagangan kuantitatif berdasarkan pembalikan rata-rata pergerakan saluran ATR

Ringkasan

Strategi ini adalah strategi hanya melakukan lebih banyak, yang menggunakan harga untuk memecahkan batas bawah saluran ATR untuk menentukan waktu masuk, dan dengan garis rata-rata saluran ATR atau batas atas saluran ATR sebagai stop-loss untuk keluar. Pada saat yang sama, itu juga menggunakan ATR untuk menghitung harga stop-loss.

Prinsip Strategi

Ketika harga jatuh di bawah batas bawah saluran ATR, menunjukkan bahwa harga mengalami penurunan yang tidak biasa. Pada saat ini strategi akan melakukan masukan pada saat pembukaan K baris berikutnya. Stop loss sebagai harga masuk dikurangi ATR stop loss faktor kali ATR.

Secara khusus, strategi ini terdiri dari logika berikut:

  1. Perhitungan ATR dan ATR channel mean line
  2. Tentukan kondisi penyaringan waktu
  3. Ketika harga berada di bawah batas bawah saluran ATR, token dapat melakukan masukan
  4. “Saya tidak tahu apa yang terjadi”, katanya.
  5. Rekam harga masuk
  6. Perhitungan harga stop loss
  7. Stop loss terjadi ketika harga berada di atas garis rata-rata atau batas atas saluran ATR
  8. Stop loss keluar ketika harga di bawah harga stop loss

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan saluran ATR untuk menentukan masuk dan berhenti, reliabilitas yang lebih tinggi
  2. “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”.
  3. Peraturan Stop Loss yang ketat dan pengendalian risiko yang efektif
  4. Cocok untuk perdagangan cepat, tidak perlu memegang posisi lama
  5. Aturan yang mudah dipahami, mudah diterapkan dan dioptimalkan

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Biaya transaksi dan risiko slippage yang ditimbulkan oleh transaksi yang sering
  2. Kemungkinan terjadi pemicu stop loss berturut-turut
  3. Optimisasi parameter yang tidak tepat dapat mempengaruhi efektivitas kebijakan
  4. Stop loss mungkin terlalu besar jika harga saham berfluktuasi besar

Risiko dapat dikurangi dengan menyesuaikan siklus ATR, mengurangi stop loss, dan lain-lain. Selain itu, penting untuk memilih broker dengan biaya transaksi yang lebih rendah.

Arah optimasi

Strategi ini juga dapat dioptimalkan dengan:

  1. Menambahkan filter untuk indikator lain untuk menghindari kehilangan waktu terbaik untuk masuk
  2. Optimalkan parameter siklus ATR
  3. Mempertimbangkan untuk bergabung dengan mekanisme penerimaan kembali
  4. Dinamika penyesuaian stop loss
  5. Menambahkan aturan penilaian tren untuk menghindari masuk ke pasar yang berlawanan

Meringkaskan

Strategi ini secara keseluruhan adalah strategi yang sederhana dan praktis untuk membalikkan garis rata-rata. Strategi ini memiliki aturan masuk yang jelas, mekanisme stop loss yang ketat, dan metode stop perfect. Strategi ini juga menyediakan ruang optimasi untuk beberapa penyesuaian parameter. Strategi ini harus dapat memberikan hasil yang baik jika pedagang dapat memilih standar yang tepat dan bekerja dengan stop loss untuk mengendalikan risiko.

Kode Sumber Strategi
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 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/
// © Bcullen175

//@version=5
strategy("ATR Mean Reversion", overlay=true, initial_capital=100000,default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=6E-5) // Brokers rate (ICmarkets = 6E-5)
SLx = input(1.5, "SL Multiplier", tooltip = "Multiplies ATR to widen stop on volatile assests, Higher values reduce risk:reward but increase winrate, Values below 1.2 are not reccomended")
src = input(close, title="Source")
period = input.int(10, "ATR & MA PERIOD")
plot(open+ta.atr(period))
plot(open-ta.atr(period))
plot((ta.ema(src, period)), title = "Mean", color=color.white)

i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Check filter(s)
f_dateFilter = true

atr = ta.atr(period)

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = low < (open-ta.atr(period)) and strategy.position_size == 0 and f_dateFilter
sellCondition   = (high > (ta.ema(close, period)) and strategy.position_size > 0 and close < low[1]) or high > (open+ta.atr(period))
stopDistance    = strategy.position_size > 0 ? ((buyPrice - atr)/buyPrice) : na
stopPrice       = strategy.position_size > 0 ? (buyPrice - SLx*atr): na
stopCondition   = strategy.position_size > 0 and low < stopPrice

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)