
Idea teras strategi ini adalah menggabungkan penunjuk trend super dan penunjuk trend rata-rata ((ADX), untuk menilai dan menjejaki trend. Penunjuk trend super digunakan untuk mengenal pasti arah trend harga semasa, ADX digunakan untuk menilai kekuatan trend, dan hanya berdagang di bawah trend yang kuat.
Secara umum, strategi ini adalah strategi trend-following yang bertujuan untuk menangkap trend yang jelas dalam garis tengah dan panjang dan mengelakkan gangguan oleh pengiraan dan getaran.
Menggunakan penunjuk super trend untuk menentukan arah trend harga. Apabila harga naik super trend sebagai isyarat multihead, apabila turun super trend sebagai isyarat kosong.
Gunakan ADX untuk menentukan kekuatan trend. Isyarat perdagangan hanya dihasilkan apabila ADX lebih besar daripada had yang ditetapkan, yang membolehkan anda menyaring tempoh yang tidak jelas.
Warna entiti K-Line menilai corak semasa sebagai corak naik atau turun, dikombinasikan dengan penunjuk trend super, membentuk pengesahan.
Jumlah dagangan meningkat sebagai isyarat pengesahan.
Tetapkan stop loss dan stop loss untuk mengunci keuntungan dan mengawal risiko.
Tutup semua kedudukan sebelum tamat masa dalam cakera yang ditetapkan.
Mengikuti trend yang jelas dalam garis tengah dan panjang, mengelakkan gegaran, dan mendapat kadar keuntungan yang lebih tinggi.
Lebih sedikit parameter strategi, lebih mudah difahami dan dilaksanakan.
Pengendalian risiko diletakkan di tempat, dan stop loss dan stop loss ditetapkan.
Menggunakan pelbagai penunjuk untuk mengesahkan, ia dapat mengurangkan isyarat palsu.
“Selain itu, ia boleh menyebabkan kerugian yang lebih besar apabila anda melakukan penyesuaian kedalaman pelaburan.
Ia boleh menyebabkan perubahan yang ketara dalam prestasi saham.
Dalam video yang diunggah di laman Facebook Facebooknya, beliau berkata:
Penyelesaian untuk menghadapi risiko:
Menyesuaikan parameter ADX dengan betul untuk memastikan hanya diperdagangkan semasa trend yang kuat.
Meningkatkan markah hentian kerugian dan mengawal kerugian tunggal.
Mengikuti dengan teliti dasar dan peristiwa-peristiwa penting, dan mengambil tindakan untuk menghentikan kerosakan jika perlu.
Anda boleh menguji kombinasi parameter super trend yang berbeza, memilih parameter yang menghasilkan isyarat yang lebih stabil.
Anda boleh menguji parameter ADX yang berbeza untuk menentukan kombinasi parameter terbaik.
Tambahan indikator lain boleh digunakan untuk pengesahan, seperti kadar turun naik, Blink, dan lain-lain, untuk mengurangkan lebih banyak isyarat palsu.
Ia boleh digabungkan dengan strategi seperti penembusan, dan ia boleh dihentikan apabila trend pecah.
Strategi ini mempunyai pemikiran keseluruhan yang jelas, untuk menilai arah trend harga dengan super trend, untuk menilai kekuatan trend dengan ADX, untuk mengikuti trend dalam trend yang kuat. Pada masa yang sama, menetapkan stop loss stop untuk mengawal risiko.
/*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 **********