ডায়নামিক সান্তা ক্লাউস রিগ্রেশন কৌশল একটি পরিমাণগত ট্রেডিং কৌশল যা মূল্য এবং বার সূচকের মধ্যে গতিশীল রিগ্রেশন সম্পর্কের উপর ভিত্তি করে সম্ভাব্য প্রবেশ এবং প্রস্থান পয়েন্টগুলি সনাক্ত করে। এই কৌশলটি দামের রিগ্রেশন ট্রেন্ড লাইনটি প্লট করার জন্য একটি গতিশীলভাবে সামঞ্জস্যযোগ্য চলমান গড় প্যারামিটার ব্যবহার করে। রিগ্রেশন লাইনের দিক বিশ্লেষণ করে, এটি অবস্থান প্রবেশ বা প্রস্থান কিনা তা নির্ধারণ করে।
এই কৌশলটির মূলটি হ'ল মূল্য এবং বার সূচকের মধ্যে রৈখিক রিগ্রেশন সম্পর্ক গণনা করা। এটি প্রথমে সহজ চলমান গড় এবং দৈর্ঘ্যের স্ট্যান্ডার্ড বিচ্যুতি এন গণনা করে। তারপরে নমুনা সম্পর্কিত সহগ এবং স্ট্যান্ডার্ড বিচ্যুতি অনুপাতের উপর ভিত্তি করে এটি রিগ্রেশন রেখার ঢাল কে এবং ছেদ b পায়। এর ফলে একটি গতিশীলভাবে সামঞ্জস্য করা রৈখিক রিগ্রেশন সমীকরণ হয়ঃ
y = kx + b
যেখানে x হল বার ইনডেক্স, এবং y হল মূল্য।
রিগ্রেশন লাইনের বর্তমান এবং পূর্ববর্তী মানগুলির মধ্যে মাত্রা সম্পর্ক অনুসারে, প্রবণতা দিক নির্ধারিত হয়। যদি রিগ্রেশন লাইনটি বাড়ছে এবং বন্ধের মূল্য খোলার মূল্য এবং পূর্ববর্তী মুহুর্তের সর্বোচ্চ মূল্যের চেয়ে বেশি হয় তবে একটি ক্রয় সংকেত উত্পন্ন হয়। যদি রিগ্রেশন লাইনটি পড়ে এবং বন্ধের মূল্য খোলার মূল্য এবং পূর্ববর্তী মুহুর্তের সর্বনিম্ন মূল্যের চেয়ে কম হয় তবে একটি বিক্রয় সংকেত উত্পন্ন হয়।
ভুল N মান সেটিং রিগ্রেশন লাইন খুব মসৃণ বা সংবেদনশীল হতে পারে
স্বল্পমেয়াদী মূল্যের অস্থিরতা, রিগ্রেশন সম্পর্কের বিচার ব্যর্থ
রিং অনুপাত শুধুমাত্র সময় এক বিন্দু বিবেচনা করে এবং স্থানীয় চরম মিস করতে পারেন
ডায়নামিক সান্তা ক্লাউস রিগ্রেশন কৌশল একটি নমনীয়, স্বজ্ঞাত এবং সামঞ্জস্যযোগ্য পরিমাণগত ট্রেডিং সিস্টেম বাস্তবায়নের জন্য মূল্য এবং সময়ের মধ্যে গতিশীল রিগ্রেশন সম্পর্ক ব্যবহার করে। এই কৌশলটির যুক্তি পরিষ্কার এবং সহজেই বোঝা যায়। প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে এটি বিভিন্ন ট্রেডিং পণ্য এবং চক্রগুলিতে প্রয়োগ করা যেতে পারে। এই কৌশলটির উদ্ভাবনটি একটি গতিশীল মডেল প্রতিষ্ঠার জন্য সময় ফ্যাক্টরগুলির প্রবর্তনে রয়েছে, যা রায়গুলিকে আরও ট্রেন্ডিং করে তোলে। সংক্ষেপে, এই কৌশলটি পরিমাণগত ট্রেডিংয়ের জন্য একটি মূল্যবান নমুনা সরবরাহ করে।
/*backtest start: 2023-01-05 00:00:00 end: 2024-01-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Creator - TradeAI strategy('Moving Santa Claus Strategy | TradeAI', overlay=true) // Set the length of the moving average length = input(64) // Calculate the moving averages and standard deviations x = bar_index y = close x_ = ta.sma(x, length) y_ = ta.sma(y, length) mx = ta.stdev(x, length) my = ta.stdev(y, length) c = ta.correlation(x, y, length) slope = c * (my / mx) // Calculate the parameters of the regression line inter = y_ - slope * x_ reg = x * slope + inter // Set the line color based on whether EMA is moving up or down var color lineColor = na if (reg > reg[1] and (close > open and close > high[1])) lineColor := color.new(#d8f7ff, 0) if (reg < reg[1] and (close < open and close < low[1])) lineColor := color.new(#ff383b, 0) // Plot the EMA line with different thicknesses plot(reg, color=lineColor, title="EMA") var color lineColorrr = na if (reg > reg[1] and (close > open and close > high[1])) lineColorrr := color.new(#d8f7ff, 77) if (reg < reg[1] and (close < open and close < low[1])) lineColorrr := color.new(#ff383b, 77) plot(reg, color=lineColorrr, title="EMA", linewidth=5) var color lineColorr = na if (reg > reg[1] and (close > open and close > high[1])) lineColorr := color.new(#d8f7ff, 93) if (reg < reg[1] and (close < open and close < low[1])) lineColorr := color.new(#ff383b, 93) plot(reg, color=lineColorr, title="EMA", linewidth=10) var color lineColorrrr = na if (reg > reg[1] and (close > open and close > high[1])) lineColorrrr := color.new(#d8f7ff, 97) if (reg < reg[1] and (close < open and close < low[1])) lineColorrrr := color.new(#ff383b, 97) plot(reg, color=lineColorr, title="EMA", linewidth=15) var color lineColorrrrr = na if (reg > reg[1] and (close > open and close > high[1])) lineColorrrrr := color.new(#d8f7ff, 99) if (reg < reg[1] and (close < open and close < low[1])) lineColorrrrr := color.new(#ff383b, 99) plot(reg, color=lineColorr, title="EMA", linewidth=20) // Implement trading strategy based on EMA direction if reg > reg[1] and (close > open and close > high[1]) strategy.entry('buy', strategy.long) if reg < reg[1] and (close < open and close < low[1]) strategy.close('buy')