Strategi Pembalikan Pasar Momentum Ganda


Tanggal Pembuatan: 2024-02-29 15:10:11 Akhirnya memodifikasi: 2024-02-29 15:10:11
menyalin: 9 Jumlah klik: 599
1
fokus pada
1617
Pengikut

Strategi Pembalikan Pasar Momentum Ganda

Ringkasan

Strategi ini digabungkan dengan penggunaan indikator supertrend dan Fisher Shift untuk mencari peluang short shorting ketika pasar berbalik. Ini dapat diterapkan pada berbagai cryptocurrency, saham, dan pasar dengan menyesuaikan parameter supertrend dan Fisher Shift.

Prinsip Strategi

Strategi ini pertama-tama menghitung perubahan Fibonacci selama 10 siklus. Ketika garis perubahan Fibonacci melintasi 2,5 dari titik terendah ke atas, menghasilkan sinyal jual. Pada saat yang sama, ia menghitung rata-rata gelombang nyata selama 10 siklus sebagai saluran supertrend.

Secara khusus, ia menghitung harga closeout K-line saat ini di bawah super channel uptrend periode sebelumnya, dan di atas channel downtrend periode sebelumnya, yang dinilai sebagai reversal pasar, menghasilkan sinyal jual. Pada saat yang sama, menghitung indikator perubahan harga, ketika garis perubahan harga dari titik rendah mencapai 2,5, dan nilai perubahan harga periode sebelumnya lebih rendah dari nilai saat ini, yang dinilai sebagai reversal tren, menghasilkan sinyal jual.

Oleh karena itu, strategi ini perlu memenuhi dua kondisi sekaligus, yaitu supertrend untuk memprediksi pembalikan pasar dan Fisher-Price untuk memprediksi pembalikan tren, untuk menghasilkan sinyal jual akhir.

Keunggulan Strategis

Strategi ini, dikombinasikan dengan supertrend channel dan Fisher Swap indicator, dapat lebih akurat menangkap titik balik pasar. Dibandingkan dengan menggunakan supertrend atau Fisher Swap saja, strategi ini dapat mengurangi sinyal palsu, sehingga meningkatkan stabilitas strategi.

Selain itu, strategi ini memberikan fleksibilitas untuk menyesuaikan parameter supertrend channel dan Fisher Shift. Pengguna dapat memilih kombinasi parameter yang optimal sesuai dengan pasar dan varietas yang berbeda, sehingga sesuai dengan target pasar. Ini adalah strategi yang dapat disesuaikan dan dioptimalkan.

Strategi ini juga menyediakan pengelolaan jumlah risiko. Pengguna dapat dengan mudah menyesuaikan jumlah modal risiko per unit untuk memenuhi kebutuhan manajemen risiko mereka sendiri. Pada saat yang sama, itu juga secara otomatis menghitung stop loss dan target keuntungan, yang dapat mencapai tingkat pengembalian risiko yang lebih baik.

Risiko Strategis

Strategi ini terutama bergantung pada saluran supertrend untuk menilai struktur pasar. Saluran supertrend mungkin akan gagal ketika fase tren berlangsung lebih lama. Dalam hal ini, parameter siklus saluran atau ATR harus diperbesar sesuai.

Selain itu, pergeseran Fisher lebih mudah menghasilkan sinyal yang salah atau sinyal prematur. Bila pasar berfluktuasi besar, harus disesuaikan dengan parameter siklus pergeseran Fisher, menyaring sebagian dari kebisingan.

Selain itu, kemenangan keseluruhan strategi reversal mungkin relatif terbatas. Strategi ini harus dikombinasikan dengan indikator pelacakan tren, menghindari membuka posisi di antara zona getaran, atau terlibat lagi setelah tren lebih jelas.

Arah optimasi strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Mengoptimalkan jumlah siklus ATR dan ATR multiples untuk saluran supertrend, memilih kombinasi parameter terbaik untuk varietas dan kondisi pasar yang berbeda

  2. Optimalkan parameter periodik dari perubahan FeS, meredam kebisingan kurva, dan mencegah sinyal yang salah

  3. Menambahkan Moving Average atau Brinks sebagai indikator tambahan untuk menghindari posisi di pasar yang bergoyang

  4. Kombinasi perubahan Fischer dengan periode waktu yang berbeda untuk menghasilkan penilaian yang lebih stabil dan dapat diandalkan

  5. Menambahkan modul manajemen posisi, seperti rasio leverage, jumlah posisi, aturan penambahan posisi, dan lain-lain, untuk mengendalikan risiko

  6. Menggabungkan metode seperti pembelajaran mesin untuk mengoptimalkan parameter secara otomatis dan penyesuaian strategi

