Strategi ini menghasilkan isyarat beli dan jual dengan mengira purata bergerak sederhana harga tertinggi dan terendah untuk tempoh tertentu.
Strategi perdagangan berbalik dua puncak menggunakan teori sokongan dan rintangan dalam analisis teknikal. Strategi ini mengandaikan bahawa kekuatan pasaran dan pergerakan harga akan berubah apabila harga menembusi rintangan atau sokongan. Khususnya, apabila harga melebihi titik tertinggi dalam tempoh baru-baru ini, ia dianggap sebagai penembusan rintangan ke atas; dan apabila harga jatuh ke titik terendah dalam tempoh baru-baru ini, ia dianggap sebagai penembusan sokongan ke bawah.
Strategi perdagangan berputar dua puncak pertama kali mengira purata bergerak sederhana harga tertinggi dan harga terendah untuk tempoh yang ditetapkan (default 29 hari). Ini menghasilkan dua orbit yang mewakili had atas dan bawah harga. Kemudian, ia mengira titik tengah antara kedua-dua orbit untuk menentukan had pembelian dan penjualan.
Apabila harga naik, ia menghasilkan isyarat beli; apabila harga turun, ia menghasilkan isyarat jual. Pedagang kemudian akan menutup kedudukan dengan cara terbalik, iaitu menjual apabila harga kembali turun dan membeli apabila harga kembali turun.
Kelebihan strategi ini adalah bahawa ia memanfaatkan momentum jangka pendek yang dicetuskan oleh penembusan. Apabila harga menembusi batas atas dan bawah, sering ada turun naik harga yang besar dalam jangka pendek. Ini memberi peluang kepada peniaga untuk berdagang setelah penembusan berlaku.
Walau bagaimanapun, strategi ini juga mempunyai beberapa risiko. Pertama, panjang kitaran yang dipilih akan memberi kesan besar kepada hasilnya. Jika kitaran terlalu pendek, orbit akan terlalu sensitif, menghasilkan banyak isyarat palsu.
Secara keseluruhan, strategi perdagangan berbalik dua puncak mencari peluang perdagangan dengan cara memantau harga untuk memecahkan penurunan momentum. Ia memanfaatkan momentum jangka pendek untuk memecahkan, tetapi juga memerlukan perhatian terhadap pengoptimuman parameter dan kawalan risiko.
/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v2.0 19/09/2022
// This is simple Highest high and Lowest low strategy.
// Buy when break HH+offset
// Sell when break LL+offset
// Offset = (HH-LL)/2
////////////////////////////////////////////////////////////
strategy(title='HHLL', overlay=true)
Len = input(29)
reverse = input(true, title='Trade reverse')
xHH = ta.sma(high, Len)
xLL = ta.sma(low, Len)
movevalue = (xHH - xLL) / 2
xHHM = xHH + movevalue
xLLM = xLL - movevalue
pos = 0
possig = 0
iff_1 = high > xHHM[1] and time > timestamp(2018, 01, 01, 09, 30) ? -1 : nz(pos[1], 0)
pos := low < xLLM[1] and time > timestamp(2018, 01, 01, 09, 30) ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig := reverse and pos == 1 ? -1 : iff_2
if possig == 1 and possig[1] != possig and time > timestamp(2018, 01, 01, 09, 30)
strategy.entry('Long', strategy.long)
if possig == -1 and possig[1] != possig and time > timestamp(2018, 01, 01, 09, 30)
strategy.entry('Short', strategy.short)
barcolor(possig == -1 ? color.red : possig == 1 ? color.green : color.blue)
plot(xHHM, color=color.new(color.blue, 0), title='MA')
plot(xLLM, color=color.new(color.blue, 0), title='MA')
plot(xHH, color=color.new(color.red, 0), title='MA')
plot(xLL, color=color.new(color.red, 0), title='MA')