Strategi Pembalikan Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2023-11-03 16:51:18 Akhirnya memodifikasi: 2023-11-03 16:51:18
menyalin: 2 Jumlah klik: 595
1
fokus pada
1621
Pengikut

Strategi Pembalikan Rata-rata Pergerakan Ganda

Ringkasan

Strategi ini menggunakan 2 indikator untuk menghasilkan sinyal perdagangan: Indeks Moving Average 2020 dan Indeks Reversal Average Real Range. Ini menggabungkan dua ide strategi utama, mengikuti tren dan reversal jangka pendek, untuk menemukan peluang reversal.

Prinsip

Strategi ini terdiri dari dua bagian:

  1. 220 Indeks Moving Average. Indeks ini menghitung pergerakan rata-rata indeks selama 20 hari terakhir, dan menghasilkan sinyal perdagangan ketika harga melewati moving average dari atas ke bawah atau dari bawah ke atas.

  2. Average True Range Reversal Indicator. Hal ini didasarkan pada harga rata-rata real range berfluktuasi untuk menghitung titik stop loss, menghasilkan sinyal ketika harga menembus titik stop loss.

Strategi ini mengintegrasikan kedua sinyal tersebut. Bila 220 EMA menghasilkan sinyal multihead dan ATR berbalik menghasilkan sinyal kosong, maka kosongkan; bila 220 EMA menghasilkan sinyal kosong dan ATR berbalik menghasilkan sinyal multihead, maka lakukan lebih banyak.

Analisis Keunggulan

Strategi ini menggabungkan dua ide utama, yaitu mengikuti tren dan membalikkan, yang bertujuan untuk menemukan peluang untuk membalikkan harga.

  1. 220 EMA dapat mengidentifikasi tren jangka menengah dan menghindari kebisingan pasar.

  2. Indikator ATR Reversal dapat menangkap reversal harga jangka pendek dan mengambil peluang untuk reversal.

  3. Kombinasi sinyal keduanya dapat menangkap lebih awal saat terjadi pergeseran tren jangka menengah, sehingga meningkatkan probabilitas keuntungan.

  4. Pengaturan stop loss ATR lebih masuk akal dan memiliki efek kontrol risiko tertentu.

  5. Kode ATR dapat disesuaikan dengan karakteristik varietas.

  6. Anda dapat memilih untuk melakukan transaksi positif atau negatif, sesuai dengan situasi yang berbeda.

Analisis risiko

Strategi ini juga memiliki risiko sebagai berikut:

  1. Parameter 220 EMA lebih lambat, kemungkinan kehilangan kesempatan garis pendek.

  2. ATR stop mudah terobosan, dan stop loss harus relaksasi sesuai.

  3. Indikator tunggal mudah menghasilkan sinyal yang salah, harus digabungkan dengan filter faktor lebih lanjut.

  4. Perhatikan jumlah transaksi untuk menghindari transaksi yang terlalu sering.

  5. Optimasi parameter dan pengujian ulang diperlukan untuk memastikan kesesuaian dengan varietas tersebut.

  6. Anda harus mematuhi manajemen dana yang ketat dan mengontrol risiko.

Arah optimasi

Strategi ini dapat dioptimalkan dengan:

  1. Menyesuaikan parameter EMA untuk mencari kombinasi optimal

  2. Mengoptimalkan ukuran ATR, menyeimbangkan stop loss

  3. Meningkatkan kondisi penyaringan, menggabungkan indikator seperti tingkat perputaran, volatilitas

  4. Menambahkan Modul Manajemen Uang, Mengubah Posisi Secara Dinamis

  5. Menambahkan strategi stop loss, seperti Chandelier Exit

  6. Uji efek dari berbagai varietas untuk menemukan kombinasi terbaik

  7. Menambahkan model pembelajaran mesin untuk meningkatkan kinerja dengan data besar

  8. Menggabungkan berbagai strategi untuk menemukan lebih banyak Alpha

Meringkaskan

Strategi ini mengintegrasikan dua pemikiran besar, dengan kemampuan tertentu untuk menangkap harga berbalik. Namun, ada juga risiko yang ditimbulkan oleh pemilihan parameter yang tidak tepat. Dapat meningkatkan stabilitas dan profitabilitas strategi lebih lanjut dengan mengoptimalkan strategi stop loss, menambahkan kondisi penyaringan, dll.

Kode Sumber Strategi
/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort 
// The related article is copyrighted material from Stocks & Commodities Jun 2009 
// Please, use it only for learning or paper trading. Do not for real trading.
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


ATRR(nATRPeriod,nATRMultip) =>
    pos = 0.0
    xATR = ta.atr(nATRPeriod)
    nLoss = nATRMultip * xATR
    xATRTrailingStop = 0.0
    xATRTrailingStop := close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), close - nLoss) :
                          close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), close + nLoss) : 
                          close > nz(xATRTrailingStop[1], 0) ? close - nLoss : close + nLoss
    pos:= close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0) ? 1 :
    	     close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Average True Range Reversed', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Average True Range Reversed  ═════●'
nATRPeriod = input.int(5, group=I2)
nATRMultip = input.float(3.5, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosATRR = ATRR(nATRPeriod,nATRMultip)
iff_1 = posEMA20 == -1 and prePosATRR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosATRR == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)