Strategi Mengikuti Tren Bullish Golden Cross


Tanggal Pembuatan: 2024-01-03 11:46:44 Akhirnya memodifikasi: 2024-01-03 11:46:44
menyalin: 1 Jumlah klik: 567
1
fokus pada
1621
Pengikut

Strategi Mengikuti Tren Bullish Golden Cross

Ringkasan

Strategi ini didasarkan pada prinsip Golden Cross of Moving Averages. Secara khusus, strategi ini menggunakan Simple Moving Averages dari dua periode yang berbeda, yaitu 50 dan 200. Ini menghasilkan sinyal beli ketika 50 melintasi 200 dari bawah dan menjual ketika 50 melintasi 200 dari atas.

Prinsip Strategi

Strategi ini ditulis dalam bahasa Pine Script, dengan logika utama sebagai berikut:

  1. Hitung dua SMA: SMA 50 dan SMA 200
  2. Perhitungan Gold Crossover: Lakukan Lebih Banyak Saat Memakai SMA 200 Siklus Pada SMA 50 Siklus
  3. Perhitungan crossover mati: posisi kosong saat melewati 200 siklus SMA di bawah 50 siklus SMA

Pentingnya menggunakan indikator SMA di sini adalah bahwa ia dapat secara efektif menghilangkan kebisingan dari data pasar, menangkap tren jangka panjang. Garis SMA cepat melewati garis SMA lambat, menunjukkan momentum kenaikan jangka pendek mengalahkan tren turun jangka panjang, dan menghasilkan sinyal beli.

Keunggulan Strategis

Strategi ini memiliki beberapa keuntungan:

  1. Prinsipnya sederhana, mudah dipahami, dan mudah diterapkan.
  2. PARAMETERS diatur dengan baik, dua siklus SMA dapat disesuaikan, sesuai dengan pasar yang berbeda.
  3. Versi stabil dari bahasa ini ditulis dalam bahasa Pine dan berjalan dengan efisien.
  4. Pengaturan visualnya informatif dan mudah digunakan.

Risiko dan Solusi

Strategi ini juga memiliki beberapa risiko:

  1. Kemungkinan terjadi false breakout, membuat strategi menghasilkan sinyal yang salah. Dua parameter SMA dapat disesuaikan dengan tepat untuk mengurangi probabilitas false breakout.

  2. Tidak dapat menanggapi pasar jangka pendek, hanya cocok untuk investor jangka panjang. Dapat mengurangi siklus SMA cepat dengan tepat.

  3. Penarikan mungkin lebih besar. Anda dapat mengatur stop loss, atau menyesuaikan manajemen posisi.

Optimalkan Pikiran

Strategi ini dapat terus dioptimalkan dari beberapa dimensi:

  1. Menambahkan filter indikator lain, menggabungkan beberapa kondisi beli/jual, mengurangi probabilitas sinyal palsu.

  2. Meningkatkan mekanisme stop loss. Memaksakan stop loss ketika harga turun dari level tertentu.

  3. Mengoptimalkan manajemen posisi. Misalnya, menaikkan posisi dengan tren, melacak stop loss, dll. Mengontrol penarikan dan mengejar keuntungan yang lebih tinggi.

  4. Mengoptimalkan parameter. Mengevaluasi dampak dari berbagai parameter terhadap rasio risiko-keuntungan.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi pelacakan tren yang khas. Ini memanfaatkan keuntungan dari SMA, mudah dan efisien menangkap tren garis panjang. Dapat disesuaikan sesuai dengan gaya dan parameter Anda sendiri.

