Fibonacci Moving Averages Strategi Masukan

Penulis:ChaoZhang, Tanggal: 2023-11-01 16:42:41
Tag:

img

Gambaran umum

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 untuk memeriksa apakah ada pola crossover atau crossunder yang mencolok, kemudian backtest nilai-nilai tersebut ke dalam input pengaturan Long atau Short strategi FibMAI.

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

Prinsip

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 golden cross. Sebaliknya, ketika rata-rata bergerak jangka pendek melintasi di bawah rata-rata bergerak jangka panjang, itu menandakan perubahan tren bearish dan menghasilkan sinyal jual. Ini disebut death cross.

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

Keuntungan dari strategi crossover rata-rata bergerak ini meliputi:

  1. Menggunakan rata-rata bergerak menyaring kebisingan pasar dan mengidentifikasi arah tren

  2. Sinyal silang memiliki tingkat keandalan tertentu

  3. Kombinasi rata-rata bergerak panjang dan pendek yang dapat disesuaikan untuk optimasi parameter

  4. Menggabungkan beberapa kerangka waktu untuk mengidentifikasi tren

  5. Dapat menggunakan EMA dan SMA berdasarkan karakteristik instrumen

  6. Secara visual intuitif dengan silang rata-rata bergerak berwarna

  7. Mudah dimengerti dan cocok untuk pemula

  8. Fleksibel diterapkan di berbagai instrumen dengan universalitas

Risiko

Ada juga beberapa risiko untuk strategi ini:

  1. Terlalu banyak sinyal whipsaw selama pasar bergolak, menyebabkan perdagangan berlebihan

  2. Sinyal yang salah jika kombinasi rata-rata bergerak yang tidak cocok digunakan

  3. Lag dalam sinyal selama pembalikan tren yang ekstrim, tidak dapat mencerminkan perubahan harga dalam waktu

  4. Pembebasan rata-rata bergerak tidak sepenuhnya menghindari kerugian, membutuhkan stop loss yang wajar

  5. Parameter harus kuat di seluruh siklus pasar.

  6. Parameter mungkin perlu disesuaikan untuk instrumen yang berbeda

Arahan Optimasi

Beberapa cara untuk mengoptimalkan strategi ini:

  1. Uji kombinasi rata-rata bergerak panjang dan pendek yang berbeda untuk menemukan parameter optimal menggunakan backtesting

  2. 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.

  3. Menggabungkan indikator lain seperti KDJ, MACD untuk menyaring sinyal palsu dan meningkatkan kualitas

  4. Tambahkan strategi stop loss untuk mengendalikan kerugian pada perdagangan tunggal, seperti trailing stop loss

  5. Mengoptimalkan strategi manajemen uang, seperti menyesuaikan ukuran posisi berdasarkan penarikan

  6. Stabilitas parameter uji di berbagai instrumen dan kerangka waktu untuk mengevaluasi ketahanan

Kesimpulan

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

Lebih banyak