এই কৌশলটির মূল ধারণাটি হল এন্ট্রি সিগন্যাল নির্ধারণের জন্য সমর্থন/প্রতিরোধ স্তর এবং ভলিউম ব্রেকআউট একত্রিত করা এবং আরও সম্ভাব্য মুনাফা অর্জনের জন্য লাভ গ্রহণের জন্য স্টপ লসকে গতিশীলভাবে সামঞ্জস্য করার জন্য ATR সূচক ব্যবহার করা।
কৌশলটি নিম্নলিখিত প্রধান যুক্তিগুলির সমন্বয়ে গঠিতঃ
পূর্ববর্তী L_Bars মোমবাতিগুলির সর্বোচ্চ মূল্য এবং পূর্ববর্তী R_Bars মোমবাতিগুলির সর্বনিম্ন মূল্য, প্রতিরোধ এবং সমর্থন স্তর হিসাবে গণনা করতে ta.pivothigh এবং ta.pivotlow ব্যবহার করুন।
যখন বন্ধের মূল্য প্রতিরোধের স্তরের উপরে অতিক্রম করে এবং ভলিউম ভলিউম রেঞ্জের সীমা অতিক্রম করে, তখন লং যান। যখন বন্ধের মূল্য সমর্থন স্তরের নীচে অতিক্রম করে এবং ভলিউম ভলিউম রেঞ্জের সীমা অতিক্রম করে, তখন শর্ট যান।
দীর্ঘ প্রবেশের পরে, স্টপ লস বন্ধ-এটিআর_এলও তে সেট করুন। সংক্ষিপ্ত প্রবেশের পরে, স্টপ লস বন্ধ + এটিআর_এসএইচ এ সেট করুন। এটি গতিশীল ট্রেলিং স্টপ লস সমন্বয় উপলব্ধি করে।
শুধুমাত্র ট্রেডিং সময় (০৯১৫-১৪৪৫) এর মধ্যে প্রতিদিন প্রথম সংকেত গ্রহণ করুন। ঝুঁকি ইনপুট দ্বারা নির্ধারিত দৈনিক ঝুঁকি সীমা পৌঁছানোর পরে কোনও নতুন অর্ডার নেই।
প্রবেশের নির্ভুলতা উন্নত করতে ভলিউম সূচকের সাথে সমর্থন / প্রতিরোধের তত্ত্ব ব্যবহার করুন।
ATR-এর উপর ভিত্তি করে ট্রেলিং স্টপ লস মার্কেটের অস্থিরতার উপর ভিত্তি করে স্টপ লেভেলকে নমনীয়ভাবে সামঞ্জস্য করতে পারে, লাভের পুনরুদ্ধারের সম্ভাবনা হ্রাস করে।
দৈনিক ট্রেডিংয়ের সময় এবং ট্রেডিং ঝুঁকি অনুযায়ী যথাযথ নিয়ন্ত্রণ প্রবণতা ধরতে এবং অত্যধিক স্টপ লস এড়াতে সহায়তা করে।
সমর্থন/প্রতিরোধ স্তর ব্যর্থ হতে পারে এবং কার্যকর প্রবেশ সংকেত প্রদান করতে অক্ষম।
এটিআর মাল্টিপ্লিফায়ারটি খুব বেশি সেট করলে স্টপ লস খুব বেশি দূরে থাকতে পারে, যা ক্ষতির ঝুঁকি বাড়িয়ে তুলতে পারে।
ভলিউম থ্রেশহোল্ড খুব কম সেট করা সুযোগগুলি মিস করতে পারে, খুব বেশি মিথ্যা সংকেত সৃষ্টি করতে পারে।
সমাধান:
বিভিন্ন পণ্যের বৈশিষ্ট্য অনুযায়ী সমর্থন/প্রতিরোধের পরামিতিগুলি সামঞ্জস্য করুন।
এটিআর গুণক এবং ভলিউম থ্রেশহোল্ড পরামিতিগুলি অপ্টিমাইজ করুন।
প্রবেশ সংকেত নিশ্চিত করার জন্য অন্যান্য সূচক যোগ করুন।
প্রবেশ সংকেত নির্ধারণে সহায়তার জন্য চলমান গড়ের মতো অন্যান্য সূচক যুক্ত করুন।
এটিআর গুণক এবং ভলিউম থ্রেশহোল্ডের মতো প্যারামিটারগুলি অপ্টিমাইজ করুন।
মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে ডায়নামিক প্যারামিটার অপ্টিমাইজেশান বাস্তবায়ন করা।
প্যারামিটার প্যাটার্ন খুঁজে পেতে অন্যান্য পণ্যগুলিতে কৌশলটি প্রসারিত করুন।
কৌশলটি বিভিন্ন বিশ্লেষণাত্মক সরঞ্জামগুলিকে একীভূত করে, সমর্থন / প্রতিরোধ, ভলিউম এবং স্টপ লস পদ্ধতি প্রয়োগ করে এবং ভাল ব্যাকটেস্ট ফলাফল অর্জন করে। তবে লাইভ ট্রেডিংয়ে আরও অনিশ্চয়তা থাকতে পারে, যা বাস্তব বিশ্বের পারফরম্যান্স উন্নত করতে প্যারামিটার অপ্টিমাইজেশন এবং অতিরিক্ত এন্ট্রি নিশ্চিতকরণ সূচকগুলির মতো আরও উন্নতি প্রয়োজন। সামগ্রিকভাবে, কৌশলটির স্পষ্ট যুক্তি এবং সহজ বোঝার রয়েছে, যা পরিমাণগত ট্রেডিং কৌশলগুলির জন্য একটি ভাল রেফারেন্স কেস সরবরাহ করে।
/*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)