পিভট পয়েন্ট এবং ঢাল উপর ভিত্তি করে রিয়েল টাইম ট্রেন্ডলাইন ট্রেডিং

লেখক:চাওঝাং, তারিখঃ ২০২৪-০৪-২৬ ১৫ঃ৩৪ঃ২৮
ট্যাগঃএটিআরএডিএক্সএমএ

img

সারসংক্ষেপ

এই কৌশলটি মূল্যের সুইং উচ্চ এবং নিম্ন চিহ্নিত করতে পিভট পয়েন্ট (পিভটহাই এবং পিভটলো) ব্যবহার করে এবং এই পয়েন্টগুলির উপর ভিত্তি করে উপরের এবং নীচের প্রবণতা লাইন আঁকে। প্রবণতা লাইনগুলির ঢালটি এটিআর (গড় সত্য পরিসীমা), স্ট্যান্ডার্ড বিচ্যুতি বা রৈখিক রিগ্রেশন যেমন পদ্ধতিগুলি ব্যবহার করে গণনা করা হয় এবং তারপরে একটি ঢাল ফ্যাক্টর দ্বারা সামঞ্জস্য করা হয়। যখন মূল্য একটি প্রবণতা লাইনটি ভেঙে যায়, তখন কৌশলটি একটি ক্রয় বা বিক্রয় সংকেত উত্পন্ন করে।

কৌশল নীতি

  1. একটি নির্দিষ্ট পুনর্বিবেচনার সময়কালে সুইং হাইস (পিএইচ) এবং সুইং লোস (পিএল) সনাক্ত করতে ta.pivothigh (()) এবং ta.pivotlow (()) ফাংশনগুলি ব্যবহার করুন।
  2. নির্বাচিত গণনা পদ্ধতির (এটিআর, স্ট্যান্ডার্ড ডিভিয়েশন, বা রৈখিক রিগ্রেশন) ভিত্তিতে প্রবণতা রেখাগুলির ঢাল গণনা করুন এবং একটি ঢাল ফ্যাক্টর (মাল্ট) দিয়ে গুণ করে এটি সামঞ্জস্য করুন।
  3. ঢাল এবং পিভট পয়েন্টের দাম ব্যবহার করে, আপগ্রেড ট্রেন্ড লাইন (উপরে) এবং ডাউনগ্রেড ট্রেন্ড লাইন (নীচে) এর বর্তমান মান গণনা করুন।
  4. বর্তমান বন্ধের মূল্য একটি প্রবণতা লাইন অতিক্রম করেছে কিনা তা নির্ধারণ করুনঃ যদি বন্ধের মূল্য ঊর্ধ্বমুখী প্রবণতা লাইনের উপরে থাকে তবে একটি ঊর্ধ্বমুখী ব্রেকআউট সংকেত উৎপন্ন হয়; যদি বন্ধের মূল্য ঊর্ধ্বমুখী প্রবণতা লাইনের নীচে থাকে তবে একটি ঊর্ধ্বমুখী ব্রেকআউট সংকেত উৎপন্ন হয়।
  5. চার্টে প্রবণতা লাইনগুলি প্লট করুন, লাইনগুলি বাড়ানোর বিকল্প সহ।
  6. ব্রেকআউটের সংকেতের ভিত্তিতে ট্রেড করুনঃ একটি উর্ধ্বমুখী ব্রেকআউটে লম্বা যান এবং একটি নিম্নমুখী ব্রেকআউটে সংক্ষিপ্ত যান।

