Fibonacci Moving Averages Input strategi adalah berdasarkan kepada pergerakan purata crossover atau crossunder isyarat untuk menjana isyarat perdagangan. Apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, isyarat melintasi emas bullish dihasilkan. Apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang, isyarat melintasi kematian menurun dihasilkan. purata bergerak yang biasa digunakan adalah purata bergerak 50 hari dan 200 hari.
Strategi Fibonacci Moving Averages Input (FibMAI) membolehkan anda memilih mana-mana nilai untuk salib bullish atau bearish anda. Untuk paparan visual, saya telah memetakan purata bergerak Fibonacci termasuk 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 sambil menyembunyikan lilin. Tetapi untuk menggunakan penunjuk ini, saya hanya membolehkan beberapa MA
Sebagai contoh, input tetapan panjang atau pendek untuk carta hari NQ1 ini adalah:
Bullish = FibEMA34 crossover FibEMA144
Bearish = FibEMA55 crossunder FibSMA144
Seperti yang anda lihat, anda boleh mencampurkan dan memadankan 4 nilai MA yang berbeza, sama ada Eksponensial atau Mudah.
Tetapan warna lalai: Nilai meningkat = warna hijau Nilai jatuh = warna merah
Tetapan Visual FibMA lalai: FibEMA 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181
Tetapan Visual MA lalai: SMA 50, 100, 150, 200
Tetapan lalai: Bullish = FibEMA34 crossover FibEMA144
Bearish = FibEMA55 crossunder FibSMA144
Logik teras strategi ini adalah berdasarkan isyarat silang antara dua purata bergerak untuk menjana isyarat perdagangan.
Purata bergerak adalah penunjuk teknikal yang digunakan untuk menganalisis trend pasaran. Mereka mengira harga penutupan purata dalam tempoh tertentu dan dapat menapis turun naik pasaran dengan berkesan. Terdapat dua jenis purata bergerak - Purata bergerak mudah (SMA) dan Purata bergerak eksponen (EMA).
SMA adalah purata aritmetik sederhana harga penutupan dalam tempoh tertentu. EMA menggunakan penyelarasan eksponensial pada harga penutupan, memberikan lebih banyak berat kepada harga baru-baru ini. EMA bertindak balas lebih cepat terhadap perubahan harga.
Apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, ia menandakan perubahan trend menaik dan menghasilkan isyarat beli. Ini dipanggil salib emas. Sebaliknya, apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang, ia menandakan perubahan trend menurun dan menghasilkan isyarat jual. Ini dipanggil salib kematian.
Fleksibiliti strategi ini terletak pada keupayaan untuk menetapkan parameter untuk 4 purata bergerak secara manual. Parameter lalai adalah EMA 34-periode melintasi di atas EMA 144 tempoh untuk isyarat kenaikan, dan SMA 55-periode melintasi di bawah EMA 144 tempoh untuk isyarat penurunan. Parameter ini boleh disesuaikan secara bebas dalam kotak input.
Di samping itu, strategi ini memetakan pelbagai purata bergerak urutan Fibonacci merentasi jangka masa yang berbeza. purata bergerak biasa seperti 50 hari, 100 hari, 150 hari dan 200 hari juga dipetakan. Ini berfungsi sebagai rujukan, sementara kuncinya adalah purata bergerak silang yang dimasukkan dalam tetapan Panjang / Pendek.
Kelebihan strategi crossover purata bergerak ini termasuk:
Menggunakan purata bergerak menapis bunyi pasaran dan mengenal pasti arah trend
Isyarat silang mempunyai tahap kebolehpercayaan tertentu
Kombinasi purata bergerak panjang dan pendek yang boleh disesuaikan untuk pengoptimuman parameter
Menggabungkan pelbagai jangka masa untuk mengenal pasti trend
Boleh menggunakan kedua-dua EMA dan SMA berdasarkan ciri instrumen
Secara visual intuitif dengan salib purata bergerak berwarna
Mudah difahami dan sesuai untuk pemula
Fleksibel digunakan di instrument yang berbeza dengan universaliti
Terdapat juga beberapa risiko untuk strategi ini:
Terlalu banyak isyarat whipsaw semasa pasaran yang bergolak, yang membawa kepada perdagangan berlebihan
Isyarat yang salah jika kombinasi purata bergerak yang tidak sesuai digunakan
Lag dalam isyarat semasa pembalikan trend yang melampau, tidak dapat mencerminkan perubahan harga dalam masa
Pembebasan purata bergerak tidak sepenuhnya mengelakkan kerugian, memerlukan kerugian berhenti yang munasabah
Parameter perlu kukuh merentasi kitaran pasaran.
Parameter mungkin perlu disesuaikan dengan baik untuk instrumen yang berbeza
Beberapa cara untuk mengoptimumkan strategi ini:
Uji gabungan purata bergerak panjang dan pendek yang berbeza untuk mencari parameter optimum menggunakan backtesting
Cuba menyesuaikan jenis purata bergerak, bandingkan prestasi SMA dan EMA. Gunakan SMA untuk instrumen dengan trend yang lebih jelas, dan EMA untuk instrumen yang lebih tidak menentu.
Menggabungkan penunjuk lain seperti KDJ, MACD untuk menapis isyarat palsu dan meningkatkan kualiti
Tambah strategi stop loss untuk mengawal kerugian pada dagangan tunggal, seperti penangguhan stop loss
Mengoptimumkan strategi pengurusan wang, seperti menyesuaikan saiz kedudukan berdasarkan pengeluaran
Kestabilan parameter ujian di instrument dan jangka masa yang berbeza untuk menilai ketahanan
Secara keseluruhannya, strategi Masukan Purata Bergerak Fibonacci adalah sistem trend yang boleh dipercayai. Ia menggunakan salib purata bergerak yang mudah dan intuitif untuk isyarat perdagangan, dan boleh disesuaikan dengan instrumen yang berbeza melalui pengoptimuman parameter. Dengan pengendalian stop loss dan wang yang betul, risiko dapat dikawal. Pengoptimuman berlebihan dan isyarat pembalikan trend yang tertinggal harus dielakkan. Dengan parameter yang dipilih dengan baik dan disiplin perdagangan, ini boleh menjadi strategi menghasilkan keuntungan yang cekap dan stabil.
/*backtest start: 2022-10-25 00:00:00 end: 2023-10-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Options360 : Fibonacci MAI (Moving Averages Input) beta 10/15/22 // © Options360 original public release = 2/25/23 // * This script uses altered pieces of code from my @Options360 "Fibonacci MA7" indicator* // 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811 //// strategy(title="Fibonacci Moving Averages Input", shorttitle = "FibMAI", overlay=true) src = input(ohlc4, 'source') // string GRP = "Long or Short Settings" exponential1 = input(true, title="long EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP) long = input.int(34, minval=1, title="long", tooltip="Signal Moving average long input") long1 = exponential1 ? ta.ema(src, long) : ta.sma(src, long) exponential2 = input(true, title="crossover EMA or SMA", tooltip="EMA checked or SMA unchecked") longer = input.int(144, minval=1, title="crossover", tooltip="Crossed over Moving average long input") long2 = exponential2 ? ta.ema(src, longer) : ta.sma(src, longer) exponential3 = input(true, title="short EMA or SMA", tooltip="EMA checked or SMA unchecked") short = input.int(55, minval=1, title="short", tooltip="Signal Moving average short input") short1 = exponential3 ? ta.ema(src, short) : ta.sma(src, short) exponential4 = input(false, title="crossunder EMA or SMA", tooltip="EMA checked or SMA unchecked") shorter = input.int(144, minval=1, title="crossunder", tooltip="Crossed under Moving average short input") short2 = exponential4 ? ta.ema(src, shorter) : ta.sma(src, shorter) // string GRP2 = "Visual FibMA Settings" exponential = input(true, title="Fib EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP2) // smaplot11 = input (true, title="MA1") len11 = input.int(1, minval=1, title="ma Length") out11 = exponential ? ta.ema(src, len11) : ta.sma(src, len11) up11 = out11 > out11[1] down11 = out11 < out11[1] mycolor11 = up11 ? #3cfe12 : down11 ? #ff0202 : #008eff plot(out11 and smaplot11 ? out11 :na, title="1", color=mycolor11, linewidth=1) smaplot18 = input (true, title="MA2") len18 = input.int(2, minval=1, title="ma Length") out18 = exponential ? ta.ema(src, len18) : ta.sma(src, len18) up18 = out18 > out18[1] down18 = out18 < out18[1] mycolor18 = up18 ? #3cfe12 : down18 ? #ff0202 : #008eff plot(out18 and smaplot18 ? out18 :na , title="2", color=mycolor18, linewidth=1) smaplot13 = input (true, title="MA3") len13 = input.int(3, minval=1, title="ma Length") out13 = exponential ? ta.ema(src, len13) : ta.sma(src, len13) up13 = out13 > out13[1] down13 = out13 < out13[1] mycolor13 = up13 ? #3cfe12 : down13 ? #ff0202 : #008eff plot(out13 and smaplot13 ? out13 :na , title="3", color=mycolor11, linewidth=1) smaplot9 = input (true, title="MA5") len9 = input.int(5, minval=1, title="ma Length") out9 = exponential ? ta.ema(src, len9) : ta.sma(src, len9) up9 = out9 > out9[1] down9 = out9 < out9[1] mycolor9 = up9 ? #3cfe12 : down9 ? #ff0202 : #008eff plot(out9 and smaplot9 ? out9 :na , title="5", color=mycolor9, linewidth=1) smaplot8 = input (true, title="MA8") len8 = input.int(8, minval=1, title="ma Length") out8 = exponential ? ta.ema(src, len8) : ta.sma(src, len8) up8 = out8 > out8[1] down8 = out8 < out8[1] mycolor8 = up8 ? #3cfe12 : down8 ? #ff0202 : #008eff plot(out8 and smaplot8 ? out8 :na , title="8", color=mycolor8, linewidth=1) smaplot7 = input (true, title="MA13") len7 = input.int(13, minval=1, title="ma Length") out7 = exponential ? ta.ema(src, len7) : ta.sma(src, len7) up7 = out7 > out7[1] down7 = out7 < out7[1] mycolor7 = up7 ? #3cfe12 : down7 ? #ff0202 : #008eff plot(out7 and smaplot7 ? out7 :na , title="13", color=mycolor7, linewidth=1) smaplot = input (true, title="MA21") len = input.int(21, minval=1, title="ma Length") out = exponential ? ta.ema(src, len) : ta.sma(src, len) up = out > out[1] down = out < out[1] mycolor = up ? #3cfe12 : down ? #ff0202 : #008eff plot(out and smaplot ? out :na, title="21", color=mycolor, linewidth=1) smaplot2 = input (true, title="MA34") len2 = input.int(34, minval=1, title="ma Length") out2 = exponential ? ta.ema(src, len2) : ta.sma(src, len2) up2 = out2 > out2[1] down2 = out2 < out2[1] mycolor2 = up2 ? #3cfe12 : down2 ? #ff0202 : #008eff plot(out2 and smaplot2 ? out2 :na , title="34", color=mycolor2, linewidth=1) smaplot3 = input (true, title="MA55") len3 = input.int(55, minval=1, title="ma Length") out3 = exponential ? ta.ema(src, len3) : ta.sma(src, len3) up3 = out3 > out3[1] down3 = out3 < out3[1] mycolor3 = up3 ? #3cfe12 : down3 ? #ff0202 : #008eff plot(out3 and smaplot3 ? out3 :na, title="55", color=mycolor3, linewidth=1) smaplot4 = input (true, title="MA89") len4 = input.int(89, minval=1, title="ma Length") out4 = exponential ? ta.ema(src, len4) : ta.sma(src, len4) up4 = out4 > out4[1] down4 = out4 < out4[1] mycolor4 = up4 ? #3cfe12 : down4 ? #ff0202 : #008eff plot(out4 and smaplot4 ? out4 :na , title="89", color=mycolor4, linewidth=1) smaplot5 = input (true, title="MA144") len5 = input.int(144, minval=1, title="ma Length") out5 = exponential ? ta.ema(src, len5) : ta.sma(src, len5) up5 = out5 > out5[1] down5 = out5 < out5[1] mycolor5 = up5 ? #3cfe12 : down5 ? #ff0202 : #008eff plot(out5 and smaplot5 ? out5 :na, title="144", color=mycolor5, linewidth=1) smaplot6 = input (true, title="MA233") len6 = input.int(233, minval=1, title="ma Length") out6 = exponential ? ta.ema(src, len6) : ta.sma(src, len6) up6 = out6 > out6[1] down6 = out6 < out6[1] mycolor6 = up6 ? #3cfe12 : down6 ? #ff0202 : #008eff plot(out6 and smaplot6 ? out6 :na , title="233", color=mycolor6, linewidth=1) smaplot10 = input (true, title="MA377") len10 = input.int(377, minval=1, title="ma Length") out10 = exponential ? ta.ema(src, len10) : ta.sma(src, len10) up10 = out10 > out10[1] down10 = out10 < out10[1] mycolor10 = up10 ? #3cfe12 : down10 ? #ff0202 : #008eff plot(out10 and smaplot10 ? out10 :na , title="377", color=mycolor10, linewidth=1) smaplot14 = input (true, title="MA610") len14 = input.int(610, minval=1, title="ma Length") out14 = exponential ? ta.ema(src, len14) : ta.sma(src, len14) up14 = out14 > out14[1] down14 = out14 < out14[1] mycolor14 = up14 ? #3cfe12 : down14 ? #ff0202 : #008eff plot(out14 and smaplot14 ? out14 :na , title="610", color=mycolor14, linewidth=1) smaplot15 = input (true, title="MA987") len15 = input.int(987, minval=1, title="ma Length") out15 = exponential ? ta.ema(src, len15) : ta.sma(src, len15) up15 = out15 > out15[1] down15 = out15 < out15[1] mycolor15 = up15 ? #3cfe12 : down15 ? #ff0202 : #008eff plot(out15 and smaplot15 ? out15 :na , title="987", color=mycolor15, linewidth=1) smaplot16 = input (true, title="MA1597") len16 = input.int(1597, minval=1, title="ma Length") out16 = exponential ? ta.ema(src, len16) : ta.sma(src, len16) up16 = out16 > out16[1] down16 = out16 < out16[1] mycolor16 = up16 ? #3cfe12 : down16 ? #ff0202 : #008eff plot(out16 and smaplot16 ? out16 :na , title="1597", color=mycolor16, linewidth=1) smaplot17 = input (true, title="MA2584") len17 = input.int(2584, minval=1, title="ma Length") out17 = exponential ? ta.ema(src, len17) : ta.sma(src, len17) up17 = out17 > out17[1] down17 = out17 < out17[1] mycolor17 = up17 ? #3cfe12 : down17 ? #ff0202 : #008eff plot(out17 and smaplot17 ? out17 :na , title="2584", color=mycolor17, linewidth=1) smaplot19 = input (true, title="MA4181") len19 = input.int(4181, minval=1, title="ma Length") out19 = exponential ? ta.ema(src, len19) : ta.sma(src, len19) up19 = out19 > out19[1] down19 = out19 < out19[1] mycolor19 = up19 ? #3cfe12 : down19 ? #ff0202 : #008eff plot(out19 and smaplot19 ? out19 :na , title="4181", color=mycolor19, linewidth=1) // string GRP3 = "Visual MA Settings" exponential5 = input(false, title="EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP3) smaplot50 = input (true, title="MA50") len50 = input.int(50, minval=1, title="ma Length") ma50 = exponential5 ? ta.ema(src, len50) : ta.sma(src, len50) up50 = ma50 > ma50[1] down50 = ma50 < ma50[1] mycolor50 = up50 ? #3cfe12 : down50 ? #ff0202 : #008eff plot(ma50 and smaplot50 ? ma50 :na , title="50", color=mycolor50, linewidth=1) smaplot100 = input (true, title="MA100") len100 = input.int(100, minval=1, title="ma Length") ma100 = exponential5 ? ta.ema(src, len100) : ta.sma(src, len100) up100 = ma100 > ma100[1] down100 = ma100 < ma100[1] mycolor100 = up100 ? #3cfe12 : down100 ? #ff0202 : #008eff plot(ma100 and smaplot100 ? ma100 :na , title="100", color=mycolor100, linewidth=1) smaplot150 = input (true, title="MA150") len150 = input.int(150, minval=1, title="ma Length") ma150 = exponential5 ? ta.ema(src, len150) : ta.sma(src, len150) up150 = ma150 > ma150[1] down150 = ma150 < ma150[1] mycolor150 = up150 ? #3cfe12 : down150 ? #ff0202 : #008eff plot(ma150 and smaplot150 ? ma150 :na , title="150", color=mycolor150, linewidth=1) smaplot200 = input (true, title="MA200") len200 = input.int(200, minval=1, title="ma Length") ma200 = exponential5 ? ta.ema(src, len200) : ta.sma(src, len200) up200 = ma200 > ma200[1] down200 = ma200 < ma200[1] mycolor200 = up200 ? #3cfe12 : down200 ? #ff0202 : #008eff plot(ma200 and smaplot200 ? ma200 :na , title="200", color=mycolor200, linewidth=1) // if (ta.crossover(long1, long2)) strategy.entry("maL", strategy.long, comment="maLong") if (ta.crossunder(short1, short2)) strategy.entry("maS", strategy.short, comment="maShort") ////