Momentum Breakout Strategi Silver Line


Tarikh penciptaan: 2024-02-01 15:01:55 Akhirnya diubah suai: 2024-02-01 15:01:55
Salin: 2 Bilangan klik: 625
1
fokus pada
1621
Pengikut

Momentum Breakout Strategi Silver Line

Gambaran keseluruhan

Strategi ini adalah strategi beli beli yang berdasarkan pada indikator pergerakan harga MACD dan garis rata-rata, yang berlaku untuk tempoh masa 1 jam untuk perak (XAG/USD, XAG/EUR). Titik penting adalah menggabungkan trend harga dan indikator pergerakan untuk menentukan masa pembalikan trend.

Prinsip Strategi

Apabila garis tiang MACD bertukar negatif dan terus naik, ia menunjukkan pergerakan jangka pendek yang lebih kuat; dan jika harga penutupan melanggar garis rata-rata trend naik, ia menghasilkan isyarat multi-head. Begitu juga, garis tiang MACD bertukar negatif dan jatuh dari garis isyarat, dan apabila harga penutupan jatuh dari garis rata-rata trend turun, ia menghasilkan isyarat kosong.

Secara khusus, strategi ini menilai isyarat untuk masuk dalam kedudukan panjang dengan syarat:

  1. Garis tiang MACD adalah positif
  2. Garis tiang sekarang lebih tinggi daripada garis tiang sebelumnya
  3. Harga penutupan melebihi purata
  4. Harga penutupan lebih tinggi daripada harga tertinggi hampir 3 K Line

Namun, ia adalah sebaliknya untuk menilai isyarat masuk kedudukan pendek.

Setelah membuka kedudukan, tanpa syarat pada penutupan K baris berikutnya. Strategi ini tidak menetapkan titik henti-henti, mengejar titik permulaan untuk menangkap ledakan trend.

Analisis kelebihan

Strategi ini menggabungkan harga dan indikator momentum, yang dapat menentukan masa pembalikan trend dengan lebih tepat, peluang kemenangan yang lebih tinggi. Dengan cara menutup posisi K tanpa syarat, anda dapat dengan berkesan mengelakkan kerugian lagi selepas kegagalan pembalikan.

Tidak ada penangguhan kerugian, dan semua saham dibuka untuk memenuhi keperluan pelabur yang mencari pulangan tinggi.

Analisis risiko

Tetapan tanpa kerugian mudah dikurung, risiko kerugian besar. Jika isyarat pembalikan gagal, tidak dapat menghentikan kerugian tepat pada masanya, mungkin menghadapi kerugian kewangan yang besar.

Tidak ada cara untuk terus menangkap keuntungan dari tren apabila K Line ditutup tanpa syarat.

Arah pengoptimuman

Anda boleh mempertimbangkan untuk menambah strategi hentian kerugian yang sesuai, mengurangkan risiko kerugian, berdasarkan pembelian terobosan dengan kadar kemenangan yang lebih tinggi.

Ia juga boleh digabungkan dengan teknik yang lebih maju untuk menetapkan mekanisme untuk membuka semula kedudukan selepas kedudukan kosong, dan cuba untuk terus menangkap keuntungan trend.

ringkaskan

Strategi ini secara keseluruhan merupakan strategi berisiko tinggi yang agresif secara aktif, dan memerlukan pelabur untuk menanggung risiko kerugian yang lebih besar kerana tidak ada persediaan rugi. Tetapi, secara relatif, membuka posisi penuh pada masa pertama selepas pembalikan yang berjaya juga dapat memperoleh keuntungan yang tinggi.

Kod sumber strategi
/*backtest
start: 2023-01-31 00:00:00
end: 2024-01-13 05:20:00
period: 1d
basePeriod: 1h
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/
// © SoftKill21

//@version=4
strategy("XAG strategy 1h",overlay=true)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
var gica = 0
var marcel = gica+2
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
len = input(10, minval=1, title="Length")
src = input(close, title="Source")
out = sma(src, len)

//distanta = input(1.004)

fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

option1=input(true)
option2=input(true)

long2 =  close > open  and time_cond and close > out and hist > 0 and hist > hist[1] 
short2 =  close < open  and time_cond and close < out and hist < 0 and hist < hist[1] 

long1 = (close > open ) and time_cond and close > out and hist > 0 and  hist > hist[1] and high > high[1] and high[1] > high[2] and close > high[1] and close > high[2] and close > high[3] 
short1 = (close < open)  and time_cond and close < out and hist < 0 and  hist < hist[1] and low < low[1] and low[1] < low[2]  and close < low[1] and close < low[2] and close < low[3] 

if(option1)
    strategy.entry("long",1,when= short1)
    strategy.entry("short",0,when=long1)
    strategy.close_all()

if(option2)

    strategy.entry("long",1,when= short2)
    strategy.entry("short",0,when=long2)
    strategy.close_all()

// if(strategy.openprofit < 0)
//     strategy.close_all()
// if(strategy.openprofit>0)
//     strategy.close("long",when = close < open )
//     strategy.close("short",when = close > open)
//     strategy.close("long",when= close < open)
//     strategy.close("short",when= close> open)


// tp = input(0.0003)
// sl = input(0.005)
// strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
// strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")