Strategi Pembalikan Purata Pergerakan Berganda


Tarikh penciptaan: 2023-11-03 16:51:18 Akhirnya diubah suai: 2023-11-03 16:51:18
Salin: 2 Bilangan klik: 592
1
fokus pada
1617
Pengikut

Strategi Pembalikan Purata Pergerakan Berganda

Gambaran keseluruhan

Strategi ini menggunakan 2 indikator untuk menghasilkan isyarat perdagangan: Indeks Pergerakan Rata-rata 220 dan Indeks Reversal Julat Reversal Julat Reversal. Ia menggabungkan trend mengikuti dan reversal jangka pendek dua pemikiran strategi utama untuk mencari peluang reversal.

Prinsip

Strategi ini terdiri daripada dua bahagian:

  1. Indeks Moving Average 220: Ia mengira purata pergerakan indeks selama 20 hari terakhir, menghasilkan isyarat perdagangan apabila harga menembusi dari atas ke bawah atau dari bawah ke arah purata bergerak.

  2. Indikator Reversal Rentang Rata-Rata Pergerakan Nyata. Ia mengira titik hentian berdasarkan rantau rata-rata pergerakan sebenar harga, dan memberi isyarat apabila harga menembusi titik hentian. Ia menggunakan 3.5 kali ATR sebagai titik hentian.

Strategi ini menggabungkan kedua-dua isyarat. Apabila 2/20EMA menghasilkan isyarat multihead dan ATR berbalik menghasilkan isyarat kosong, buat kosong; Apabila 2/20EMA menghasilkan isyarat kosong dan ATR berbalik menghasilkan isyarat multihead, buat lebih banyak.

Analisis kelebihan

Strategi ini menggabungkan trend-following dan reversal dengan tujuan untuk mencari peluang untuk membalikkan harga.

  1. 220 EMA dapat mengenal pasti trend pertengahan dan mengelakkan gangguan pasaran.

  2. Penunjuk ATR berbalik menangkap perubahan harga jangka pendek dan mengambil peluang untuk berbalik.

  3. Dengan menggabungkan kedua-dua isyarat ini, ia dapat ditangkap lebih awal apabila trend bertukar dalam jangka masa pertengahan, dan dengan itu meningkatkan peluang untuk memperoleh keuntungan.

  4. Tetapan stop loss ATR lebih munasabah dan mempunyai kesan kawalan risiko tertentu.

  5. Pekali ATR boleh disesuaikan untuk menyesuaikan ciri-ciri varieti yang berbeza.

  6. Anda boleh memilih untuk berdagang ke arah positif atau ke arah terbalik.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. 220 parameter EMA lambat, mungkin terlepas peluang garisan pendek.

  2. Hentikan ATR mudah ditembusi, dan hentikan Hentikan harus dikurangkan.

  3. Indikator tunggal mudah menghasilkan isyarat yang salah, lebih banyak faktor perlu disaring.

  4. Perhatikan jumlah transaksi untuk mengelakkan terlalu kerap.

  5. Parameter perlu dioptimumkan dan diuji semula untuk mengesahkan kesesuaian dengan jenis tersebut.

  6. Mematuhi peraturan pengurusan dana yang ketat dan mengawal risiko.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  1. Menyesuaikan parameter EMA untuk mencari kombinasi parameter terbaik

  2. Mengoptimumkan saiz ATR, mengimbangi stop loss

  3. Menambah syarat penapisan, menggabungkan penunjuk seperti kadar pertukaran, kadar turun naik

  4. Menambah modul pengurusan wang, penyesuaian kedudukan secara dinamik

  5. Menambah strategi henti rugi, seperti Chandelier Exit

  6. Uji kesesuaian antara varieti yang berbeza untuk mencari kombinasi terbaik

  7. Menggunakan model pembelajaran mesin untuk meningkatkan prestasi menggunakan data besar

  8. Menggabungkan pelbagai substrategi untuk mencari lebih banyak Alpha

ringkaskan

Strategi ini mengintegrasikan dua pemikiran besar dan mempunyai keupayaan untuk menangkap harga berbalik. Tetapi ada juga risiko yang timbul daripada pemilihan parameter yang tidak betul.

Kod 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)