কৌশলগত সুবিধা

  1. কৌশলটি মূল্য আচরণের উদ্দেশ্যমূলক তথ্য (পিভট পয়েন্ট এবং ট্রেন্ড লাইন) এর উপর ভিত্তি করে ট্রেডিং সংকেত তৈরি করে, যা নির্ভরযোগ্যতা এবং স্থিতিশীলতার একটি ডিগ্রি প্রদান করে।
  2. বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নেওয়ার জন্য ট্রেন্ড লাইনগুলির ঢালকে বাজারের অস্থিরতার উপর ভিত্তি করে গতিশীলভাবে সামঞ্জস্য করা যায়।
  3. ব্যবহারকারীরা কৌশল কর্মক্ষমতা অপ্টিমাইজ করার জন্য ঢাল গণনা পদ্ধতি এবং পরামিতি সেটিংস নমনীয়ভাবে চয়ন করতে পারেন।
  4. এই কৌশলটি বিভিন্ন ব্যবহারকারীর চাহিদা মেটাতে রিয়েল-টাইম এবং বিলম্বিত সংকেত মোড উভয়ই সরবরাহ করে।
  5. অন্তর্নির্মিত সতর্কতা ফাংশন ব্যবহারকারীদের সময়মত ট্রেডিং সুযোগ ক্যাপচার করতে সাহায্য করতে পারে।

কৌশলগত ঝুঁকি

  1. বাজারের অস্থিরতা বা যখন প্রবণতা অস্পষ্ট হয়, তখন কৌশলটি প্রায়শই মিথ্যা সংকেত তৈরি করতে পারে, যার ফলে মুনাফা হ্রাস পায়।
  2. কৌশলটির পারফরম্যান্স প্যারামিটার সেটিংসের উপর নির্ভর করে; অনুপযুক্ত প্যারামিটারগুলি কৌশলটি ব্যর্থ হতে পারে বা অত্যধিক ট্রেড তৈরি করতে পারে।
  3. বিলম্বিত সংকেত মোডে, ব্যাকটেস্টিংয়ের অস্তিত্বের কারণে, প্রকৃত ট্রেডিং ফলাফলগুলি ঐতিহাসিক পরীক্ষার ফলাফল থেকে পৃথক হতে পারে।

কৌশল অপ্টিমাইজেশান নির্দেশাবলী

  1. ট্রেন্ডলাইন ব্রেকআউট সংকেত নিশ্চিত করতে এবং সংকেতের গুণমান উন্নত করতে সহায়তা করার জন্য আরও প্রযুক্তিগত সূচক বা মূল্য আচরণের বৈশিষ্ট্য যেমন ট্রেডিং ভলিউম এবং অস্থিরতা প্রবর্তন করুন।
  2. মিথ্যা সংকেত হ্রাস করার জন্য ট্রেডিং সংকেতগুলি ফিল্টার করুন যেমন ট্রেন্ডলাইন ব্রেকআউটগুলির সময়কাল এবং মাত্রা বিবেচনা করে।
  3. পজিশন ম্যানেজমেন্ট এবং ঝুঁকি নিয়ন্ত্রণের অপ্টিমাইজেশন, যেমন প্রবণতা শক্তি বা অস্থিরতার উপর ভিত্তি করে পজিশন আকারকে গতিশীলভাবে সামঞ্জস্য করা এবং যুক্তিসঙ্গত স্টপ লস এবং লাভের স্তর নির্ধারণ করা।
  4. সেরা প্যারামিটার সমন্বয় খুঁজে পেতে মেশিন লার্নিং বা অপ্টিমাইজেশান অ্যালগরিদম ব্যবহার করে প্যারামিটার অপ্টিমাইজ করুন।

সংক্ষিপ্তসার

এই কৌশলটি একটি রিয়েল-টাইম ট্রেন্ডলাইন ট্রেডিং সিস্টেম তৈরির জন্য পিভট পয়েন্ট এবং ট্রেন্ডলাইন ঢাল ব্যবহার করে। ট্রেন্ডলাইন ব্রেকআউট ইভেন্টগুলি ক্যাপচার করে, কৌশলটি ট্রেন্ড গঠনের প্রাথমিক পর্যায়ে বাণিজ্য করতে পারে। যদিও কৌশলটির কিছু সুবিধা রয়েছে, তবুও অস্থির বাজারে এর ঝুঁকি সম্পর্কে সচেতন হওয়া এবং আরও তথ্য প্রবর্তন, সংকেত ফিল্টারিং, অবস্থান পরিচালনা এবং অন্যান্য পদ্ধতির মাধ্যমে কৌশলটির দৃust়তা এবং লাভজনকতা আরও বাড়ানো প্রয়োজন।


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(" only Ajay ", overlay=true)

