
Inti dari strategi ini adalah menggabungkan indikator tren super dan indikator tren rata-rata (ADX), untuk menilai dan melacak tren. Indikator tren super digunakan untuk membedakan arah tren harga saat ini, ADX digunakan untuk menilai kekuatan tren, dan hanya melakukan perdagangan di bawah tren yang kuat. Selain itu, strategi ini juga menggunakan warna entitas K-line, indikator volume perdagangan, dan lain-lain untuk mengkonfirmasi, membentuk aturan perdagangan yang lebih lengkap.
Secara umum, strategi ini adalah strategi pelacakan tren, yang bertujuan untuk menangkap tren yang jelas di garis tengah dan panjang, dan menghindari gangguan dari konsolidasi dan getaran.
Menggunakan indikator supertrend untuk menentukan arah tren harga. Ketika harga naik supertrend adalah sinyal multihead, ketika turun supertrend adalah sinyal kosong.
Gunakan ADX untuk menilai kekuatan tren. Hanya sinyal perdagangan yang dihasilkan ketika ADX lebih besar dari batas yang ditetapkan, sehingga dapat memfilter periode yang tidak jelas.
Warna entitas K-line menilai saat ini sebagai pola naik atau turun, dikombinasikan dengan indikator supertrend, membentuk konfirmasi.
Peningkatan volume perdagangan sebagai sinyal konfirmasi. Hanya ketika volume perdagangan meningkat, posisi akan dibuat.
Tetapkan stop loss dan stop loss untuk mengunci keuntungan dan mengendalikan risiko.
Tutup semua posisi sebelum berakhirnya waktu dalam set disk.
Mengikuti tren yang jelas, menghindari getaran, dan mendapatkan tingkat keuntungan yang lebih tinggi.
Lebih sedikit parameter, lebih mudah dipahami dan diterapkan.
Pengendalian risiko di tempat, pengaturan stop loss dan stop loss.
Menggunakan beberapa indikator untuk mengkonfirmasi dapat mengurangi sinyal palsu.
Ada kemungkinan kerugian yang lebih besar saat melakukan penyesuaian kedalaman saham.
Perkembangan kinerja saham dapat menyebabkan perubahan yang drastis.
Dalam sebuah video yang diunggah di Twitter, ia mengatakan bahwa ia telah melihat perubahan besar dalam kebijakan setelah peristiwa Black Swan.
Solusi untuk menghadapi risiko:
Adaptasi parameter ADX yang tepat untuk memastikan bahwa hanya diperdagangkan dalam tren yang kuat.
Meningkatkan Stop Loss dan Mengontrol Kerugian Tunggal
Mengikuti kebijakan dan peristiwa penting dengan cermat, dan mengambil tindakan pencegahan jika diperlukan.
Kombinasi parameter supertrend yang berbeda dapat diuji, memilih parameter yang menghasilkan sinyal yang lebih stabil.
Anda dapat menguji parameter ADX yang berbeda untuk menentukan kombinasi parameter terbaik.
Indikator lain dapat ditambahkan untuk konfirmasi, seperti volatilitas, pita Brin, dan lain-lain, untuk mengurangi sinyal palsu lebih lanjut.
Strategi ini dapat digabungkan dengan strategi seperti breakout dan stop loss pada saat tren pecah.
Strategi ini memiliki ide yang jelas, menentukan arah tren harga dengan supertrend, menentukan kekuatan tren dengan ADX, dan melakukan pelacakan tren di bawah tren yang kuat. Selain itu, pengaturan stop loss untuk mengendalikan risiko. Parameter strategi lebih sedikit dan mudah dioptimalkan.
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Intraday Strategy Template
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © vikris
//@version=4
strategy("[VJ]Hulk Smash Intra", overlay=true, calc_on_every_tick = false, pyramiding=0,default_qty_type=strategy.percent_of_equity, default_qty_value=100,initial_capital=2000)
// ********** Strategy inputs - Start **********
// Used for intraday handling
// Session value should be from market start to the time you want to square-off
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session,
defval="0915-1455", confirm=true)
// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortProfitPerc = input(title="Short Take Profit (%)",
type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01
shortLossPerc = input(title="Short Stop Loss (%)",
type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01
var float i_multiplier = input(title = "ST Multiplier", type = input.float,
defval = 2, step = 0.1, confirm=true)
var int i_atrPeriod = input(title = "ST ATR Period", type = input.integer,
defval = 10, confirm=true)
len = input(title="ADX Length", type=input.integer, defval=14)
th = input(title="ADX Threshold", type=input.integer, defval=20)
adxval = input(title="ADX Momemtum Value", type=input.integer, defval=25)
// ********** Strategy inputs - End **********
// ********** Supporting functions - Start **********
// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// ********** Supporting functions - End **********
// ********** Strategy - Start **********
[superTrend, dir] = supertrend(i_multiplier, i_atrPeriod)
colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 100)
// Super Trend Long/short condition
stlong = close > superTrend
stshort = close < superTrend
// Figure out take profit price
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
// Determine stop loss price
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)
//Vol Confirmation
vol = volume > volume[1]
//Candles colors
greenCandle = (close > open)
redCandle = (close < open)
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)
// Trade only if intraday session is active
TrueRange = max(max(high - low, abs(high - nz(close[1]))), abs(low - nz(close[1])))
DirectionalMovementPlus = high - nz(high[1]) > nz(low[1]) - low ? max(high - nz(high[1]), 0) : 0
DirectionalMovementMinus = nz(low[1]) - low > high - nz(high[1]) ? max(nz(low[1]) - low, 0) : 0
SmoothedTrueRange = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - nz(SmoothedTrueRange[1]) / len + TrueRange
SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) -
nz(SmoothedDirectionalMovementPlus[1]) / len + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = 0.0
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) -
nz(SmoothedDirectionalMovementMinus[1]) / len + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus) * 100
ADX = sma(DX, len)
// a = plot(DIPlus, color=color.green, title="DI+", transp=100)
// b = plot(DIMinus, color=color.red, title="DI-", transp=100)
//Final Long/Short Condition
longCondition = stlong and redCandle and vol and ADX>adxval
shortCondition = stshort and greenCandle and vol and ADX >adxval
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
stop_level = longStopPrice
profit_level = longExitPrice
strategy.entry("My Long Entry Id", strategy.long)
strategy.exit("TP/SL", "My Long Entry Id",stop=stop_level, limit=profit_level)
//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
stop_level = shortStopPrice
profit_level = shortExitPrice
strategy.entry("My Short Entry Id", strategy.short)
strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")
// ********** Strategy - End **********