Strategi Pembalikan Momentum Pasar

Penulis:ChaoZhang, Tanggal: 2024-02-29 15:10:11
Tag:

img

Gambaran umum

Strategi ini menggabungkan indikator Supertrend dan Fisher Transform untuk mencari peluang pendek ketika pasar berbalik. Ini dapat menyesuaikan parameter Supertrend dan Fisher Transform untuk berbagai mata uang kripto, saham dan pasar. Ketika sinyal jual muncul, itu menunjukkan ukuran posisi, stop loss dan level profit. Anda juga dapat mengubah jumlah risiko.

Logika Strategi

Strategi ini pertama kali menghitung Fisher Transform dengan periode 10. Ketika garis Fisher menembus 2,5 dari bawah, sinyal jual dihasilkan. Pada saat yang sama, strategi ini menghitung 10-periode Average True Range (ATR) sebagai saluran untuk Supertrend. Ketika harga melintasi bawah rel atas, sinyal jual dihasilkan. Jadi strategi ini menggabungkan Fisher Transform dan saluran Supertrend untuk menangkap peluang pendek ketika pasar berbalik.

Secara khusus, ketika penutupan saat ini berada di bawah rel atas sebelumnya dan penutupan sebelumnya berada di atas rel bawah saluran Supertrend, itu menentukan pasar telah berbalik dan menghasilkan sinyal jual. Pada saat yang sama, ketika garis Fisher menembus 2,5 dari bawah, dan nilai Fisher sebelumnya lebih rendah dari yang saat ini, itu menentukan tren telah berbalik dan menghasilkan sinyal jual.

Jadi strategi membutuhkan identifikasi pembalikan Supertrend dan Fisher Transform untuk menghasilkan sinyal jual akhir.

Keuntungan

Strategi ini menggabungkan saluran Supertrend dan Fisher Transform, yang dapat lebih akurat menangkap titik pembalikan pasar. Dibandingkan dengan menggunakan Supertrend atau Fisher saja, ini dapat mengurangi sinyal palsu dan meningkatkan stabilitas strategi.

Selain itu, strategi ini memberikan fleksibilitas untuk menyesuaikan parameter Supertrend dan Fisher. Pengguna dapat memilih kombinasi parameter terbaik untuk pasar dan produk yang berbeda agar sesuai dengan pasar dengan tujuan.

Strategi ini juga menyediakan manajemen jumlah risiko. Pengguna dapat dengan mudah menyesuaikan modal risiko untuk setiap pesanan untuk memenuhi kebutuhan manajemen risiko mereka sendiri. Pada saat yang sama, secara otomatis menghitung tingkat stop loss dan profit taking untuk mencapai rasio risiko-manfaat yang baik.

Risiko

Strategi ini terutama bergantung pada saluran Supertrend untuk menentukan struktur pasar. Ketika tren berlangsung untuk jangka waktu yang lama, Supertrend mungkin gagal. Dalam hal ini, periode atau ATR multiplier saluran harus ditingkatkan dengan tepat.

Selain itu, Fisher Transform cenderung menghasilkan sinyal palsu atau sinyal prematur dengan mudah.

Selain itu, tingkat kemenangan keseluruhan dari strategi pembalikan mungkin terbatas. Ini harus dikombinasikan dengan indikator trend berikut untuk menghindari membuka posisi di zona rentang atau berpartisipasi setelah tren menjadi lebih jelas. moving average dapat ditambahkan sebagai filter untuk meningkatkan stabilitas.

Arah Peningkatan

Strategi dapat ditingkatkan dari aspek berikut:

  1. Mengoptimalkan periode ATR dan pengganda ATR dari Supertrend untuk kombinasi parameter terbaik berdasarkan produk dan kondisi pasar yang berbeda.

  2. Mengoptimalkan periode Fisher untuk meluruskan kurva dan mencegah sinyal palsu.

  3. Tambahkan Moving Averages atau Bollinger Bands sebagai indikator tambahan untuk menghindari pembukaan posisi di pasar berkisar.

  4. Gabungkan Fisher Transform pada kerangka waktu yang berbeda untuk mencapai penilaian pembalikan yang lebih stabil.

  5. Tambahkan modul manajemen posisi seperti rasio leverage, ukuran posisi, aturan tambahan, dll untuk mengendalikan risiko.

  6. Menggabungkan metode pembelajaran mesin untuk mencapai optimasi parameter otomatis dan penyesuaian strategi.

Kesimpulan

Strategi ini mengintegrasikan Supertrend dan Fisher Transform dengan fleksibilitas untuk beradaptasi dengan produk yang berbeda dengan penyesuaian parameter, dibandingkan dengan strategi indikator tunggal. Ini mencapai penilaian sinyal yang lebih andal dan pengendalian risiko. Dengan peningkatan terus-menerus, strategi ini menjanjikan untuk meningkatkan stabilitas dan profitabilitas. Ini adalah strategi berkualitas tinggi yang layak dilacak dan akumulasi jangka panjang.


/*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)


Lebih banyak