Momentum Terobosan Strategi Silver Line

Penulis:ChaoZhang, Tanggal: 2024-02-01 15:01:55
Tag:

img

Gambaran umum

Strategi ini adalah strategi breakout berdasarkan indikator momentum harga MACD dan moving average, cocok untuk jangka waktu 1 jam pada perak (XAG/USD, XAG/EUR). Kuncinya adalah menggabungkan tren harga dan indikator momentum untuk menentukan waktu pembalikan tren.

Logika Strategi

Ketika histogram MACD berubah dari negatif menjadi positif dan terus menerus menembus garis sinyal, itu menunjukkan bahwa tren naik jangka pendek lebih kuat. Pada saat yang sama, jika harga penutupan menembus tren naik rata-rata bergerak, itu menghasilkan sinyal panjang. Demikian pula, ketika histogram MACD berubah dari positif menjadi negatif dan jatuh di bawah garis sinyal, dan harga penutupan jatuh di bawah tren turun rata-rata bergerak, itu menghasilkan sinyal pendek.

Secara khusus, kondisi untuk menentukan sinyal masuk panjang dari strategi ini adalah:

  1. Histogram MACD positif
  2. Bilah histogram saat ini lebih tinggi dari yang sebelumnya
  3. Harga penutupan lebih tinggi dari rata-rata bergerak
  4. Harga penutupan lebih tinggi dari harga tertinggi dari 3 K-line baru-baru ini

Kondisi untuk menentukan sinyal masuk pendek adalah sebaliknya.

Setelah posisi dibuka, posisi ditutup tanpa syarat ketika garis K berikutnya ditutup. Strategi ini tidak menetapkan titik profit taking atau stop loss, yang bertujuan untuk menangkap titik awal ledakan tren.

Analisis Keuntungan

Strategi ini menggabungkan indikator harga dan momentum untuk menentukan waktu pembalikan tren dengan lebih akurat dengan tingkat kemenangan yang lebih tinggi.

Tidak ada pengaturan profit taking dan stop loss yang memenuhi kebutuhan investor yang mengejar laba yang tinggi.

Analisis Risiko

Jika sinyal pembalikan gagal, kerugian dapat meningkat karena ketidakmampuan untuk menghentikan kerugian tepat waktu.

Cara penutupan tanpa syarat pada garis K berikutnya membuat sulit untuk terus menangkap keuntungan tren.

Saran Optimalisasi

Hal ini mungkin untuk mempertimbangkan menambahkan strategi stop-loss yang tepat berdasarkan pembelian terobosan keuntungan tinggi untuk mengurangi risiko kerugian.

Hal ini juga mungkin untuk menggabungkan teknik canggih untuk memasuki kembali posisi setelah penutupan, mencoba untuk terus menangkap keuntungan tren.

Ringkasan

Secara umum, strategi ini termasuk dalam strategi berisiko tinggi yang agresif. Karena tidak ada pengaturan stop loss, investor perlu menanggung risiko kerugian yang lebih besar. Tetapi jika pembalikan berhasil, kesempatan untuk membuka posisi dengan banyak lot di tempat pertama juga dapat menghasilkan pengembalian yang tinggi. Ini cocok untuk investor agresif dengan ketahanan psikologis yang relatif kuat.


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


Lebih banyak