
এই কৌশলটি চলমান পরিমাণের উপর ভিত্তি করে ট্রেডিং সংকেত উত্পন্ন করে। মূল ধারণাটি হল নির্দিষ্ট সময়ের মধ্যে দামের চলমান অবস্থা পর্যবেক্ষণ করা এবং চলমান পরিমাণের উপর ভিত্তি করে দামের প্রবণতার পরিবর্তনগুলি বিচার করা।
এই কৌশলটি একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন মূল্য, অর্থাৎ পিভট হাই এবং পিভট লো, গণনা করে দামের গতিবিধি নির্ধারণ করে।
বিশেষত, কৌশলটি অতীতের N-root K-র সর্বোচ্চ মূল্যকে একটি পিভট উচ্চ হিসাবে গণনা করে এবং অতীতের M-root K-র সর্বনিম্ন মূল্যকে একটি পিভট নিম্ন হিসাবে গণনা করে। যখন বর্তমান K-র উচ্চতা একটি পিভট উচ্চতা অতিক্রম করে, তখন একটি পল্টার সিগন্যাল উত্পন্ন হয়; যখন বর্তমান K-র নিম্নতা একটি পিভট নিম্নতা অতিক্রম করে, তখন একটি খালি সিগন্যাল উত্পন্ন হয়।
ওভার ও লস করার পর, কৌশলটি 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)