
Strategi ini digabungkan dengan penggunaan indikator supertrend dan pertukaran Fisher untuk mencari peluang short shorting ketika pasaran berbalik. Ia boleh digunakan untuk pelbagai mata wang kripto, saham dan pasaran dengan menyesuaikan parameter supertrend dan pertukaran Fisher. Ia menunjukkan saiz pegangan dan titik berhenti dan tahap keuntungan apabila isyarat jual muncul.
Strategi ini mula-mula mengira perubahan Fibonacci selama 10 kitaran. Ia menghasilkan isyarat jual apabila garis perubahan Fibonacci melangkaui 2.5 dari titik rendah ke atas. Pada masa yang sama, ia mengira purata gelombang sebenar selama 10 kitaran sebagai saluran supertrend.
Khususnya, ia mengira harga penutupan K-baris semasa di bawah laluan super pada kitaran sebelumnya, dan ketika kitaran sebelumnya berada di atas laluan bawah, ia dinilai sebagai pembalikan pasaran, menghasilkan isyarat jual. Pada masa yang sama, mengira indikator perubahan harga, apabila garis perubahan harga melangkaui 2.5 dari paras rendah, dan nilai perubahan harga pada kitaran sebelumnya adalah lebih rendah daripada nilai semasa, ia dinilai sebagai pembalikan trend, menghasilkan isyarat jual.
Oleh itu, strategi ini perlu memenuhi kedua-dua syarat untuk menentukan pembalikan pasaran dalam supertrend dan pembalikan trend dalam perpindahan Fisher untuk menghasilkan isyarat jual akhir.
Strategi ini digabungkan dengan saluran supertrend dan indikator perpindahan Fischer, yang dapat menangkap titik-titik perubahan pasaran dengan lebih tepat. Ia dapat mengurangkan isyarat palsu, dan dengan itu meningkatkan kestabilan strategi, berbanding dengan menggunakan supertrend atau perpindahan Fischer sahaja.
Di samping itu, strategi ini memberikan fleksibiliti untuk menyesuaikan saluran super trend dan parameter pertukaran Fisher. Pengguna boleh memilih kombinasi parameter yang paling sesuai untuk pasaran dan varieti yang berbeza, sehingga sesuai dengan pasaran. Ini adalah strategi yang boleh disesuaikan dan dioptimumkan.
Strategi ini juga menyediakan pengurusan jumlah risiko. Pengguna boleh menyesuaikan jumlah modal risiko setiap satu dengan mudah untuk memenuhi keperluan pengurusan risiko mereka sendiri. Pada masa yang sama, ia juga secara automatik mengira titik berhenti dan sasaran keuntungan, yang dapat mencapai kadar pulangan risiko yang lebih baik.
Strategi ini bergantung kepada saluran supertrend untuk menilai struktur pasaran. Apabila trend berlangsung lebih lama, saluran super mungkin tidak berfungsi. Dalam kes ini, parameter kitaran saluran atau kelipatan ATR harus diperbesar dengan sewajarnya.
Di samping itu, pertukaran fesyen lebih mudah menghasilkan isyarat yang salah atau isyarat awal. Apabila pasaran bergolak besar, parameter kitaran pertukaran fesyen harus disesuaikan dengan betul, menyaring sebahagian daripada kebisingan.
Di samping itu, kemenangan keseluruhan strategi pembalikan kategori mungkin agak terhad. Ia harus digabungkan dengan petunjuk trend, mengelakkan membuka kedudukan di antara zona goyah, atau mengambil bahagian selepas trend menjadi lebih jelas.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Mengoptimumkan jumlah kitaran ATR dan kelipatan ATR untuk saluran super trend, memilih kombinasi parameter terbaik untuk pelbagai jenis dan keadaan pasaran
Optimumkan parameter kitaran perubahan FeS, meredam kebisingan kurva, dan mengelakkan isyarat yang salah
Menambah purata bergerak atau Brinks sebagai penyokong untuk mengelakkan pasaran yang bergolak
Pengubahsuaian fisheye dengan tempoh masa yang berbeza untuk membuat penghakiman balik yang lebih stabil dan boleh dipercayai
Menambah modul pengurusan kedudukan, seperti kadar leverage, bilangan kedudukan, peraturan kenaikan kedudukan, dan lain-lain, untuk mengawal risiko
Menggabungkan kaedah seperti pembelajaran mesin untuk mengoptimumkan parameter secara automatik dan penyesuaian strategi
Strategi ini menggabungkan supertrend dan indikator pertukaran Fisher, mempunyai beberapa fleksibiliti dalam menilai pembalikan pasaran, dan dapat disesuaikan dengan pelbagai jenis melalui parameter. Berbanding dengan satu indikator, ia mewujudkan penilaian isyarat dan kawalan risiko yang lebih dipercayai. Dengan pengoptimuman berterusan, strategi ini dijangka meningkatkan kestabilan dan meningkatkan keuntungan.
/*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)