Strategi Mengikuti Tren Saluran Rata-rata Bergerak Tiga Kali Lipat


Tanggal Pembuatan: 2023-11-06 16:58:57 Akhirnya memodifikasi: 2023-11-06 16:58:57
menyalin: 0 Jumlah klik: 746
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Saluran Rata-rata Bergerak Tiga Kali Lipat

Daftar isi (Overview)

Strategi ini menggunakan tiga kombinasi rata-rata bergerak untuk menentukan arah tren berdasarkan hubungan urutan rata-rata bergerak, untuk memungkinkan pelacakan tren. Ketika rata-rata bergerak cepat, rata-rata bergerak menengah, dan rata-rata bergerak lambat diurutkan, lakukan lebih banyak; Ketika rata-rata bergerak lambat, rata-rata bergerak menengah, dan rata-rata bergerak cepat diurutkan, lakukan kosong.

Prinsip Strategi

Strategi ini menggunakan tiga rata-rata bergerak dari tiga periode yang berbeda, termasuk rata-rata bergerak cepat, rata-rata bergerak cepat dan rata-rata bergerak lambat.

Syarat masuk:

  1. Melakukan lebih banyak: Ketika Fast Moving Average > Medium Moving Average > Slow Moving Average, menganggap bahwa tren naik, lakukan lebih banyak.
  2. Downgrade: Ketika Moving Average Slow < Moving Average Medium < Moving Average Rapid, menganggap bahwa pasar berada dalam tren menurun, melakukan Downgrade.

Kondisi untuk bermain:

  1. Moving Average: Tiga Moving Average berturut-turut terjadi pada posisi terbalik.
  2. Stop loss: menetapkan titik stop loss tetap, seperti stop loss sebesar 12%, stop loss sebesar 1%, dan posisi kosong setelah mencapai harga stop loss atau stop loss.

Strategi ini sederhana dan langsung, menggunakan tiga rata-rata bergerak untuk menentukan arah tren pasar, memungkinkan perdagangan yang mengikuti tren, sesuai dengan pasar yang lebih cenderung.

Analisis Keuntungan

  • Menggunakan tiga moving average untuk menilai tren, memfilter kebisingan pasar, dan mengidentifikasi arah tren.
  • Penggunaan rata-rata bergerak berkala yang berbeda dapat memberikan penilaian yang lebih akurat tentang titik-titik perubahan tren.
  • Menggabungkan indikator moving averages dengan stop loss yang tetap untuk mengelola risiko dana.
  • Strategi ini sederhana, intuitif, dan mudah dipahami.
  • Periode parameter rata-rata bergerak dapat dengan mudah dioptimalkan untuk menyesuaikan dengan situasi siklus yang berbeda.

Risiko dan Perbaikan

  • Dalam situasi siklus besar, rata-rata bergerak dapat menghasilkan lebih banyak kesalahan penilaian, yang menyebabkan kerugian yang tidak perlu.
  • Anda dapat mempertimbangkan untuk menambahkan indikator lain atau kondisi penyaringan untuk meningkatkan tingkat keuntungan.
  • Kombinasi parameter periodik rata-rata bergerak dapat dioptimalkan untuk kondisi pasar yang lebih luas.
  • Indikator ini dapat digabungkan dengan indikator trend yang kuat dan lemah untuk menghindari penurunan.
  • Anda dapat menambahkan stop loss otomatis untuk menghindari kerugian yang lebih besar.

Kesimpulannya

Triple Moving Average trend mengikuti strategi keseluruhan dengan jelas dan mudah dipahami, menggunakan moving average untuk membedakan arah tren, dan melakukan perdagangan mengikuti tren dengan mudah. Keuntungan dari strategi ini adalah mudah untuk diterapkan, dengan menyesuaikan parameter siklus moving average dapat disesuaikan dengan situasi siklus yang berbeda. Namun, ada juga risiko misjudgment tertentu, dapat dioptimalkan dengan menambahkan indikator atau kondisi lain, mengurangi kerugian yang tidak perlu, meningkatkan tingkat keuntungan strategi. Secara keseluruhan, strategi ini cocok untuk pemula yang tertarik untuk belajar dan berlatih.

Kode Sumber Strategi
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Jompatan

//@version=5
strategy('Strategy Triple Moving Average', overlay=true, initial_capital = 1000, commission_value=0.04, max_labels_count=200)

//INPUTS
mov_ave = input.string(defval="EMA", title='Moving Average type:', options= ["EMA", "SMA"])

period_1 = input.int(9,  title='Period 1', inline="1", group= "============== Moving Average Inputs ==============")
period_2 = input.int(21, title='Period 2', inline="2", group= "============== Moving Average Inputs ==============")
period_3 = input.int(50, title='Period 3', inline="3", group= "============== Moving Average Inputs ==============")

