Strategi berdasarkan indikator Supertrend dan Simple Moving Average


Tanggal Pembuatan: 2024-01-16 15:19:09 Akhirnya memodifikasi: 2024-01-16 15:19:09
menyalin: 0 Jumlah klik: 616
1
fokus pada
1617
Pengikut

Strategi berdasarkan indikator Supertrend dan Simple Moving Average

Ringkasan

Strategi supertrend adalah strategi perdagangan kuantitatif yang didasarkan pada indikator supertrend dan rata-rata bergerak sederhana. Strategi ini menggunakan indikator supertrend untuk menentukan arah tren pasar, kemudian digabungkan dengan rata-rata bergerak sederhana 200 hari untuk memfilter dan melakukan shorting lebih banyak di arah tren besar.

Prinsip Strategi

Strategi ini menggunakan dua indikator:

  1. Indikator supertrend: Ini menghitung naik dan turun berdasarkan amplitudo ATR riil dan sebuah kelipatan. Ketika harga close out lebih tinggi dari naik berarti bullish, dan lebih rendah dari turun berarti bearish.

  2. 200-Day Simple Moving Average: Ini adalah rata-rata aritmatika dari harga penutupan dalam 200 hari terakhir. Harga penutupan di atas garis ini mewakili kecenderungan besar ke arah bullish, dan di bawah garis ini mewakili kecenderungan besar ke arah bearish.

Strategi Logika:

  1. Ketika indikator supertrend terlihat cerah (indicator supertrend lebih besar dari 0) dan harga penutupan lebih tinggi dari 200 hari rata-rata, masuklah lebih banyak.

  2. Ketika indikator overtrend turun ((nilai indikator overtrend kurang dari 0) dan harga penutupan berada di bawah garis rata-rata 200 hari, masuklah ke posisi short.

  3. Ketika indikator supertrend berbalik dari sinyal sebelumnya, maka keluarlah posisi yang rata.

  4. Stop loss disetel menjadi 25%.

Analisis Keunggulan

Strategi ini menggabungkan indikator supertrend untuk menilai tren jangka pendek dan garis rata-rata 200 hari untuk menilai tren jangka panjang, yang dapat secara efektif memfilter terobosan palsu, mengurangi frekuensi perdagangan dan meningkatkan tingkat kemenangan. Dalam situasi yang besar, tren cukup jelas, ruang stop loss besar, ruang keuntungan besar.

Analisis risiko

Risiko utama dari strategi ini adalah stop loss yang lebih besar, dan leverage yang tinggi dapat meningkatkan risiko likuidasi paksa. Selain itu, indikator supertrend dapat menghasilkan sinyal yang berlebihan ketika pasar bersatu, sehingga meningkatkan frekuensi dan biaya perdagangan.

Risiko dapat dikurangi dengan penyesuaian siklus ATR, parameter perkalian, dan stop loss.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Mengatur siklus ATR dan parameter perkalian, mengoptimalkan parameter indikator overtrend;

  2. Cobalah untuk menggantikannya dengan indikator lain seperti EMA, VIDYA, dan lain sebagainya.

  3. Menambahkan indikator tambahan lainnya, seperti saluran BOLL atau indikator KD untuk lebih memfilter sinyal;

  4. Optimalkan strategi stop loss, seperti pindah ke titik keseimbangan untung rugi atau stop loss skala besar.

Meringkaskan

Strategi ini sangat praktis secara keseluruhan, baik mempertimbangkan penilaian tren jangka pendek dan mempertimbangkan penilaian tren jangka panjang, pengaturan stop loss juga lebih masuk akal. Dengan penyesuaian dan pengoptimalan parameter, efek yang lebih baik masih bisa diperoleh, layak untuk diuji dan digunakan di lapangan.

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

// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © wielkieef

//@version=5

strategy("Smart SuperTrend Strategy ", shorttitle="ST Strategy", overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.01)


// Parametry wskaźnika SuperTrend
atrLength = input(10, title="Lenght ATR")
factor = input(3.0, title="Mult.")

// Parametry dla SMA
lengthSMA = input(200, title="Lenght SMA")

// Parametry dla Stop Loss
sl = input.float(25.0, '% Stop Loss', step=0.1)

// Obliczanie ATR
atr = ta.atr(atrLength)

// Obliczanie podstawowej wartości SuperTrend
up = hl2 - (factor * atr)
dn = hl2 + (factor * atr)

// Obliczanie 200-SMA
sma200 = ta.sma(close, lengthSMA)

// Inicjalizacja zmiennych
var float upLevel = na
var float dnLevel = na
var int trend = na
var int trendWithFilter = na

// Logika SuperTrend
upLevel := close[1] > upLevel[1] ? math.max(up, upLevel[1]) : up
dnLevel := close[1] < dnLevel[1] ? math.min(dn, dnLevel[1]) : dn

trend := close > dnLevel[1] ? 1 : close < upLevel[1] ? -1 : nz(trend[1], 1)

// Filtr SMA i aktualizacja trendWithFilter
trendWithFilter := close > sma200 ? math.max(trend, 0) : math.min(trend, 0)

// Logika wejścia
longCondition = trend == 1  
shortCondition = trend == -1  

// Wejście w pozycje
if (longCondition) and  close > sma200
    strategy.entry("Long", strategy.long)
if (shortCondition) and close < sma200
    strategy.entry("Short", strategy.short)

// Warunki zamknięcia pozycji
Long_close = trend == -1 and close > sma200
Short_close = trend == 1  and close < sma200

// Zamknięcie pozycji
if (Long_close)
    strategy.close("Long")
if (Short_close)
    strategy.close("Short")

// Kolory superTrendu z filtrem sma200
trendColor = trendWithFilter == 1 ? color.green : trendWithFilter == -1 ? color.red : color.blue

//ploty
plot(trendWithFilter == 1 ? upLevel : trendWithFilter == -1 ? dnLevel : na, color=trendColor, title="SuperTrend")

// Stop Loss ( this code is from author RafaelZioni, modified by wielkieef )
per(procent) =>
    strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
// --------------------------------------------------------------------------------------------------------------------

strategy.exit('SL',loss=per(sl))



//by wielkieef