Kode Sumber Strategi
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// www.tradingview.com/u/TradeFab/
// www.tradefab.com
// ___  __        __   __  __       __
//  |  |__)  /\  |  \ |__ |__  /\  |__)
//  |  |  \ /~~\ |__/ |__ |   /~~\ |__)
//
// DISCLAIMER: Futures, stocks and options trading involves substantial risk of loss 
// and is not suitable for every investor. You are responsible for all the risks and 
// financial resources you use and for the chosen trading system.
// Past performance is not indicative for future results. In making an investment decision,
// traders must rely on their own examination of the entity making the trading decisions!
//
// TradeFab's Golden Cross Strategy.
// The strategy goes long when the faster SMA 50 (the simple moving average of the last 50 bars) crosses
// above the SMA 200. Orders are closed when the SMA 50 crosses below SMA 200. The strategy does not short.
//
VERSION = "1.2"
// 1.2 FB 2020-02-09 converted to Pine version 4
// 1.1 FB 2017-01-15 added short trading
// 1.0 FB 2017-01-13 basic version using SMAs
//
strategy(
   title        = "TFs Golden Cross " + VERSION, 
   shorttitle   = "TFs Golden Cross " + VERSION, 
   overlay      = true
   )


///////////////////////////////////////////////////////////
// === INPUTS ===
///////////////////////////////////////////////////////////
inFastSmaPeriod     = input(title="Fast SMA Period", type=input.integer, defval=50, minval=1)
inSlowSmaPeriod     = input(title="Slow SMA Period", type=input.integer, defval=200, minval=1)

// backtest period
testStartYear       = input(title="Backtest Start Year",    type=input.integer, defval=2019, minval=2000)
testStartMonth      = input(title="Backtest Start Month",   type=input.integer, defval=1, minval=1, maxval=12)
testStartDay        = input(title="Backtest Start Day",     type=input.integer, defval=1, minval=1, maxval=31)
testStopYear        = input(title="Backtest Stop Year",     type=input.integer, defval=2099, minval=2000)
testStopMonth       = input(title="Backtest Stop Month",    type=input.integer, defval=12, minval=1, maxval=12)
testStopDay         = input(title="Backtest Stop Day",      type=input.integer, defval=31, minval=1, maxval=31)


///////////////////////////////////////////////////////////
// === LOGIC ===
///////////////////////////////////////////////////////////
smaFast = sma(close, inFastSmaPeriod)
smaSlow = sma(close, inSlowSmaPeriod)

bullishCross = crossover (smaFast, smaSlow)
bearishCross = crossunder(smaFast, smaSlow)

// detect valid backtest period
isTestPeriod() => true


///////////////////////////////////////////////////////////
// === POSITION EXECUTION ===
///////////////////////////////////////////////////////////
strategy.entry("long",  strategy.long,  when=bullishCross)
strategy.entry("short", strategy.short, when=bearishCross)


///////////////////////////////////////////////////////////
// === PLOTTING ===
///////////////////////////////////////////////////////////
// background color
nopColor = color.new(color.gray, 50)
bgcolor(not isTestPeriod() ? nopColor : na)

bartrendcolor = 
   close > smaFast and 
   close > smaSlow and 
   change(smaSlow) > 0 
       ? color.green 
       : close < smaFast and 
         close < smaSlow and 
         change(smaSlow) < 0 
             ? color.red 
             : color.blue
barcolor(bartrendcolor)
plot(smaFast, color=change(smaFast) > 0 ? color.green : color.red, linewidth=2)
plot(smaSlow, color=change(smaSlow) > 0 ? color.green : color.red, linewidth=2)

// label
posColor = color.new(color.green, 75)
negColor = color.new(color.red, 75)
dftColor = color.new(color.blue, 75)
posProfit= (strategy.position_size != 0) ? (close * 100 / strategy.position_avg_price - 100) : 0.0
posDir   = (strategy.position_size  > 0) ? "long" : strategy.position_size < 0 ? "short" : "flat"
posCol   = (posProfit > 0) ? posColor : (posProfit < 0) ? negColor : dftColor

var label lb = na
label.delete(lb)
lb := label.new(bar_index, max(high, highest(5)[1]),
   color=posCol,
   text="Pos: "+ posDir +
      "\nPnL: "+tostring(posProfit, "#.##")+"%" +
      "\nClose: "+tostring(close, "#.##"))