এই কৌশলটি একটি নির্দিষ্ট সময়ের মধ্যে মূল্যের ব্রেকআউটের উপর ভিত্তি করে ট্রেডিং সংকেত তৈরি করে। মূল ধারণাটি নির্দিষ্ট সময়ের মধ্যে মূল্যের গতিবিধি পর্যবেক্ষণ করা এবং প্রবণতা পরিবর্তনগুলি নির্ধারণের জন্য মূল্য পরিসরের ব্রেকআউটগুলি ব্যবহার করা।
কৌশলটি একটি নির্দিষ্ট সময়সীমার মধ্যে মূল্যের সর্বোচ্চ উচ্চ এবং সর্বনিম্ন নিম্ন হিসাব করে, যা মূল্যের গতিবিধির পরিমাপ করার জন্য পিভট হাই এবং পিভট লো নামে পরিচিত।
বিশেষত, এটি অতীতের এন বারগুলির সর্বোচ্চ উচ্চতা পিভট উচ্চ হিসাবে এবং অতীতের এম বারগুলির সর্বনিম্ন নিম্নতা পিভট নিম্ন হিসাবে গণনা করে। বর্তমান বারটির উচ্চতা পিভট উচ্চতার উপরে ভাঙলে একটি দীর্ঘ সংকেত উত্পন্ন হয়। বর্তমান বারটির নিম্নটি পিভট নিম্নের নীচে ভাঙলে একটি সংক্ষিপ্ত সংকেত উত্পন্ন হয়।
এন্ট্রি করার পর, কৌশলটি স্টপ লস এবং ইনট্রা ডে স্টপ লসের জন্য ATR ব্যবহার করে। এটি একটি নির্দিষ্ট সময়সীমার মধ্যে (যেমন 14:55) সমস্ত অবস্থান বন্ধ করে দেয়।
কৌশলটি নির্দিষ্ট সময়ের মধ্যে সহজ দামের ব্রেকআউট ব্যবহার করে প্রবণতা কার্যকরভাবে ক্যাপচার করে, এটিকে দিনের মধ্যে ট্রেডিংয়ের জন্য আদর্শ করে তোলে। যুক্তিটি পরিষ্কার এবং বাস্তবায়ন করা সহজ।
সম্ভাব্য বিলম্ব, প্রারম্ভিক প্রবণতা শুরু মিস করতে পারে
প্রবেশের জন্য সময়সীমা সামঞ্জস্য করুন বা অন্যান্য সূচক একত্রিত করুন
প্রবণতা অস্পষ্ট হলে আরও মিথ্যা সংকেত
প্যারামিটার টিউন করুন, সূচক, ভলিউম ইত্যাদির মতো ফিল্টার যুক্ত করুন।
সক্রিয় ইনট্রা ডে ট্রেডিংয়ের জন্য উচ্চতর মূলধন ব্যয়
পজিশনের সাইজিং সামঞ্জস্য করুন, ধরে রাখার সময় বাড়ান
প্যারামিটার অপ্টিমাইজেশনের উপর নির্ভরশীলতা
মেশিন লার্নিং ইত্যাদি ব্যবহার করে পরিবর্তনশীল বাজারের অবস্থার সাথে পরামিতিগুলিকে মানিয়ে নিন
অন্যান্য মূল্যের তথ্য যেমন সাধারণ মূল্য, মধ্যম মূল্য ইত্যাদি পরীক্ষা করুন।
ভলিউম, অস্থিরতা মত ফিল্টার যোগ করুন
বিভিন্ন প্যারামিটার সমন্বয় চেষ্টা করুন
দিকনির্দেশনা নির্ধারণের জন্য প্রবণতা সূচক অন্তর্ভুক্ত করুন
মেশিন লার্নিং ব্যবহার করে স্বয়ংক্রিয়ভাবে প্যারামিটার অপ্টিমাইজ করুন
আরও ভাল এন্ট্রি জন্য একাধিক সময় ফ্রেম প্রসারিত করুন
কৌশলটি একটি পরিষ্কার এবং সংক্ষিপ্ত যুক্তিযুক্ত, ভাল মুনাফা ফ্যাক্টর সহ স্বল্পমেয়াদী প্রবণতা ক্যাপচার করতে কার্যকরভাবে মূল্য ব্রেকআউটের মূলধন অর্জন করে। পরীক্ষার জন্য সহজ এবং অপ্টিমাইজেশনের জন্য কয়েকটি টিউনেবল পরামিতি সহ এটি ইনট্রাডে ট্রেডিংয়ের জন্য উপযুক্ত। যদিও বিলম্ব এবং মিথ্যা সংকেত বিদ্যমান, তবে প্যারামিটার টিউনিং, ফিল্টারগুলি যুক্ত করা ইত্যাদির মাধ্যমে এগুলি মোকাবেলা করা যেতে পারে। কৌশলটি প্রচুর অপ্টিমাইজেশনের স্থান সহ একটি শক্তিশালী ব্রেকআউট-ভিত্তিক ট্রেডিং ফ্রেমওয়ার্ক সরবরাহ করে।
/*backtest start: 2022-10-27 00:00:00 end: 2023-11-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // ____________ _________ _____________ // |____________| ||________| ||__________| // || || || || // || ||________|| || // || H E ||________ U L L || H A R T I S T // || || || || // || ||________|| ||__________ // || ||________| ||__________| //@version=5 // strategy("PIVOT STRATEGY [5MIN TF]",overlay=true ,commission_type = strategy.cash, commission_value = 30 , slippage = 2, default_qty_value = 60, currency = currency.NONE, pyramiding = 0) leftbars = input(defval = 10) rightbars = input(defval = 15) // ═══════════════════════════ // // ——————————> INPUTS <——————— // // ═══════════════════════════ // 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, '0935-1400:1234567') time_cond = true // ══════════════════════════════════ // // ———————————> 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 longStop = close - ATR_LO shortStop = 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') // ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ // // ————————————————————————————————————————————————————————> PIVOT DATA <———————————————————————————————————————————————————————————————————————————————————————————————————— // // ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ // ph = ta.pivothigh(close,leftbars, rightbars) pl = ta.pivotlow(close,leftbars, rightbars) pvt_condition1 = not na(ph) upper_price = 0.0 upper_price := pvt_condition1 ? ph : upper_price[1] pvt_condition2 = not na(pl) lower_price = 0.0 lower_price := pvt_condition2 ? pl : lower_price[1] // Signals long = ta.crossover(high, upper_price + syminfo.mintick) short = ta.crossunder(low, lower_price - syminfo.mintick) plot(upper_price, color= close > ema1 ? color.green : na, style=plot.style_line, title='PH') plot(lower_price, color= close < ema1 ? color.red : na, style=plot.style_line, title='PL') // ══════════════════════════════════// // ————————> LONG POSITIONS <————————// // ══════════════════════════════════// //******barinstate.isconfirmed used to avoid repaint in real time******* if ( long and strategy.opentrades==0 and barstate.isconfirmed and time_cond and close >= ema1 ) 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 ( short and strategy.opentrades==0 and barstate.isconfirmed and time_cond and close <= ema1 ) 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 == 55) // ════════════════════════════════════════// // ————————> MAX INTRADAY LOSS <————————— // // ════════════════════════════════════════// // strategy.risk.max_intraday_loss(type = strategy.cash, value = risk)