Meringkaskan

Strategi ini menggabungkan indikator supertrend dan Fisher-Price, memiliki fleksibilitas tertentu dalam menilai pembalikan pasar, dan dapat disesuaikan dengan varietas yang berbeda melalui penyesuaian parameter. Dibandingkan dengan indikator tunggal, strategi ini memungkinkan penilaian sinyal dan pengendalian risiko yang lebih andal. Dengan optimasi berkelanjutan, strategi ini diharapkan untuk meningkatkan stabilitas dan meningkatkan profitabilitas.

Kode Sumber Strategi
/*backtest
start: 2024-02-21 00:00:00
end: 2024-02-27 03:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend and Fisher_SHORT", overlay=true)

//This block is for  Fisher Transformation Calculation.
len = input.int(10, minval=1, title="Length") // Length is optional. 10 is good but is up to you.
high_ = ta.highest(hl2, len)
low_ = ta.lowest(hl2, len)
round_(val) => val > .99 ? .999 : val < -.99 ? -.999 : val
value = 0.0
value := round_(.66 * ((hl2 - low_) / (high_ - low_) - .5) + .67 * nz(value[1]))
fish1 = 0.0
fish1 := .5 * math.log((1 + value) / (1 - value)) + .5 * nz(fish1[1])
fish2 = fish1[1]

// Sell condition for Fisher transformation.
sell_signal = (fish1 > 2.5) and (fish2 > fish1)
durum = 0 //just for the situation.

if (sell_signal)
    durum := -1 // now it changes from 0 to -1.

// Supertrend indicator inputs and calculations (same as in the indicator)
Periods = input(title='ATR Period', defval=10) // period is 10, but you can change it
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=2) //atr multiplier is important. it is 2 for this strategy but you can find another for best performance 
RiskAmount = input.float(title='Risk Amount ($)', defval=10.0, minval=0.0, step=1.0) // ıf you use risk-reward method, risk is 10$ for each position. you can also change it
changeATR = input(title='Change ATR Calculation Method ?', defval=true)

atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Calculate position size based on risk amount
riskPerContract = atr * Multiplier
contracts = RiskAmount / (riskPerContract * syminfo.mintick)

//short signal condition
sellSignal = trend == -1 and trend[1] == 1 and durum == -1

plotshape(sellSignal, title='Sell Signal', location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) //shows the signal.

// variables
var float entryPrice = na
var float stopLoss = na
var float takeProfit = na
var float atr1 = na
var float takeProfit2 = na
var float takeProfit3 = na

//it calculates the stop level and reward profit levels using atr.
if (sellSignal)
    entryPrice := close
    atr1 := atr
    stopLoss := entryPrice + atr1 * Multiplier
    contracts := entryPrice / (stopLoss - entryPrice) * RiskAmount / entryPrice
    takeProfit := entryPrice - atr1 * Multiplier
    takeProfit2 := entryPrice - 2 * atr1 * Multiplier
    takeProfit3 := entryPrice - 3 * atr1 * Multiplier

if (sellSignal)
    strategy.entry("Sell", strategy.short, qty=1)

// 
if (close >= stopLoss)
    strategy.close("Sell", comment="Stop Loss Hit")
else if (close <= takeProfit)
    strategy.close("Sell", comment="Take Profit Hit")

// draw the stop, entry and profit levels
plot(stopLoss, title="Stop Loss", color=color.red, linewidth=1, style=plot.style_linebr)
plot(entryPrice, title="Entry Price", color=color.orange, linewidth=1, style=plot.style_linebr)
plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)
plot(takeProfit2, title="Take Profit 2", color=color.blue, linewidth=1, style=plot.style_linebr)
plot(takeProfit3, title="Take Profit 3", color=color.purple, linewidth=1, style=plot.style_linebr)