
यह रणनीति एक गतिशील जोखिम प्रबंधन तंत्र के साथ WaveTrend सूचक पर आधारित एक मात्रात्मक ट्रेडिंग प्रणाली है। यह रणनीति कीमतों में उतार-चढ़ाव की प्रवृत्ति की ताकत की गणना करके ओवरबॉय और ओवरसोल क्षेत्रों में सिग्नल फ़िल्टरिंग करती है, साथ ही स्टॉप लॉस, स्टॉप और ट्रैकिंग स्टॉप लॉस जैसे जोखिम नियंत्रण साधनों को लागू करती है।
रणनीति का मूल HLC3 मूल्य के माध्यम से WaveTrend सूचकांक की गणना करना है। सबसे पहले, n1 चक्र की निर्देशांक चलती औसत (ईएमए) को एक बेंचमार्क के रूप में गणना करें, फिर मूल्य और बेंचमार्क के विचलन की गणना करें, और 0.015 को एक कारक के रूप में उपयोग करके समेकित प्रसंस्करण करें। अंत में, दो तरंग रेखाएं wt1 और wt2 प्राप्त करें, जो क्रमशः तेज और धीमी रेखाओं का प्रतिनिधित्व करती हैं। एक बहु-स्तरीय जोखिम नियंत्रण प्रणाली के साथ ओवरबॉय और ओवरसोल स्तर के साथ इन दो लाइनों के क्रॉसिंग के आधार पर व्यापार संकेत उत्पन्न होते हैं।
इस रणनीति को WaveTrend सूचकांकों और एक अच्छी तरह से विकसित जोखिम प्रबंधन प्रणाली के संयोजन के माध्यम से एक अधिक व्यापक मात्रात्मक ट्रेडिंग रणनीति प्राप्त की जाती है। इस रणनीति का मुख्य लाभ यह है कि यह अत्यधिक अनुकूलनशील और जोखिम-नियंत्रित है, लेकिन फिर भी व्यापारियों को वास्तविक बाजार स्थितियों के अनुसार पैरामीटर अनुकूलन और रणनीति में सुधार करने की आवश्यकता है। निरंतर अनुकूलन और सुधार के माध्यम से, इस रणनीति को वास्तविक व्यापार में स्थिर रिटर्न की उम्मीद है।
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="WaveTrend [LazyBear] with Risk Management", shorttitle="WT_LB_RM", overlay=true)
// Input Parameters
n1 = input.int(10, "Channel Length")
n2 = input.int(21, "Average Length")
obLevel1 = input.int(60, "Over Bought Level 1")
obLevel2 = input.int(53, "Over Bought Level 2")
osLevel1 = input.int(-60, "Over Sold Level 1")
osLevel2 = input.int(-53, "Over Sold Level 2")
// Risk Management Inputs
stopLossPercent = input.float(50.0, "Stop Loss (%)", minval=0.1, maxval=100)
takeProfitPercent = input.float(5.0, "Take Profit (%)", minval=0.1, maxval=100)
trailingStopPercent = input.float(3.0, "Trailing Stop (%)", minval=0.1, maxval=100)
trailingStepPercent = input.float(2.0, "Trailing Stop Step (%)", minval=0.1, maxval=100)
// WaveTrend Calculation
ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)
wt1 = tci
wt2 = ta.sma(wt1, 4)
// Plotting Original Indicators
plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=plot.style_line)
plot(osLevel2, color=color.green, style=plot.style_line)
plot(wt1, color=color.green)
plot(wt2, color=color.red, style=plot.style_line)
plot(wt1-wt2, color=color.blue, style=plot.style_area, transp=80)
// Buy and Sell Signals with Risk Management
longCondition = ta.crossover(wt1, osLevel1) or ta.crossover(wt1, osLevel2)
shortCondition = ta.crossunder(wt1, obLevel1) or ta.crossunder(wt1, obLevel2)
// Strategy Entry with Risk Management
if (longCondition)
entryPrice = close
stopLossPrice = entryPrice * (1 - stopLossPercent/100)
takeProfitPrice = entryPrice * (1 + takeProfitPercent/100)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long",
stop=stopLossPrice,
limit=takeProfitPrice,
trail_price=close * (1 + trailingStopPercent/100),
trail_offset=close * (trailingStepPercent/100))
if (shortCondition)
entryPrice = close
stopLossPrice = entryPrice * (1 + stopLossPercent/100)
takeProfitPrice = entryPrice * (1 - takeProfitPercent/100)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short",
stop=stopLossPrice,
limit=takeProfitPrice,
trail_price=close * (1 - trailingStopPercent/100),
trail_offset=close * (trailingStepPercent/100))