এই কৌশলটি ভারতীয় বাজারগুলির জন্য একটি দিনের ট্রেডিং ইন্ট্রাডে কনসোলিডেশন ব্রেকআউট সূচক। এটি সময় শর্ত, কমিশন এবং স্টপ-লস ট্রেইলিং অন্তর্ভুক্ত করে। এই কৌশলটির সুবিধাগুলির মধ্যে পরিষ্কার যুক্তি, নমনীয় পরামিতি টিউনিং এবং বাজারের গতিশীলতার সাথে অভিযোজন অন্তর্ভুক্ত রয়েছে। তবে কিছু ঝুঁকি রয়েছে এবং আরও অপ্টিমাইজেশনের প্রয়োজন।
মূল কৌশলটি বোলিংজার ব্যান্ডের উপর ভিত্তি করে। এটি একটি লম্বা সময়ের সহজ চলমান গড় ব্যবহার করে কারণ মাঝারি লাইন এবং আপ / লো ব্যান্ডগুলি +MULT/-MULT স্ট্যান্ডার্ড বিচ্যুতি। উপরের ব্যান্ডের উপরে বন্ধ বিরতির সময় কিনুন সংকেত উত্পন্ন হয় এবং নিম্ন ব্যান্ডের নীচে বন্ধ বিরতির সময় বিক্রয় সংকেত উত্পন্ন হয়, রেঞ্জ ব্রেকআউট কৌশল গঠন করে।
ঝুঁকি নিয়ন্ত্রণের জন্য, এটি স্টপ লস লাইনের জন্য এটিআর ব্যবহার করে। এটি ভারতীয় বাজারের ট্রেডিং সময়ও বিবেচনা করে এবং প্রতিদিন 14:57 এ সমস্ত অবস্থান বন্ধ করে দেয়।
এই কৌশলটির সুবিধাঃ
এই কৌশলের ঝুঁকি:
নিম্নলিখিত উপায়ে ঝুঁকি কমাতে পারেঃ
কৌশলটি বেশ কয়েকটি দিক থেকে অপ্টিমাইজ করা যেতে পারেঃ
মডেল এবং অ্যালগরিদম অপ্টিমাইজেশনের মাধ্যমে, প্যারামিটার টিউনিং এবং সিগন্যাল ফিল্টারিং ক্ষমতা আরও বিস্তৃত অভিযোজন এবং উচ্চতর ঝুঁকি সহনশীলতার জন্য উন্নত করা যেতে পারে।
সংক্ষেপে, এটি একটি সরল অন্তঃদিবস ব্রেকআউট কৌশল। এটি ভারতীয় বাজারের নির্দিষ্টকরণগুলি সম্বোধন করে এবং ট্রেডিং ঝুঁকিগুলি নিয়ন্ত্রণ করে। প্যারামিটার টিউনিং এবং সিগন্যাল ফিল্টারিংয়ের আরও উন্নতির সাথে, এই কৌশলটি বাণিজ্যিকীকরণের প্রয়োজনীয়তা পূরণ করতে পারে।
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Consolidation Breakout [Indian Market Timing]",overlay = true , pyramiding = 0 ,initial_capital = 50000, default_qty_value=5, currency = currency.NONE,commission_type = strategy.cash, commission_value = 30, slippage = 1 ) // ══════════════════════════════════// // ————————> INPUT VALUES <————————— // // ══════════════════════════════════// LENGTH = input.int(title='LENGTH', defval = 75, minval = 10 ,maxval = 300) MULT = input.float(title='MULT_STDEV',defval = 3.2 , minval = 1 , maxval = 7 , step =0.1) //EMA1 = input.int(title='EMA1', defval = 50, minval = 10 ,maxval = 550) //EMA2 = input.int(title='EMA2', defval = 135, minval = 10 ,maxval = 550) factor_tr = input.float(title = "ATR TRAIL", defval = 10, step = 0.1) // ══════════════════════════════════// // ————————> DAY TIME LIMIT <——————— // // ══════════════════════════════════// t = time(timeframe.period, '0935-1430:1234567') time_condition = not na(t) //**********************// ════════════════════════════════// //**********************// ————————> ATR & PLOT <————————— // //**********************// ════════════════════════════════// //ema1 = ta.ema(close,EMA1) //ema2 = ta.ema(close,EMA2) //plot(ema1, color=color.new(color.blue, 0), style=plot.style_linebr, title='ema1') //plot(ema2, color=color.new(color.yellow, 0), style=plot.style_linebr, title='ema2') atr_tr = ta.atr(16)*factor_tr longStop = close - atr_tr shortStop = close + atr_tr Entry = close length = LENGTH mult = MULT basis = ta.sma(Entry , length) dev = mult * ta.stdev(Entry , length) upper = (basis + dev) lower = (basis - dev) buyEntry = ta.crossover(Entry , upper) sellEntry = ta.crossunder(Entry , lower) //plot(upper, color=color.new(color.red, 0), style=plot.style_linebr, title="short stop") //plot(lower, color=color.new(color.green, 0), style=plot.style_linebr, title="Long stop") plot(upper, color=close[1] > upper and close > upper ? color.green : color.red, linewidth=2) plot(lower, color=close[1] > lower and close > lower ? color.green : color.red, linewidth=2) // ══════════════════════════════════// // ————————> LONG POSITIONS <————————// // ══════════════════════════════════// //******barinstate.isconfirmed used to avoid repaint in real time******* if ( buyEntry and strategy.opentrades==0 and barstate.isconfirmed and time_condition) strategy.entry(id= "Long" ,direction = strategy.long, comment = "B") plot(longStop , color=color.new(color.blue, 0), style=plot.style_linebr, title='long Stop') if strategy.position_size > 0 strategy.exit("long tsl", "Long" , stop = longStop , comment='S') // ═════════════════════════════════════// // ————————> SHORT POSITIONS <————————— // // ═════════════════════════════════════// if ( sellEntry and strategy.opentrades==0 and barstate.isconfirmed and time_condition) strategy.entry(id = "Short" ,direction = strategy.short, comment = "S") if strategy.position_size < 0 strategy.exit("short tsl", "Short" , stop = shortStop ,comment='B') // ════════════════════════════════════════════════// // ————————> CLOSE ALL POSITIONS BY 3PM <————————— // // ════════════════════════════════════════════════// strategy.close_all(when = hour == 14 and minute == 57)