Strategi ini menggabungkan indikator SuperTrend dan Fisher Transform untuk menerapkan tren yang relatif stabil setelah strategi perdagangan jangka panjang. Ini menghasilkan sinyal beli ketika indikator SuperTrend memberikan sinyal beli dan indikator Fisher Transform turun di bawah -2,5 dan naik. Strategi ini mengelola posisi dengan benar dengan stop loss dan take profit.
Indikator SuperTrend digunakan untuk menentukan arah tren harga. Ketika harga melintasi band atas, itu adalah sinyal bullish; ketika harga melintasi band bawah, itu adalah sinyal bearish. Strategi ini mengeluarkan sinyal beli ketika SuperTrend bullish.
Indikator Fisher Transform mencerminkan dampak fluktuasi harga pada psikologi konsumen. Nilai Fisher antara (-2.5, 2.5) mewakili pasar netral, di bawah -2.5 mewakili pasar panik, dan di atas 2.5 mewakili pasar euforia. Strategi ini mengeluarkan sinyal beli ketika Fisher berada di bawah -2.5 dan naik, untuk menangkap titik balik dari panik menjadi netral.
Strategi ini mengelola posisi dengan benar dengan stop loss dan take profit. Stop loss ditetapkan pada harga masuk dikurangi nilai ATR dikalikan dengan pengganda ATR, dan take profit ditetapkan pada harga masuk ditambah nilai ATR dikalikan dengan pengganda ATR. Amplitudo stop loss lebih besar dari amplitudo take profit, mencerminkan gagasan pengendalian risiko dari strategi tren berikut.
Menghitung ukuran posisi berdasarkan ATR dan jumlah risiko sehingga risiko per unit tidak melebihi jumlah risiko yang ditetapkan.
Menggabungkan beberapa indikator menghindari perdagangan yang sering disebabkan oleh satu indikator. SuperTrend menentukan arah tren dan Fisher Transform menentukan psikologi pasar untuk membentuk sinyal perdagangan yang stabil.
Menetapkan stop loss dan take profit yang tepat dapat membantu menangkap tren kepemilikan jangka panjang, sekaligus mengendalikan risiko.
Menggunakan manajemen jumlah risiko dan ukuran tik minimum membuat risiko setiap perdagangan terkendali, menghindari kerugian besar di luar kemampuan.
Sinyal perdagangan stabil dan cocok untuk memegang jangka panjang. Fisher Transform adalah indikator yang mulus, yang membantu menyaring kebisingan pasar dan menghindari sinyal palsu.
Ruang pengoptimalan yang besar untuk parameter indikator. Periode ATR dan pengganda SuperTrend, dan kelancaran Fisher dapat disesuaikan sesuai dengan produk dan kerangka waktu yang berbeda untuk menemukan kombinasi parameter yang optimal.
Sebagai strategi yang mengikuti tren, ia akan mengumpulkan kerugian kecil selama periode yang terbatas pada kisaran.
Fisher Transform tidak efektif untuk situasi ekstrem. Ketika pasar tetap dalam satu keadaan untuk waktu yang lama, nilai Fisher akan terus menyimpang dari zona netral, dalam hal ini strategi harus ditangguhkan.
Periode ATR dan pengganda ATR harus diatur secara wajar untuk memastikan penyangga yang cukup untuk stop loss.
Mengabaikan biaya transaksi akan menyebabkan perdagangan yang menguntungkan kehilangan uang. Biaya transaksi produk harus dipertimbangkan dan mengambil keuntungan yang disesuaikan.
Ini membutuhkan partisipasi pasar jangka panjang untuk strategi untuk mewujudkan keuntungannya.
Sesuaikan periode ATR, multiplier ATR untuk mengoptimalkan stop loss dan take profit.
Cobalah parameter Fisher yang berbeda seperti periode halus untuk menemukan sinyal perdagangan yang lebih stabil.
Tambahkan indikator lain sebagai filter untuk menghindari perdagangan yang salah ketika pasar tidak pasti.
Uji strategi mengambil keuntungan yang berbeda seperti bergerak, parsial, ATR trailing, dll untuk meningkatkan profitabilitas.
Mengoptimalkan strategi manajemen modal seperti pecahan tetap, rumus Kelly dll untuk meningkatkan rasio pengembalian / risiko.
Optimalkan biaya transaksi, tetap menguntungkan untuk posisi kecil.
Strategi ini mengintegrasikan keuntungan dari SuperTrend, Fisher Transform dan indikator lain untuk membentuk tren yang stabil setelah strategi perdagangan jangka panjang. Melalui stop loss, take profit dan manajemen risiko, dapat mencapai rasio imbalan risiko yang baik. Strategi ini membutuhkan optimasi lebih lanjut pada parameter, penyaringan sinyal, manajemen modal dll untuk meningkatkan kinerja praktis. Tetapi logika keseluruhan kuat dan layak verifikasi praktis dan optimasi terus-menerus. Jika mengelola mengambil keuntungan dan pola pikir risiko dengan benar, strategi memiliki potensi untuk mencapai pengembalian jangka panjang yang stabil.
/*backtest start: 2023-10-26 00:00:00 end: 2023-11-02 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend and Fisher_LONG", 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] // Buy condition for Fisher transformation. buy_signal = (fish1 < -2.5) and (fish1 > fish2) durum = 0 //just for the situation. if (buy_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 buySignal = trend == 1 and trend[1] == -1 and durum == 1 plotshape(buySignal, title='Buy Signal', location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) // 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 (buySignal) entryPrice := close atr1 := atr stopLoss := entryPrice - atr1 * Multiplier contracts := entryPrice / (entryPrice - stopLoss) * RiskAmount / entryPrice takeProfit := entryPrice + atr1 * Multiplier takeProfit2 := entryPrice + 2 * atr1 * Multiplier takeProfit3 := entryPrice + 3 * atr1 * Multiplier if (buySignal) strategy.entry("Buy", strategy.long, qty=contracts) // if (close <= stopLoss) strategy.close("Buy", comment="Stop Loss Hit") else if (close >= takeProfit) strategy.close("Buy", 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)