Golden Cross Bullish Trend Mengikuti Strategi


Tarikh penciptaan: 2024-01-03 11:46:44 Akhirnya diubah suai: 2024-01-03 11:46:44
Salin: 1 Bilangan klik: 567
1
fokus pada
1621
Pengikut

Golden Cross Bullish Trend Mengikuti Strategi

Gambaran keseluruhan

Strategi ini dicipta berdasarkan prinsip Golden Cross Moving Average. Secara khusus, ia menggunakan purata bergerak sederhana dengan dua kitaran yang berbeza, iaitu 50 dan 200 . Apabila 50 melintasi 200 dari bawah, ia menghasilkan isyarat beli; Apabila 50 melintasi 200 dari atas, ia menghasilkan isyarat jual.

Prinsip Strategi

Strategi ini ditulis menggunakan bahasa Pine Script, dan logik utamanya adalah seperti berikut:

  1. Hitung dua SMA: SMA 50 kitaran dan SMA 200 kitaran
  2. Periksa Gold Cross: Melakukan Lebih Banyak Apabila Memakai SMA 200 Siklus Pada SMA 50 Siklus
  3. Hukum silang mati: Berhampiran dengan kedudukan rata apabila 50 kitaran SMA melintasi 200 kitaran SMA

Pentingnya penggunaan indikator SMA di sini adalah bahawa ia dapat menghapuskan bunyi data pasaran dengan berkesan, menangkap trend jangka panjang. Garis SMA cepat menembusi garis SMA perlahan, yang menunjukkan momentum kenaikan jangka pendek mengalahkan trend penurunan jangka panjang, dan menghasilkan isyarat pembelian.

Kelebihan Strategik

Strategi ini mempunyai beberapa kelebihan:

  1. Prinsipnya mudah difahami dan mudah dilaksanakan.
  2. PARAMETERS boleh diatur dengan munasabah, dua kitaran SMA boleh disesuaikan untuk menyesuaikan diri dengan pasaran yang berbeza.
  3. Ia ditulis dalam bahasa Pine versi stabil dan berjalan dengan cekap.
  4. Pengaturan visual adalah bermaklumat dan mudah digunakan.

Risiko dan penyelesaian

Strategi ini mempunyai beberapa risiko:

  1. Kemungkinan berlaku penembusan palsu yang menyebabkan strategi menghasilkan isyarat yang salah. Kedua-dua parameter SMA boleh disesuaikan dengan betul untuk mengurangkan kebarangkalian penembusan palsu.

  2. Tidak dapat bertindak balas terhadap pasaran jangka pendek, hanya sesuai untuk pelabur garis panjang.

  3. Penarikan balik mungkin lebih besar. Anda boleh menetapkan titik hentian atau menyesuaikan pengurusan kedudukan dengan betul.

Optimum idea

Strategi ini boleh terus dioptimumkan dari segi berikut:

  1. Menambah penapis untuk petunjuk lain, menggabungkan beberapa syarat beli / jual, mengurangkan kemungkinan isyarat palsu.

  2. Meningkatkan mekanisme penangguhan kerugian. Memaksa penangguhan kerugian apabila harga jatuh di bawah tahap tertentu.

  3. Mengoptimumkan pengurusan kedudukan. Contohnya, menaikkan kedudukan dengan trend, mengesan kerugian, dan sebagainya. Mengendalikan penarikan balik dan mengejar keuntungan yang lebih tinggi.

  4. Mengoptimumkan parameter. Menilai kesan parameter yang berbeza terhadap nisbah risiko pendapatan.

ringkaskan

Strategi ini secara keseluruhannya adalah strategi pengesanan trend yang tipikal. Ia menggunakan kelebihan SMA, mudah dan cekap menangkap trend garis panjang.

Kod 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, "#.##"))