
এই কৌশলটি একটি মিশ্রিত পরিমাণযুক্ত ট্রেডিং পদ্ধতি যা প্রযুক্তিগত সূচক দূরত্ব পরিমাপ এবং MACD বিপরীত সিগন্যালের সাথে মিলিত হয়। এটি বর্তমান বাজারের অবস্থা এবং পূর্বনির্ধারিত বুল বা বেয়ারের কেন্দ্রীয় পয়েন্টের মধ্যে ইউক্লিডের দূরত্ব গণনা করে এবং ম্যাকড সূচকের ক্রস সিগন্যালের সাথে মিলিত হয়ে একটি যৌগিক কৌশল তৈরি করে যা প্রবণতা গতিশীলতা ক্যাপচার করে এবং সম্ভাব্য বিপরীত চিহ্নিত করে। এই কৌশলটির বিশেষত্ব হ’ল একাধিক প্রযুক্তিগত সূচক (ইএমএ, অস্থিরতা, গতিশীলতা, আরএসআই এবং এমএসিডি) এর বৈশিষ্ট্যযুক্ত ভেক্টরগুলিকে একত্রিত করা, যা গাণিতিকভাবে বাজারের অবস্থা এবং পূর্বনির্ধারিত অবস্থার সাথে মিলিত হয়, যার ফলে আরও সুনির্দিষ্ট ট্রেডিং সিগন্যাল তৈরি হয়।
এই কৌশলটির মূল নীতি দুটি প্রধান পদ্ধতির উপর ভিত্তি করে তৈরি করা হয়েছেঃ
দূরত্ব পরিমাপ যন্ত্রকৌশলটি প্রথমে 6 টি প্রযুক্তিগত সূচকের বৈশিষ্ট্যযুক্ত ভেক্টর তৈরি করে, যার মধ্যে রয়েছে দামের ইএমএ, অস্থিরতা, গতিশীলতা, আরএসআই, এমএসিডি লাইন এবং এমএসিডি কলামযুক্ত গ্রাফ। একই সাথে, দুটি কেন্দ্রীয় পয়েন্ট ভেক্টর পূর্বনির্ধারিত করা হয় যা বাজারকে উত্থান ও পতনের প্রবণতায় অবস্থিত হওয়ার জন্য আদর্শ রাষ্ট্রকে প্রতিনিধিত্ব করে। বর্তমান বাজার অবস্থা ভেক্টর এবং এই দুটি কেন্দ্রীয় পয়েন্ট ভেক্টরগুলির মধ্যে ইউরোমিটার দূরত্ব গণনা করে কৌশলটি নির্ধারণ করতে পারে যে বর্তমান বাজারটি কোন রাজ্যের কাছাকাছি রয়েছে।
ম্যাকড ক্রস সিগন্যালদ্বিতীয় স্তরের নিশ্চিতকরণ হিসাবে, কৌশলটি MACD সূচকের ক্রস সিগন্যাল ব্যবহার করে বাজারের গতিশীলতার পরিবর্তনগুলি বিচার করতে। MACD লাইনের মাধ্যমে সংকেত লাইনটি কেনার সংকেত হিসাবে বিবেচিত হয়, এবং MACD লাইনের নীচে সংকেত লাইনটি বিক্রয় সংকেত হিসাবে বিবেচিত হয়।
এই দুটি পদ্ধতির সংমিশ্রণ দ্বৈত নিশ্চিতকরণ ব্যবস্থা গঠন করেঃ একদিকে, দূরত্ব পরিমাপ দ্বারা সামগ্রিক বাজার প্রবণতা বিচার করা হয়, অন্যদিকে, MACD ক্রস দ্বারা স্বল্পমেয়াদী গতিশীলতার পরিবর্তনগুলি বিচার করা হয়। কৌশলটি উভয় পদ্ধতির যৌথভাবে নিশ্চিতকরণ ব্যবহার করতে পারে (দূরত্ব পরিমাপ এবং MACD একই সময়ে একই সংকেত দেয়) বা যে কোনও পদ্ধতির স্বাধীনভাবে উত্পন্ন সংকেতের উপর ভিত্তি করে বাণিজ্য করতে পারে, সংকেতের বৈচিত্র্য এবং ক্যাপচার সুযোগের ফ্রিকোয়েন্সি বৃদ্ধি করে।
মাল্টি-ডাইমেনশনাল মার্কেট স্ট্যাটাস: একাধিক প্রযুক্তিগত সূচককে বৈশিষ্ট্যযুক্ত ভেক্টর হিসাবে একত্রিত করে, কৌশলটি কেবলমাত্র একক সূচকের উপর নির্ভর না করে একাধিক মাত্রা থেকে বাজারের অবস্থা মূল্যায়ন করতে সক্ষম হয়, যার ফলে মিথ্যা সংকেতের ঝুঁকি হ্রাস পায়।
নমনীয় সংকেত উত্পাদন প্রক্রিয়াকৌশলঃ দূরত্ব পরিমাপ এবং MACD ক্রসিং উভয় প্রক্রিয়া ব্যবহার করে একটি সংকেত উত্পাদন করে, যা প্রবণতার চলমান গতিশীলতা উভয়ই ক্যাপচার করতে পারে এবং সম্ভাব্য বিপরীত পয়েন্টগুলিকে সময়মতো সনাক্ত করতে পারে।
গাণিতিক মডেলের উদ্দেশ্যইওসিলিডের দূরত্ব গণনা বাজার অবস্থার মূল্যায়ন করার জন্য একটি বস্তুনিষ্ঠ, গাণিতিক পদ্ধতি প্রদান করে, যা বিষয়গত বিচারক প্রভাবকে হ্রাস করে।
স্বয়ংক্রিয় প্লেইন মেকানিজম: কৌশলটি স্বয়ংক্রিয়ভাবে বিপরীত দিকের অবস্থানগুলিকে নতুন সংকেত তৈরি করার সময় সমতল করে দেয়, যা দ্রুত পরিবর্তিত বাজারের সাথে খাপ খাইয়ে নিতে সময়মত ক্ষতি বন্ধ করতে এবং অবস্থানের দিক পরিবর্তন করতে সহায়তা করে।
পারফরম্যান্স মনিটরিং: কৌশলটি ট্রেডিংয়ের লাভ-ক্ষতির ট্র্যাকিং এবং প্রদর্শন করার জন্য অন্তর্নির্মিত, যা রিয়েল-টাইমে কৌশলটির কার্যকারিতা মূল্যায়ন এবং প্রয়োজনীয় প্যারামিটার সমন্বয় করতে সহায়তা করে।
প্যারামিটার সংবেদনশীলতা ঝুঁকিকৌশলগতভাবে ব্যবহৃত ইএমএ, আরএসআই এবং এমএসিডি ইত্যাদির মতো সূচকগুলি নির্দিষ্ট প্যারামিটার সেটিংয়ের উপর নির্ভর করে। যদি এই প্যারামিটারগুলি বর্তমান বাজারের অবস্থার জন্য উপযুক্ত না হয় তবে এটি ভুল সংকেত উত্পন্ন করতে পারে। সমাধানটি হ’ল অনুকূল প্যারামিটার সমন্বয় খুঁজে বের করা এবং প্যারামিটারগুলির কার্যকারিতা পর্যায়ক্রমে পুনরায় মূল্যায়ন করা।
অতিরিক্ত লেনদেনের ঝুঁকি: যেহেতু কৌশলটি দুটি ভিন্ন পদ্ধতির উপর ভিত্তি করে স্বাধীনভাবে সংকেত তৈরি করতে পারে, তাই বেশি অস্থির বাজারে অতিরিক্ত ট্রেডিং সিগন্যাল তৈরি হতে পারে, যা ট্রেডিংয়ের ব্যয় বাড়িয়ে তুলতে পারে। সংকেত ফিল্টারিং প্রক্রিয়া যুক্ত করে বা সংকেত উত্পাদন লজিক সামঞ্জস্য করে অপ্রয়োজনীয় ট্রেডিং হ্রাস করা যেতে পারে।
প্রবণতা এবং বিপরীত বিচার: কিছু বাজার অবস্থার অধীনে, দূরত্ব পরিমাপ এবং MACD সংকেতগুলি পরস্পরবিরোধী নির্দেশাবলী দিতে পারে, যার ফলে কৌশলগত আচরণ অসঙ্গতি সৃষ্টি করে। সুস্পষ্ট সংকেত অগ্রাধিকার নিয়ম স্থাপন বা অতিরিক্ত নিশ্চিতকরণ ব্যবস্থা চালু করার পরামর্শ দেওয়া হয়েছে।
সেন্ট্রাল পয়েন্ট সেটিং এর স্ট্যাটিকতা: বর্তমান কৌশলের কিছু প্যারামিটার স্ট্যাটিকভাবে সেট করা আছে (যেমন RSI মান) এবং এটি সমস্ত বাজার পরিস্থিতির সাথে খাপ খাইয়ে নিতে পারে না। একটি স্ব-অনুকূলিতকরণ ব্যবস্থা চালু করার কথা বিবেচনা করা যেতে পারে, যা ঐতিহাসিক তথ্যের উপর ভিত্তি করে কেন্দ্রীয় পয়েন্টের অবস্থানকে গতিশীলভাবে সামঞ্জস্য করে।
একক সময়সীমার সীমাবদ্ধতা: কৌশল শুধুমাত্র একটি একক সময় ফ্রেমে কাজ করে, বড় বা ছোট সময় ফ্রেম গুরুত্বপূর্ণ সংকেত মিস করতে পারে। একাধিক সময় ফ্রেম কৌশল প্রসারিত বিবেচনা সংকেত নির্ভরযোগ্যতা উন্নত করতে পারে।
স্বনির্ধারিত কেন্দ্রবিন্দু নকশা: বর্তমান বোর বা বিয়ার মার্কেটের কেন্দ্রীয় পয়েন্টের আংশিক প্যারামিটারগুলি স্থির, যা ঐতিহাসিক তথ্যের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে গণনা করা গতিশীল কেন্দ্রীয় পয়েন্ট হিসাবে উন্নত করা যেতে পারে। উদাহরণস্বরূপ, গত এন চক্রের ডেটা ব্যবহার করে একটি আদর্শ বোর বা বিয়ার মার্কেটের অবস্থা নির্ধারণ করা যেতে পারে, যাতে কেন্দ্রীয় পয়েন্টগুলি বাজারের অবস্থার সাথে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করতে পারে।
সংকেত অগ্রাধিকার এবং ফিল্টারিং: বাজার পরিবেশের উপর ভিত্তি করে একটি সংকেত অগ্রাধিকার সিস্টেম প্রবর্তন করুন, যেমন উচ্চ তরঙ্গের পরিবেশে বিপরীত সংকেতকে অগ্রাধিকার দেওয়া, নিম্ন তরঙ্গের প্রবণতা স্পষ্টভাবে পরিবেশে দূরত্ব পরিমাপ সংকেতকে অগ্রাধিকার দেওয়া। একই সাথে, তরঙ্গের হার বা বিনিময় পরিমাণের উপর ভিত্তি করে একটি সংকেত ফিল্টার যুক্ত করা যেতে পারে, যাতে শব্দ সংকেত হ্রাস করা যায়।
স্টপ লস এবং প্রফিট টার্গেট মেকানিজম: বর্তমান কৌশলগুলির একটি সুস্পষ্ট স্টপ লস এবং প্রফিট টার্গেট সেটআপের অভাব রয়েছে, এটি এটিআর বা ফিক্সড শতাংশের উপর ভিত্তি করে স্টপ লস প্রক্রিয়া এবং সমর্থন / প্রতিরোধের স্তর বা রিস্ক-রিটার্ন অনুপাতের উপর ভিত্তি করে প্রফিট টার্গেট সেটআপ যুক্ত করতে পারে।
মাল্টি টাইম ফ্রেম বিশ্লেষণ ইন্টিগ্রেশন: বৃহত্তর সময় ফ্রেমের ট্রেন্ড তথ্যকে বর্তমান কৌশলের সাথে একীভূত করা, যেমন ঘন্টার ভিত্তিতে ট্রেডিং সিগন্যাল কার্যকর করা, শুধুমাত্র যদি সূর্যমুখী প্রবণতা একই থাকে, যাতে সিগন্যালের নির্ভরযোগ্যতা বৃদ্ধি পায়।
গতিশীল বৈশিষ্ট্য ভারসাম্য: বৈশিষ্ট্য ভেক্টর মধ্যে বিভিন্ন সূচক জন্য গতিশীল ওজন বরাদ্দ, স্বয়ংক্রিয়ভাবে বিভিন্ন বাজারের অবস্থার অধীনে প্রতিটি সূচক ভবিষ্যদ্বাণী ক্ষমতা অনুযায়ী তাদের প্রভাব সামঞ্জস্য, দূরত্ব গণনা সঠিকতা উন্নত।
মেশিন লার্নিং: কেন্দ্রবিন্দু অবস্থান বা বৈশিষ্ট্য ওজন অপ্টিমাইজ করার জন্য একটি সহজ মেশিন লার্নিং অ্যালগরিদম প্রবর্তন বিবেচনা করা যেতে পারে, এমনকি একটি ক্লাস্টারিং অ্যালগরিদম ব্যবহার করে স্বয়ংক্রিয়ভাবে বাজারের একাধিক রাষ্ট্র কেন্দ্রবিন্দু আবিষ্কার করা যেতে পারে, কেবলমাত্র একটি সহজ ষাঁড় বা ভালুকের দুটি রাষ্ট্র নয়।
প্রযুক্তিগত সূচক দূরত্ব পরিমাপ এবং ম্যাকড বিপরীতমুখী মিশ্রিত পরিমাণগত ট্রেডিং কৌশল একটি উদ্ভাবনী পরিমাণগত ট্রেডিং পদ্ধতি যা ইউক্লিডের দূরত্ব গণনা প্রযুক্তির মাধ্যমে একাধিক সাধারণ প্রযুক্তিগত সূচককে একীভূত করে এবং ম্যাকড ক্রস সিগন্যালের সাথে একত্রিত করে একটি একক বাজার অবস্থা মূল্যায়ন ব্যবস্থায় ডাবল নিশ্চিতকরণ প্রক্রিয়া গঠন করে। এই পদ্ধতিটি চলমান প্রবণতাগুলির গতিশীলতা ক্যাপচার করতে এবং সম্ভাব্য বাজার বিপরীত চিহ্নিত করতে সক্ষম, শক্তিশালী অভিযোজনযোগ্যতা এবং নমনীয়তা রয়েছে।
এই কৌশলটির মূল সুবিধা হ’ল এর বহুমাত্রিক বাজার মূল্যায়ন ক্ষমতা এবং গাণিতিক মডেলের উদ্দেশ্যমূলকতা, তবে এটি প্যারামিটার সংবেদনশীলতা, অত্যধিক লেনদেন এবং সংকেত সংঘাতের মতো ঝুঁকির মুখোমুখি। এটির জন্য অনেক অপ্টিমাইজেশন এবং উন্নতি করার জায়গা রয়েছে, যেমন একটি স্ব-অনুকূল কেন্দ্রবিন্দু নকশা প্রবর্তন, সংকেত অগ্রাধিকার সিস্টেমকে অনুকূলিতকরণ, স্টপ মেশিন যুক্ত করা, মাল্টি-টাইম ফ্রেম বিশ্লেষণ এবং মেশিন লার্নিং প্রযুক্তি প্রয়োগ করা।
কোয়ান্টাম ট্রেডারদের জন্য, ঐতিহ্যবাহী প্রযুক্তিগত বিশ্লেষণ পদ্ধতির সাথে গাণিতিক মডেলের সংমিশ্রণ এই কৌশলটি একটি নতুন দিকের সন্ধান করে, বিশেষত যারা কৌশলটির ব্যাখ্যাযোগ্যতা বজায় রাখার পাশাপাশি ট্রেডিং সিদ্ধান্তের উদ্দেশ্যমূলকতা বাড়াতে চান তাদের জন্য উপযুক্ত।
/*backtest
start: 2024-04-15 00:00:00
end: 2024-12-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Bysq-Distance Reversal Entry - BTCUSDT (v6)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, margin_long=0, margin_short=0)
// ========== FEATURE ENGINEERING ==========
price = close
priceNorm = ta.ema(price, 5)
volatility = ta.stdev(price, 20)
momentum = ta.ema(close - close[5], 5)
rsi = ta.rsi(close, 14)
macdLine = ta.ema(close, 12) - ta.ema(close, 26)
signalLine = ta.ema(macdLine, 9)
macdHist = macdLine - signalLine
// Fitur sebagai vector
featureVector = array.new_float(6)
array.set(featureVector, 0, priceNorm)
array.set(featureVector, 1, volatility)
array.set(featureVector, 2, momentum)
array.set(featureVector, 3, rsi)
array.set(featureVector, 4, macdLine)
array.set(featureVector, 5, macdHist)
// Centroid bullish
bullishCentroid = array.new_float(6)
array.set(bullishCentroid, 0, price)
array.set(bullishCentroid, 1, volatility)
array.set(bullishCentroid, 2, momentum)
array.set(bullishCentroid, 3, 60.0)
array.set(bullishCentroid, 4, macdLine)
array.set(bullishCentroid, 5, macdHist)
// Centroid bearish
bearishCentroid = array.new_float(6)
array.set(bearishCentroid, 0, price)
array.set(bearishCentroid, 1, volatility)
array.set(bearishCentroid, 2, momentum)
array.set(bearishCentroid, 3, 40.0)
array.set(bearishCentroid, 4, macdLine)
array.set(bearishCentroid, 5, macdHist)
// Fungsi Euclidean Distance
euclideanDistance(arr1, arr2) =>
dist = 0.0
for i = 0 to array.size(arr1) - 1
a = array.get(arr1, i)
b = array.get(arr2, i)
dist += math.pow((a - b), 2)
math.sqrt(dist)
// Hitung jarak ke centroid
distToBullish = euclideanDistance(featureVector, bullishCentroid)
distToBearish = euclideanDistance(featureVector, bearishCentroid)
// ========== SINYAL ==========
// Original distance strategy signals
isDistanceBuySignal = distToBullish < distToBearish and ta.crossover(macdLine, signalLine)
isDistanceSellSignal = distToBearish < distToBullish and ta.crossunder(macdLine, signalLine)
// Reversal strategy signals
isReversalBuySignal = ta.crossover(macdLine, signalLine)
isReversalSellSignal = ta.crossunder(macdLine, signalLine)
// Combined signals - using both strategies
isBuySignal = isDistanceBuySignal or isReversalBuySignal
isSellSignal = isDistanceSellSignal or isReversalSellSignal
// ========== EKSEKUSI ==========
if isBuySignal
strategy.close("Sell") // Close any sell position first (from reversal strategy)
strategy.entry("Buy", strategy.long)
if isSellSignal
strategy.close("Buy") // Close any buy position first (from reversal strategy)
strategy.entry("Sell", strategy.short)
// ========== METRIK KINERJA ==========
float lastOpenTradeProfit = na
if strategy.opentrades > 0
lastOpenTradeProfit := strategy.opentrades.profit(strategy.opentrades - 1)
float lastClosedTradeProfit = na
if strategy.closedtrades > 0
lastClosedTradeProfit := strategy.closedtrades.profit(strategy.closedtrades - 1)
// Plot info
plot(lastOpenTradeProfit, title="Last Open Trade Profit", color=color.blue)
plot(lastClosedTradeProfit, title="Last Closed Trade Profit", color=color.orange)