समर्थन प्रतिरोध और औसत वॉल्यूम ब्रेकथ्रू पर आधारित ट्रेलिंग स्टॉप लॉस रणनीति


निर्माण तिथि: 2024-01-11 17:58:26 अंत में संशोधित करें: 2024-01-11 17:58:26
कॉपी: 0 क्लिक्स: 548
1
ध्यान केंद्रित करना
1617
समर्थक

समर्थन प्रतिरोध और औसत वॉल्यूम ब्रेकथ्रू पर आधारित ट्रेलिंग स्टॉप लॉस रणनीति

अवलोकन

इस रणनीति का मुख्य विचार समर्थन प्रतिरोध और लेनदेन की मात्रा के साथ एक ब्रेकआउट है जो प्रवेश के समय को निर्धारित करता है और एटीआर संकेतक का उपयोग करता है जो स्टॉप-लॉस ट्रैकिंग मूल्य को गतिशील रूप से लाभ के बाद समायोजित करता है ताकि अधिक संभावित लाभ प्राप्त किया जा सके।

रणनीति सिद्धांत

इस रणनीति में मुख्य रूप से निम्नलिखित प्रकार के तर्क शामिल हैंः

  1. ta.pivothigh और ta.pivotlow फ़ंक्शंस का उपयोग करके L_Bars रूट K लाइन के उच्चतम मूल्य और R_Bars रूट K लाइन के निम्नतम मूल्य को प्रतिरोध रेखा और समर्थन रेखा के रूप में गणना करें।

  2. जब समापन मूल्य प्रतिरोध रेखा को पार करता है और वॉल्यूम रेंज की सीमा को पार करता है, तो अधिक करें; जब समापन मूल्य समर्थन रेखा को पार करता है और वॉल्यूम रेंज की सीमा को पार करता है, तो शून्य करें।

  3. अधिक करने के बाद, बंद-ATR_LO के रूप में लंबे समय तक बंद; बंद करने के बाद, बंद + ATR_SH के रूप में छोटे बंद, गतिशील समायोजन ट्रैक बंद को लागू करने के लिए।

  4. ट्रेडिंग समय के दौरान ((0915-1445), हर दिन पहला ट्रेडिंग सिग्नल दिया जाता है, लाभ या हानि के लिए जोखिम की राशि तक पहुंचने के बाद कोई नया आदेश नहीं खोला जाता है।

रणनीतिक लाभ

  1. समर्थन प्रतिरोध सिद्धांत का उपयोग करें, एक संश्लेषित द्रव्यमान सूचक के साथ, प्रवेश समय को अधिक सटीक बनाने के लिए।

  2. एटीआर संकेतक का उपयोग करके स्टॉप लॉस को ट्रैक करने के लिए, बाजार में उतार-चढ़ाव के आधार पर स्टॉप लॉस की स्थिति को लचीले ढंग से समायोजित करने में सक्षम है, जिससे लाभ के बाद मुनाफे की वापसी की संभावना कम हो सके।

  3. एक दिन में ट्रेडों की संख्या और एकल ट्रेड जोखिम पर उचित नियंत्रण से प्रवृत्ति को समझने में मदद मिलती है और अत्यधिक स्टॉप लॉस से बचा जाता है।

रणनीतिक जोखिम

  1. समर्थन प्रतिरोध विफल हो सकता है और एक प्रभावी प्रवेश संकेत प्रदान नहीं कर सकता है।

  2. एटीआर सूचकांक को बहुत बड़ा सेट किया गया है, जिससे स्टॉप लॉस की दूरी बहुत अधिक हो सकती है, जिससे नुकसान का खतरा बढ़ जाता है।

  3. लेन-देन का सूचक बहुत छोटा सेट किया गया है, जिससे अवसरों को याद किया जा सकता है; बहुत बड़ा सेट किया गया है, जिससे गलत संकेत मिल सकता है।

समाधान:

  • विभिन्न किस्मों की विशेषताओं के अनुसार समर्थन प्रतिरोध पैरामीटर को समायोजित करें

  • एटीआर गुणांक और लेनदेन थ्रेशोल्ड पैरामीटर का अनुकूलन

  • अन्य मापदंडों के साथ प्रवेश का समय

रणनीति अनुकूलन दिशा

  1. अन्य मापदंडों के साथ प्रवेश समय का आकलन करें, जैसे कि चलती औसत

  2. एटीआर गुणांक और लेन-देन की मात्रा के लिए पैरामीटर का अनुकूलन

  3. मशीन सीखने एल्गोरिदम के साथ गतिशील पैरामीटर अनुकूलन

  4. अन्य प्रजातियों के लिए विस्तार, पैरामीटर्स की खोज

संक्षेप

इस रणनीति में कई विश्लेषणात्मक उपकरण शामिल हैं, जो समर्थन प्रतिरोध, लेन-देन की मात्रा और स्टॉप-लॉस विधियों के उपयोग के माध्यम से रिट्रेसिंग चरणों में बेहतर प्रभाव प्राप्त करते हैं। हालांकि, वास्तविक में अधिक अनिश्चितता का सामना करना पड़ सकता है, और पैरामीटर अनुकूलन और अन्य निर्णय संकेतकों को पेश करने के माध्यम से वास्तविक प्रदर्शन को और बढ़ाने की आवश्यकता हो सकती है। कुल मिलाकर, यह रणनीति स्पष्ट और समझने में आसान है, जो एक अच्छी संदर्भ मामला प्रदान करती है।

रणनीति स्रोत कोड
/*backtest
start: 2024-01-03 00:00:00
end: 2024-01-10 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//   ____________                _________                      _____________
//  |____________|             ||________|                      ||__________|
//       ||            ____    ||        ||                     ||                    ______ ________    _____ ________
//       ||    |   || ||       ||________|| |   || ||    ||     ||     |   ||   /\\   |   // |______| || ||    |______|
//       ||    |===|| |===     ||__________ |   || ||    ||     ||     |===||  /__\\  |===      ||    ||   \\     ||
//       ||    |   || ||___    ||        || |___|| ||___ ||___  ||     |   || /    \\ |   \\    ||    || ___||    ||
//       ||                    ||________||                     ||__________
//       ||                    ||________|                      ||__________|
  
//@version=5
strategy("SUPPORT RESISTANCE STRATEGY [5MIN TF]",overlay=true )
L_Bars = input.int(defval = 10, minval = 1 , maxval = 50, step =1)
R_Bars = input.int(defval = 15, minval = 1 , maxval = 50, step =1)
volumeRange = input.int(20, title='Volume Break [threshold]', minval = 1)

// ═══════════════════════════ //
// ——————————> INPUT <——————— //
// ═══════════════════════════ //

EMA1 = input.int(title='PRICE CROSS EMA', defval = 150, minval = 10 ,maxval = 400)
factor1 = input.float(title='_ATR LONG',defval = 3.2 , minval = 1 , maxval = 5 , step = 0.1, tooltip = "ATR TRAIL LONG")
factor2 = input.float(title='_ATR SHORT',defval = 3.2 , minval = 1 , maxval = 5 , step = 0.1, tooltip = "ATR TRAIL SHORT")
risk = input.float(title='RISK',defval = 200 , minval = 1 , maxval = 5000 , step = 50, tooltip = "RISK PER TRADE")


var initialCapital = strategy.equity
t = time(timeframe.period, '0915-1445:1234567')
time_cond = not na(t)

// ══════════════════════════════════ //
// ———————————> EMA DATA <——————————— //
// ══════════════════════════════════ //
ema1 = ta.ema(close, EMA1)

plot(ema1, color=color.new(color.yellow, 0), style=plot.style_linebr, title='ema1')

// ══════════════════════════════════ //
// ————————> TRAIL DATA <———————————— //
// ══════════════════════════════════ //
// *******Calculate LONG TRAIL data*****
ATR_LO = ta.atr(14)*factor1

// *******Calculate SHORT TRAIL data*****
ATR_SH = ta.atr(14)*factor2

long_trail = close - ATR_LO
short_trail = close + ATR_SH

// Plot atr data
//plot(longStop, color=color.new(color.green, 0), style=plot.style_linebr, title='Long Trailing Stop')
//plot(shortStop , color=color.new(color.red, 0), style=plot.style_linebr, title='Short Trailing Stop')

// ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ //
// ————————————————————————————————————————————————————————> RESISTANCE/SUPPORT LEVELS DATA <————————————————————————————————————————————————————————————————————————————————————————————— //
// ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ //

Resistance_pi = fixnan(ta.pivothigh(L_Bars, R_Bars)[1])
Support_pi = fixnan(ta.pivotlow(L_Bars, R_Bars)[1])
r1 = plot(Resistance_pi, color=ta.change(Resistance_pi) ? na : color.red,  offset=-(R_Bars + 1),linewidth=2, title='RESISTANCE')
s1 = plot(Support_pi, color=ta.change(Support_pi) ? na : color.green, offset=-(R_Bars + 1),linewidth=2, title='SUPPORT')

//Volume 
vol_1 = ta.ema(volume, 5)
vol_2 = ta.ema(volume, 10)
osc_vol = 100 * (vol_1 - vol_2) / vol_2

// ══════════════════════════════════//
// ————————> LONG POSITIONS <————————//
// ══════════════════════════════════//
//******barinstate.isconfirmed used to avoid repaint in real time*******

if ( ta.crossover(close, Resistance_pi) and osc_vol > volumeRange and not(open - low > close - open) and strategy.opentrades==0 and barstate.isconfirmed and time_cond and close >= ema1 )
    strategy.entry(id= "Long" ,direction = strategy.long, comment = "BUY")
    
plot(long_trail , color=color.new(color.blue, 0), style=plot.style_linebr, title='long Stop')

if strategy.position_size > 0 
    strategy.exit("long tsl", "Long" , stop = long_trail ,comment='SELL')
 
// ═════════════════════════════════════//
// ————————> SHORT POSITIONS <————————— //
// ═════════════════════════════════════//
if ( ta.crossunder(close, Support_pi) and osc_vol > volumeRange and not(open - close < high - open)  and strategy.opentrades==0 and barstate.isconfirmed and time_cond and close <= ema1 )
    strategy.entry(id = "Short" ,direction = strategy.short,  comment = "SELL") 

if strategy.position_size < 0
    strategy.exit("short tsl", "Short" ,  stop = short_trail ,comment='BUY')

// ════════════════════════════════════════════════//
// ————————> CLOSE ALL POSITIONS BY 3PM <————————— //
// ════════════════════════════════════════════════//
strategy.close_all(when = hour == 14 and minute == 55)

// ════════════════════════════════════════//
// ————————> MAX INTRADAY LOSS  <————————— //
// ════════════════════════════════════════//
// strategy.risk.max_intraday_loss(type = strategy.cash, value = risk)