source_1 = input.source(close, title='Source 1', inline="1", group= "============== Moving Average Inputs ==============")
source_2 = input.source(close, title='Source 2', inline="2", group= "============== Moving Average Inputs ==============")
source_3 = input.source(close, title='Source 3', inline="3", group= "============== Moving Average Inputs ==============")


//EXIT CONDITIONS
exit_ma   = input.bool(true, title= "Exit by Moving average condition", group="================ EXIT CONDITIONS ================")
exit_TPSL = input.bool(false, title= "Exit by Take Profit and StopLoss", group="================ EXIT CONDITIONS ================")
TP        = input.int(12, title='Take Profit', step=1, group="================ EXIT CONDITIONS ================")
SL        = input.int(1, title='Stop Loss', step=1, group="================ EXIT CONDITIONS ================")
plot_TPSL = input.bool(false, title='Show TP/SL lines', group="================ EXIT CONDITIONS ================")


//Date filters
desde = input(defval= timestamp("01 Jan 2023 00:00 -3000"), title="From", inline="12", group= "============= DATE FILTERS =============")
hasta = input(defval= timestamp("01 Oct 2099 00:00 -3000"), title="To  ", inline="13", group= "============= DATE FILTERS =============")
enRango = true

//COMMENTS
//entry_long_comment  = input.string(defval=" ", title="Entry Long comment: ", inline="14", group="============= COMMENTS =============")
//exit_long_comment   = input.string(defval=" ", title="Exit Long comment:  ", inline="15", group="============= COMMENTS =============")
//entry_short_comment = input.string(defval=" ", title="Entry Short comment:", inline="16", group="============= COMMENTS =============")
//exit_short_comment  = input.string(defval=" ", title="Exit Short comment: ", inline="17", group="============= COMMENTS =============")

//============================================================

//Selecting Moving average type
ma1 = mov_ave == "EMA" ? ta.ema(source_1, period_1) : ta.sma(source_1, period_1)
ma2 = mov_ave == "EMA" ? ta.ema(source_2, period_2) : ta.sma(source_2, period_2)
ma3 = mov_ave == "EMA" ? ta.ema(source_3, period_3) : ta.sma(source_3, period_3)

//============================================================
//Entry Long condition: Grouped Moving average from: (ma fast > ma middle > ma slow)
long_condition = (ma1 > ma2) and (ma2 > ma3)

//Entry Short condition: Grouped Moving average from: (ma fast < ma middle < ma slow)
short_condition = (ma1 < ma2) and (ma2 < ma3)

//============================================================

cantidad       = strategy.equity / close
comprado_long  = strategy.position_size > 0
comprado_short = strategy.position_size < 0

var long_profit_price  = 0.0
var long_stop_price    = 0.0
var short_profit_price = 0.0
var short_stop_price   = 0.0

//============================================================

//ENTRY LONG
if not comprado_long and not comprado_short and long_condition and not long_condition[1] and enRango
    strategy.entry('Long', strategy.long, qty=cantidad, comment= "Entry Long")
    if exit_TPSL
        long_profit_price := close * (1 + TP/100)
        long_stop_price   := close * (1 - SL/100)
    else
        long_profit_price := na
        long_stop_price   := na
//============================================================


//ENTRY SHORT
if not comprado_long and not comprado_short and short_condition and not short_condition[1] and enRango
    strategy.entry('Short', strategy.short, qty=cantidad, comment= "Entry Short")
    if exit_TPSL
        short_profit_price := close * (1 - TP/100)
        short_stop_price   := close * (1 + SL/100)
    else
        short_profit_price := na
        short_stop_price   := na
//============================================================


//EXIT LONG 
if comprado_long and exit_ma and long_condition[1] and not long_condition
    strategy.close('Long', comment='Exit-Long(MA)')
if comprado_long and exit_TPSL
    strategy.exit('Long', limit=long_profit_price, stop=long_stop_price, comment='Exit-Long(TP/SL)')
//============================================================


//EXIT SHORT 
if comprado_short and exit_ma and short_condition[1] and not short_condition
    strategy.close('Short', comment='Exit-Short(MA)')
if comprado_short and exit_TPSL
    strategy.exit('Short', limit=short_profit_price, stop=short_stop_price, comment='Exit-Short(TP/SL)')
//============================================================



//PLOTS
plot(ma1, linewidth=2, color=color.rgb(255, 255, 255))
plot(ma2, linewidth=2, color=color.rgb(144, 255, 252))
plot(ma3, linewidth=2, color=color.rgb(49, 167, 255))
//Plot Take Profit line
plot(plot_TPSL ? comprado_long  ? long_profit_price : comprado_short ? short_profit_price : na : na, color=color.new(color.lime, 30), style= plot.style_linebr)
//Plot StopLoss line
plot(plot_TPSL ? comprado_long ? long_stop_price : comprado_short ? short_stop_price : na : na, color=color.new(color.red, 30), style= plot.style_linebr)