আপেক্ষিক গতির কৌশলের উপর ভিত্তি করে


সৃষ্টির তারিখ: 2024-01-29 08:38:04 অবশেষে সংশোধন করুন: 2024-01-29 08:38:04
অনুলিপি: 0 ক্লিকের সংখ্যা: 722
1
ফোকাস
1617
অনুসারী

আপেক্ষিক গতির কৌশলের উপর ভিত্তি করে

ওভারভিউ

আপেক্ষিক গতিশীলতা কৌশলটি শেয়ারের গতিশীলতা এবং সূচকগুলির তুলনা করে শেয়ারের শক্তি এবং বড় বাজারের তুলনায় দুর্বলতা নির্ধারণ করে। যখন শেয়ারের গতিশীলতা বড় বাজারের চেয়ে বেশি থাকে তখন কেনা হয় এবং যখন শেয়ারের গতিশীলতা বড় বাজারের চেয়ে কম থাকে তখন বিক্রি হয়, যাতে শেয়ারের বৃদ্ধির শিখর ধরা যায়।

কৌশল নীতি

এই কৌশলটি মূলত মূল বাজারের তুলনায় শেয়ারের শক্তি এবং দুর্বলতার মূল্যায়ন করে।

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

এই যুক্তি অনুযায়ী, আমরা একটি শেয়ারের উচ্চ প্রবৃদ্ধির সময় কিনতে পারি এবং যখন তার প্রবৃদ্ধির গতি কমে যায় তখন তা বিক্রি করতে পারি এবং উচ্চ প্রবৃদ্ধির সময় অতিরিক্ত লাভের জন্য লক করতে পারি।

সামর্থ্য বিশ্লেষণ

আপেক্ষিক গতিশীলতা কৌশল প্রধানত নিম্নলিখিত সুবিধার আছেঃ

  1. গতিশীলভাবে শীর্ষস্থানীয় শেয়ারগুলিকে ক্যাপচার করুন, নির্দিষ্ট পরিস্থিতি সম্পর্কে চিন্তা করবেন না, যতক্ষণ না শেয়ারগুলি বড় পোর্টের চেয়ে দ্রুত বৃদ্ধি পায় ততক্ষণ আপনি কিনতে পারেন
  2. চলমান গড় প্রক্রিয়াকরণের মাধ্যমে, সংকেতের নির্ভরযোগ্যতা বাড়ানোর জন্য স্বল্পমেয়াদী ওঠানামা থেকে ঝামেলা ফিল্টার করা যায়
  3. সহজ, সরাসরি ক্রয়-বিক্রয়, সহজেই বোঝা যায়
  4. আপেক্ষিক গতিশীলতার সময় পরামিতি, অপ্টিমাইজেশান কৌশল

ঝুঁকি বিশ্লেষণ

কিন্তু এই কৌশলগুলোতে কিছু ঝুঁকি রয়েছেঃ

  1. ব্যক্তিগত শেয়ারের বৃদ্ধির শীর্ষের পরে একটি বিপরীতমুখী সমন্বয় ঘটতে পারে, যার ফলে কম নিয়ন্ত্রণের ঝুঁকি রয়েছে
  2. আপেক্ষিক গতিশীলতা সূচক ভুল সংকেত দিতে পারে, এবং স্বীকৃত উচ্চতা প্রকৃত উচ্চতা নয়
  3. সর্বাধিক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস সেট করুন

এই ঝুঁকিগুলি যুক্তিসঙ্গত স্টপ লস, প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করার মতো পদ্ধতির মাধ্যমে নিয়ন্ত্রণ করা যেতে পারে।

অপ্টিমাইজেশান দিক

আপেক্ষিক গতিশীলতা কৌশল নিম্নলিখিত দিক থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. বিভিন্ন গতির গণনা সময় পরামিতি পরীক্ষা করুন এবং সর্বোত্তম প্যারামিটার খুঁজুন
  2. সর্বোত্তম প্যারামিটার খুঁজতে বিভিন্ন প্রকারের এবং দৈর্ঘ্যের চলমান গড় পরীক্ষা করুন
  3. ভুয়া ব্রেকডাউন এড়াতে ট্রানজিট ফিল্টার যুক্ত করা হয়েছে
  4. অন্যান্য প্রযুক্তিগত সূচকগুলির সাথে ক্রয়ের সময় নিশ্চিতকরণ

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-01-21 00:00:00
end: 2024-01-28 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HeWhoMustNotBeNamed

//@version=4
strategy("Relative Returns Strategy", overlay=false, initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, pyramiding = 1, commission_value = 0.01, calc_on_order_fills = true)

index_ticker=input("BTC_USDT:swap")
Loopback = input(40, step=20)
useStopAndIndexReturns = input(true)
useStopAndIndexReturnsMa = input(true)

useDifference = not useStopAndIndexReturns

MAType = input(title="Moving Average Type", defval="sma", options=["ema", "sma", "hma", "rma", "vwma", "wma"])
MALength = input(10, minval=10,step=10)

i_startTime = input(defval = timestamp("01 Jan 2010 00:00 +0000"), title = "Backtest Start Time", type = input.time)
i_endTime = input(defval = timestamp("01 Jan 2099 00:00 +0000"), title = "Backtest End Time", type = input.time)
inDateRange = true

f_secureSecurity(_symbol, _res, _src, _offset) => security(_symbol, _res, _src[_offset], lookahead = barmerge.lookahead_on)
f_getMovingAverage(source, MAType, length)=>
    ma = sma(source, length)
    if(MAType == "ema")
        ma := ema(source,length)
    if(MAType == "hma")
        ma := hma(source,length)
    if(MAType == "rma")
        ma := rma(source,length)
    if(MAType == "vwma")
        ma := vwma(source,length)
    if(MAType == "wma")
        ma := wma(source,length)
    ma

index = f_secureSecurity(index_ticker, '1D', close, 0)
stock_return = (close - close[Loopback])*100/close
index_return = (index - index[Loopback])*100/index

stock_return_ma = f_getMovingAverage(stock_return, MAType, MALength)
index_return_ma = f_getMovingAverage(index_return, MAType, MALength)
relativeReturns = stock_return - index_return
relativeReturns_ma = f_getMovingAverage(relativeReturns, MAType, MALength)

plot(useStopAndIndexReturns ? useStopAndIndexReturnsMa ? stock_return_ma : stock_return : na, title="StockReturn", color=color.green, linewidth=1)
plot(useStopAndIndexReturns ? useStopAndIndexReturnsMa ? index_return_ma : index_return : na, title="IndexReturn", color=color.red, linewidth=1)

plot(useDifference?relativeReturns:na, title="Relative-Returns", color=color.blue, linewidth=1)
plot(useDifference?relativeReturns_ma:na, title="MA", color=color.red, linewidth=1)

buyCondition = (useStopAndIndexReturns ? useStopAndIndexReturnsMa ? stock_return_ma > index_return_ma : stock_return > index_return : relativeReturns > relativeReturns_ma)
closeBuyCondition = (useStopAndIndexReturns ? useStopAndIndexReturnsMa ? stock_return_ma < index_return_ma : stock_return < index_return : relativeReturns < relativeReturns_ma)
strategy.entry("Buy", strategy.long, when=buyCondition and inDateRange, oca_name="oca")
strategy.close("Buy", when=closeBuyCondition)