Strategi Fibonacci Moving Averages Input didasarkan pada sinyal crossover rata-rata bergerak atau crossunder untuk menghasilkan sinyal perdagangan. Ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, sinyal silang emas bullish dihasilkan. Ketika rata-rata bergerak jangka pendek melintasi di bawah rata-rata bergerak jangka panjang, sinyal silang kematian menurun dihasilkan. Rata-rata bergerak yang umum digunakan adalah rata-rata bergerak 50 hari dan 200 hari.
Strategi Fibonacci Moving Averages Input (FibMAI) memungkinkan Anda memilih nilai apa pun untuk persilangan bullish atau bearish Anda. Untuk tampilan visual, saya telah memetakan rata-rata bergerak Fibonacci termasuk 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 sambil menyembunyikan lilin. Tetapi untuk menggunakan indikator ini, saya hanya memungkinkan beberapa MA
Misalnya, input pengaturan panjang atau pendek untuk grafik hari NQ1 ini adalah:
Bullish = FibEMA34 crossover FibEMA144
Bearish = FibEMA55 crossunder FibSMA144
Seperti yang Anda lihat, Anda dapat mencampur dan mencocokkan 4 nilai MA yang berbeda, baik eksponensial atau sederhana.
Pengaturan warna default: Nilai meningkat = warna hijau Nilai jatuh = warna merah
Pengaturan Visual FibMA default: FibEMA 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181
Pengaturan Visual MA default: SMA 50, 100, 150, 200
Pengaturan Default Panjang atau Pendek: Bullish = FibEMA34 crossover FibEMA144
Bearish = FibEMA55 crossunder FibSMA144
Logika inti dari strategi ini didasarkan pada sinyal silang antara dua rata-rata bergerak untuk menghasilkan sinyal perdagangan.
Moving average adalah indikator teknis yang digunakan untuk menganalisis tren pasar. Mereka menghitung harga penutupan rata-rata selama periode tertentu dan dapat secara efektif menyaring fluktuasi pasar. Ada dua jenis moving average - Simple Moving Average (SMA) dan Exponential Moving Average (EMA).
SMA adalah rata-rata aritmatika sederhana dari harga penutupan selama periode tertentu. EMA menerapkan perataan eksponensial pada harga penutupan, memberikan lebih banyak bobot pada harga terbaru. EMA bereaksi lebih cepat terhadap perubahan harga.
Ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, itu menandakan perubahan tren bullish dan menghasilkan sinyal beli. Ini disebut
Fleksibilitas strategi ini terletak pada kemampuan untuk mengatur parameter untuk 4 moving average secara manual. Parameter default adalah EMA 34 periode melintasi di atas EMA 144 periode untuk sinyal bullish, dan SMA 55 periode melintasi di bawah EMA 144 periode untuk sinyal bearish. Parameter ini dapat diatur secara bebas di kotak input.
Selain itu, strategi ini memetakan beberapa rata-rata bergerak urutan Fibonacci di berbagai kerangka waktu. rata-rata bergerak umum seperti 50 hari, 100 hari, 150 hari dan 200 hari juga dipetakan. Ini berfungsi sebagai referensi, sementara kuncinya adalah rata-rata bergerak silang yang dimasukkan dalam pengaturan Long / Short.
Keuntungan dari strategi crossover rata-rata bergerak ini meliputi:
Menggunakan rata-rata bergerak menyaring kebisingan pasar dan mengidentifikasi arah tren
Sinyal silang memiliki tingkat keandalan tertentu
Kombinasi rata-rata bergerak panjang dan pendek yang dapat disesuaikan untuk optimasi parameter
Menggabungkan beberapa kerangka waktu untuk mengidentifikasi tren
Dapat menggunakan EMA dan SMA berdasarkan karakteristik instrumen
Secara visual intuitif dengan silang rata-rata bergerak berwarna
Mudah dimengerti dan cocok untuk pemula
Fleksibel diterapkan di berbagai instrumen dengan universalitas
Ada juga beberapa risiko untuk strategi ini:
Terlalu banyak sinyal whipsaw selama pasar bergolak, menyebabkan perdagangan berlebihan
Sinyal yang salah jika kombinasi rata-rata bergerak yang tidak cocok digunakan
Lag dalam sinyal selama pembalikan tren yang ekstrim, tidak dapat mencerminkan perubahan harga dalam waktu
Pembebasan rata-rata bergerak tidak sepenuhnya menghindari kerugian, membutuhkan stop loss yang wajar
Parameter harus kuat di seluruh siklus pasar.
Parameter mungkin perlu disesuaikan untuk instrumen yang berbeda
Beberapa cara untuk mengoptimalkan strategi ini:
Uji kombinasi rata-rata bergerak panjang dan pendek yang berbeda untuk menemukan parameter optimal menggunakan backtesting
Cobalah menyesuaikan jenis rata-rata bergerak, bandingkan kinerja SMA dan EMA. Gunakan SMA untuk instrumen dengan tren yang lebih jelas, dan EMA untuk instrumen yang lebih fluktuatif.
Menggabungkan indikator lain seperti KDJ, MACD untuk menyaring sinyal palsu dan meningkatkan kualitas
Tambahkan strategi stop loss untuk mengendalikan kerugian pada perdagangan tunggal, seperti trailing stop loss
Mengoptimalkan strategi manajemen uang, seperti menyesuaikan ukuran posisi berdasarkan penarikan
Stabilitas parameter uji di berbagai instrumen dan kerangka waktu untuk mengevaluasi ketahanan
Secara keseluruhan, strategi Fibonacci Moving Averages Input adalah sistem trend berikut yang dapat diandalkan. Ini menggunakan penyeberangan rata-rata bergerak yang sederhana dan intuitif untuk sinyal perdagangan, dan dapat disesuaikan dengan instrumen yang berbeda melalui optimasi parameter. Dengan stop loss dan manajemen uang yang tepat, risiko dapat dikendalikan. Over-optimasi dan sinyal pembalikan tren yang tertinggal harus dihindari. Dengan parameter yang dipilih dengan baik dan disiplin perdagangan, ini dapat menjadi strategi menghasilkan keuntungan yang efisien 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") ////