//------------------------------------------------------------------------------
//Settings
//------------------------------------------------------------------------------{
length = input.int(14, 'Swing Detection Lookback')
mult = input.float(1., 'Slope', minval = 0, step = .1)
calcMethod = input.string('Atr', 'Slope Calculation Method', options = ['Atr','Stdev','Linreg'])
backpaint = input(true, tooltip = 'Backpainting offset displayed elements in the past. Disable backpainting to see real time information returned by the indicator.')

//Style
upCss = input.color(color.teal, 'Up Trendline Color', group = 'Style')
dnCss = input.color(color.red, 'Down Trendline Color', group = 'Style')
showExt = input(true, 'Show Extended Lines')

//------------------------------------------------------------------------------}
//Calculations
//------------------------------------------------------------------------------{
var upper = 0.
var lower = 0.
var slope_ph = 0.
var slope_pl = 0.

var offset = backpaint ? length : 0

n = bar_index
src = close

ph = ta.pivothigh(length, length)
pl = ta.pivotlow(length, length)

//Slope Calculation Method
slope = switch calcMethod
    'Atr'    => ta.atr(length) / length * mult
    'Stdev'  => ta.stdev(src,length) / length * mult
    'Linreg' => math.abs(ta.sma(src * n, length) - ta.sma(src, length) * ta.sma(n, length)) / ta.variance(n, length) / 2 * mult

//Get slopes and calculate trendlines
slope_ph := ph ? slope : slope_ph
slope_pl := pl ? slope : slope_pl

upper := ph ? ph : upper - slope_ph
lower := pl ? pl : lower + slope_pl

var upos = 0
var dnos = 0
upos := ph ? 0 : close > upper - slope_ph * length ? 1 : upos
dnos := pl ? 0 : close < lower + slope_pl * length ? 1 : dnos

//------------------------------------------------------------------------------}
//Extended Lines
//------------------------------------------------------------------------------{
// var uptl  = line.new(na,na,na,na, color = upCss, style = line.style_dashed, extend = extend.right)
// var dntl  = line.new(na,na,na,na, color = dnCss, style = line.style_dashed, extend = extend.right)

// if ph and showExt
//     uptl.set_xy1(n-offset, backpaint ? ph : upper - slope_ph * length)
//     uptl.set_xy2(n-offset+1, backpaint ? ph - slope : upper - slope_ph * (length+1))

// if pl and showExt
//     dntl.set_xy1(n-offset, backpaint ? pl : lower + slope_pl * length)
//     dntl.set_xy2(n-offset+1, backpaint ? pl + slope : lower + slope_pl * (length+1))

//------------------------------------------------------------------------------}
//Plots
//------------------------------------------------------------------------------{
plot(backpaint ? upper : upper - slope_ph * length, 'Upper', color = ph ? na : upCss, offset = -offset)
plot(backpaint ? lower : lower + slope_pl * length, 'Lower', color = pl ? na : dnCss, offset = -offset)

//Breakouts
upBreakout = upos > upos[1]
dnBreakout = dnos > dnos[1]

if (upBreakout)
    strategy.entry("Up Breakout", strategy.long)

if (dnBreakout)
    strategy.entry("Down Breakout", strategy.short)

//------------------------------------------------------------------------------}
//Alerts
//------------------------------------------------------------------------------{
alertcondition(upos > upos[1], 'Upward Breakout', 'Price broke the down-trendline upward')
alertcondition(dnos > dnos[1], 'Downward Breakout', 'Price broke the up-trendline downward')

//------------------------------------------------------------------------------}


সম্পর্কিত

আরো