অভিযোজিত নিয়মিত চলমান গড়ের উপর ভিত্তি করে ক্রস-মার্কেট আরবিট্রেজ কৌশল


সৃষ্টির তারিখ: 2023-11-16 16:20:11 অবশেষে সংশোধন করুন: 2023-11-16 16:20:11
অনুলিপি: 0 ক্লিকের সংখ্যা: 642
1
ফোকাস
1617
অনুসারী

অভিযোজিত নিয়মিত চলমান গড়ের উপর ভিত্তি করে ক্রস-মার্কেট আরবিট্রেজ কৌশল

ওভারভিউ

এই কৌশলটি বিভিন্ন বাজারগুলির মধ্যে আরবিট্রেডিংয়ের জন্য অভিযোজিত নিয়মিত চলমান গড় গণনা করে। এই কৌশলটি ক্রস-বাজার আরবিট্রেডিং, গতিশীল প্যারামিটার সমন্বয় এবং ঝুঁকি নিয়ন্ত্রণের মতো বৈশিষ্ট্য রয়েছে।

কৌশল নীতি

এই কৌশলটি প্রথমে একটি স্কেল মিনিম্যাক্স ফাংশন সংজ্ঞায়িত করে যা টাইম সিকোয়েন্সকে একটি নির্দিষ্ট পরিসরে মানক করে। তারপর একটি স্বনিয়ন্ত্রিত নিয়মিত চলমান গড় রেমা ফাংশন সংজ্ঞায়িত করে যা সিগন্যাল লাইনকে সমতল করার পরে গণনা করে। সিগন্যাল লাইনটি গণনা করা হয়ঃ

  1. একটি স্লাইডিং উইন্ডো সংজ্ঞায়িত করুন, ডিফল্ট দৈর্ঘ্য 5 দিন।
  2. প্রতিদিনের সিগভ্যালু হল আগের দিনের সিগভ্যালু এবং সেদিনের ক্লোজআপ মূল্যের ওজনযুক্ত গড়। ওজনযুক্ত গড়টি একটি অভিযোজিত ওজনযুক্ত প্রক্রিয়া ব্যবহার করে, বর্তমান মানের যত বেশি কাছাকাছি, তত বেশি ওজন।
  3. ল’র একটি ধ্রুবক পদ যোগ করা হয়েছে যাতে সিগ এর রূপান্তর আরও মসৃণ হয়।

সিগন্যাল লাইন পাওয়ার পর, কৌশলটি সিগন্যাল লাইনের সাথে দামের গোল্ডেন ফর্ক ডেড ফর্কের বিচার করে ডোফার সিদ্ধান্ত নেয়। বিশেষ করেঃ

  1. যখন সিগনেচার দাম পড়বে, তখন আরো বেশি কাজ করবে।
  2. যখন সিগনেচার দাম পড়বে, তখন খালি রাখবে।

এছাড়া, এই কৌশলটির জন্য একটি মসৃণকরণ ফ্যাক্টর যোগ করা হয়েছে, যার সাহায্যে কৌশলটি আরও নমনীয় হয়ে উঠতে পারে।

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

ঐতিহ্যগত মুভিং এভারেজ কৌশলগুলির তুলনায় এই কৌশলটির নিম্নলিখিত সুবিধাগুলি রয়েছেঃ

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

ঝুঁকি ও সমাধান

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. দ্বিপাক্ষিক ক্রসিংয়ের ত্রুটিযুক্ত সংকেত হওয়ার সম্ভাবনা বেশি। সমাধানটি হ’ল সঠিকভাবে মসৃণকরণ প্যারামিটারগুলি সামঞ্জস্য করা এবং সংকেত লাইনের ঝাঁকুনি এড়ানো।

  2. ক্রস-মার্কেট আরবিটারেজ নিশ্চিত করতে হবে যে দুটি বাজার মূল্যের সাথে সম্পর্কিত এবং একই গতিতে চলছে। সমাধানটি হ’ল উচ্চ-প্রাসঙ্গিকতার বাজার বেছে নেওয়া।

  3. প্যারামিটার অপ্টিমাইজেশনের জন্য পর্যাপ্ত ঐতিহাসিক ডেটা সংগ্রহ করা প্রয়োজন। সমাধান হল প্যারামিটারগুলিকে বাস্তব লেনদেনের সময় সাবধানে সামঞ্জস্য করা।

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

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকেও উন্নত করা যেতে পারেঃ

  1. প্যারামিটার নির্বাচনের জন্য, মেশিন লার্নিং অ্যালগরিদমের সাথে প্যারামিটার প্যারেন্টিংয়ের স্বয়ংক্রিয় অপ্টিমাইজেশান অন্তর্ভুক্ত করা যেতে পারে।

  2. সিগন্যাল জেনারেশনের ক্ষেত্রে, আরও সূচক যুক্ত করা যেতে পারে, যাতে আরও স্থিতিশীল ট্রেডিং সিগন্যাল তৈরি করা যায়।

  3. ঝুঁকি নিয়ন্ত্রণে, স্টপ লস লাইনটি একক ক্ষতি নিয়ন্ত্রণের জন্য সেট করা যেতে পারে

  4. ক্রস-মার্কেট অ্যাবারেটিং এর ক্ষেত্রে, এটি আরও প্রাসঙ্গিক ট্রেডিং প্রকারের জন্য প্রসারিত করা যেতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Crossover82%", overlay=true)

//
// Functions
//
scaleMinimax(X, p, min, max) => 
    hi = highest(X, p), lo = lowest(X, p)
    (max - min) * (X - lo)/(hi - lo) + min

rema(ts, p) => // regularized ma
    rm = 0.0, lambda = .5, a = 2 / (p + 1)
    rm := (nz(rm[1]) + a * (ts - nz(rm[1])) + lambda * (2 * nz(rm[1]) - nz(rm[2]))) / (lambda + 1)
    rm
    
//
// Inputs
//
X = input(close, title="Data source")
smooth = input(2, title="REMA smooth factor")
show_line = input(true, title="Show signal line")

//
// Main
//
p = 5
sig = rema(scaleMinimax(pow(X*p,-X) - 0.1, 100, lowest(X, 100), highest(X, 100)), smooth)

plot(show_line ? sig : na, linewidth=1)
plot(cross(sig, X) ? ohlc4 : na, style=circles, linewidth=8, color=blue, transp=50)

longCondition = crossover(sig, X)
if (longCondition)
    strategy.entry("LE", strategy.long)

shortCondition = crossunder(sig, X)
if (shortCondition)
    strategy.entry("SE", strategy.short)