Type/to search
2
Follow
484
Followers
মুভিং এভারেজ স্ক্রিনিং কোয়ান্টিটেটিভ স্ট্র্যাটেজি: হ্যারনেস ইঞ্জিনিয়ারের ধারণার একটি কোয়ান্টিটেটিভ অনুশীলন
Discussions
Created 2026-04-17 11:55:34  Updated 2026-04-21 09:00:18
 0
 374

img

ভূমিকা: Harness Engineer চিন্তাধারা

সম্প্রতি AI/ML ইঞ্জিনিয়ারিং সম্প্রদায়ে একটি চিন্তাধারা ক্রমশ ব্যাপকভাবে আলোচিত হচ্ছে——Harness Engineer

এর মূল ধারণা অত্যন্ত সহজ:

নিজে মাথা খাটিয়ে উত্তর দেওয়ার চেয়ে, একটি কাঠামো তৈরি করা ভালো, যেখানে ডেটা এবং পরীক্ষা-নিরীক্ষা নিজেরাই উত্তর খুঁজে বের করবে

প্রচলিত ইঞ্জিনিয়ারদের পদ্ধতি হলো: আমি মনে করি প্যারামিটার A ভালো, আমি কোড লিখে A বাস্তবায়ন করব। Harness Engineer-এর পদ্ধতি হলো: আমি জানি না A, B, C-এর মধ্যে কোনটি ভালো, আমি একটি কাঠামো তৈরি করব, A, B, C-কে একসাথে চালাতে দেব, ডেটা আমাকে উত্তর বলবে।

ইঞ্জিনিয়ারের কাজ হলো অনুসন্ধান স্থান এবং মূল্যায়ন মানদণ্ড সংজ্ঞায়িত করা, এবং সিস্টেমের কাজ হলো সেই স্থানের মধ্যে স্বয়ংক্রিয়ভাবে সর্বোত্তম সমাধান খুঁজে বের করা। এই চিন্তাধারা ML-এ walk-forward optimization, AutoML-এর সাথে সঙ্গতিপূর্ণ; কোয়ান্টিটেটিভ ফিনান্সে, এটির প্রাকৃতিক প্রয়োগের জায়গাও আছে।

img

অদ্ভুত কয়েন: সবচেয়ে স্পষ্ট ট্রেন্ডের যুদ্ধক্ষেত্র

ক্রিপ্টোকারেন্সি কন্ট্রাক্ট মার্কেটে, এক ধরনের কয়েন বিশেষভাবে মনোযোগের দাবি রাখে——অত্যাধিক ট্রেডিং ভলিউমের "অদ্ভুত কয়েন"।

এই ধরনের কয়েনের কিছু সাধারণ বৈশিষ্ট্য আছে:

  • মূলধন অত্যন্ত কেন্দ্রীভূত, বড় প্লেয়ারের আচরণ স্পষ্ট
  • ট্রেন্ড ধারাবাহিকতা তুলনামূলকভাবে শক্তিশালী, একবার শুরু হলে প্রায়ই বেশিক্ষণ স্থায়ী হয়
  • অস্থিরতা বেশি, কিছু উচ্চ ভলিউমের কয়েন নির্দিষ্ট সময়ে শক্তিশালী ট্রেন্ড দেখায়, মোভিং এভারেজ স্ট্র্যাটেজি এই ধরনের সম্পদে ঐতিহাসিক ব্যাকটেস্টে তুলনামূলক ভালো ফলাফল দেখায়

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

শুধু একটি প্রশ্ন আছে: কোন কয়েনগুলো অদ্ভুত? কোন MA প্যারামিটার সেট ব্যবহার করতে হবে?

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

এখানেই Harness Engineer চিন্তাধারার আবির্ভাব

কৃত্রিমভাবে কয়েন নির্বাচন এবং প্যারামিটার টিউন করার চেয়ে, এই দুটি সমস্যাকে কাঠামোর কাছে ছেড়ে দেওয়া ভালো——মূল্যায়ন মানদণ্ড সংজ্ঞায়িত করুন, ঐতিহাসিক ডেটাকে প্রার্থী স্থানের মধ্যে নিজে নিজেই উত্তর বের করতে দিন। মানুষের শুধু সিদ্ধান্ত নিতে হবে কোন মাপকাঠিতে ভালো-মন্দ পরিমাপ করা হবে, বাকিটা সিস্টেমের উপর ছেড়ে দিন।

এই চিন্তার ভিত্তিতে, পুরো কৌশলটি একটি ঘূর্ণায়মান নির্বাচন কাঠামো হিসেবে ডিজাইন করা হয়েছে, যা তিন স্তরে কাজ করে।

img

কৌশল স্থাপত্য: দ্বি-স্তর রেস মেকানিজম

প্রথম স্তর: সম্পদ পুল নির্মাণ

পুরো বাজারের কন্ট্রাক্ট প্রকার থেকে, USD ট্রেডিং ভলিউম অনুযায়ী অবরোহী ক্রমে প্রথম ১৫০টি কয়েনকে প্রার্থী পুল হিসাবে নেওয়া হয়।

কেন ভলিউম? কারণ যেখানে ভলিউম বেশি, সেখানে মূলধন সবচেয়ে কেন্দ্রীভূত, ট্রেন্ড তৈরি হওয়ার সম্ভাবনা সবচেয়ে বেশি, এবং অদ্ভুত কয়েনও সবচেয়ে ঘন। এই ধাপে কোন সাবজেক্টিভ বিচার নেই, শুধু বাজারের মূলধনকে ভোট দিতে দেওয়া হয়, যার ট্রেডিং ভলিউম বেশি সে পুলে প্রবেশ করে।

javascript
const filtered = tickers .filter(t => t.Symbol.endsWith('USDT.swap')) .map(t => ({ symbol: t.Symbol, quoteVolume: t.Last * t.Volume })) .sort((a, b) => b.quoteVolume - a.quoteVolume) .slice(0, topN) .map(t => t.symbol);

যুক্তি অত্যন্ত সরাসরি: USDT কন্ট্রাক্ট প্রকার ফিল্টার, USD ভলিউম গণনা, অবরোহী ক্রমে সাজানো, প্রথম Nটি নেওয়া। কোন সাবজেক্টিভ বিচার নেই, বাজারের মূলধন নিজেই ভোট দেয়।

দ্বিতীয় স্তর: দ্বি-স্তর রেস নির্বাচন

এটি পুরো কৌশলের সবচেয়ে গুরুত্বপূর্ণ অংশ, এবং যেখানে Harness চিন্তাধারা সবচেয়ে স্পষ্টভাবে প্রকাশ পায়।

সঠিক কার্যকরী ক্রমটি এরকম:

img

⚠️ দ্রষ্টব্য: সর্বোত্তম প্যারামিটারের স্কোর দিয়ে সেই কয়েনের ক্ষমতা প্রতিনিধিত্ব করা, নিজেই একটি নির্দিষ্ট মাত্রার ওভারফিটিং ঝুঁকি ধারণ করে——ইতিহাসে সবচেয়ে ভালো পারফর্ম করা প্যারামিটার ভবিষ্যতে সমানভাবে কার্যকর নাও হতে পারে। এই সীমাবদ্ধতা নিবন্ধের পরবর্তী অংশে আরও আলোচনা করা হবে।

ব্যাকটেস্ট প্রক্রিয়া

প্রার্থী পুলের প্রতিটি কয়েনের জন্য, একই সাথে একাধিক MA প্যারামিটার কম্বিনেশন চালানো হয়, প্রতিটি প্যারামিটার সেট ঐতিহাসিক K-লাইনে স্বাধীনভাবে চলে, বাস্তব ক্রসওভার খোলা/বন্ধ করার যুক্তি অনুকরণ করে:

javascript
// প্রতিটি কয়েন × প্রতিটি প্যারামিটার সেটের জন্য পুনরাবৃত্তি for (const params of maParamsList) { const bt = backtest_MA(records, params.fast, params.slow); // প্রতিটি ব্যাকটেস্ট স্বাধীনভাবে ফলাফল দেয়: জয়ের হার, লাভ-ক্ষতির অনুপাত, সর্বোচ্চ ড্রডাউন, সিগন্যাল সংখ্যা }

প্রতিটি ব্যাকটেস্টের মূল যুক্তি হল স্ট্যান্ডার্ড ডাবল মোভিং এভারেজ ক্রসওভার:

javascript
const crossUp = fastMA[i-1] <= slowMA[i-1] && fastMA[i] > slowMA[i]; const crossDown = fastMA[i-1] >= slowMA[i-1] && fastMA[i] < slowMA[i]; if (crossUp) position = { side: 'long', entryPrice: records[i].Close }; if (crossDown) position = { side: 'short', entryPrice: records[i].Close };

সমন্বিত স্কোরিং

ব্যাকটেস্ট শেষ হওয়ার পর, প্রতিটি প্যারামিটার সেটের ব্যাকটেস্ট ফলাফলের সমন্বিত স্কোর গণনা করা হয়। স্কোর দুটি অংশ নিয়ে গঠিত:

প্রমিত ওজনযুক্ত স্কোর (মোট সহগ ০.৮০):

javascript
const score = Math.min(bt.winRate * 100, 100) * 0.30 // জয়ের হার, সর্বোচ্চ ১০০ তে সীমাবদ্ধ + Math.min(bt.profitFactor * 20, 60) * 0.30 // লাভ-ক্ষতির অনুপাত, সর্বোচ্চ ৬০ তে সীমাবদ্ধ + Math.max(0, 1 - bt.maxDrawdown / maxMDD) * 100 * 0.20 // সর্বোচ্চ ড্রডাউন নিয়ন্ত্রণ + volPct * volPctBonus // অস্থিরতা পার্সেন্টাইল বোনাস বোনাস আইটেম

অস্থিরতা পার্সেন্টাইল বোনাস বোনাস আইটেম: শেষ আইটেম volPct × volPctBonus (ডিফল্ট সহগ ১০) হল ওজন সিস্টেমের বাইরের একটি পুরস্কার আইটেম, যা সমান স্কোরের শর্তে, বর্তমান অস্থিরতা ঐতিহাসিক উচ্চ পার্সেন্টাইলে থাকা কয়েন নির্বাচনের পক্ষে——কারণ এই ধরনের কয়েনে প্রায়শই ট্রেন্ড বেশি সক্রিয় থাকে।

এটি উল্লেখ করা প্রয়োজন যে, এই ওজন এবং বোনাস সহগগুলি অভিজ্ঞতা-ভিত্তিক নির্ধারণ, অপ্টিমাইজেশনের মাধ্যমে পাওয়া যায়নি, বাস্তব ব্যবহারে বাজারের পরিবেশ অনুযায়ী আরও সামঞ্জস্য করা যেতে পারে।

প্রথম স্তর প্রতিযোগিতা: প্যারামিটার প্রতিযোগিতা

একই কয়েনের একাধিক প্যারামিটার সেট নিজ নিজ স্কোর পায়, সর্বোচ্চ স্কোরের সেটটিকে সেই কয়েনের প্রতিনিধি স্কোর এবং সর্বোত্তম প্যারামিটার হিসাবে নেওয়া হয়:

javascript
if (score > bestScore) { bestScore = score; bestResult = bt; bestParams = params; // বর্তমান ঐতিহাসিক কর্মক্ষমতার সর্বোত্তম প্যারামিটার কম্বিনেশন রেকর্ড }

দ্বিতীয় স্তর প্রতিযোগিতা: কয়েন প্রতিযোগিতা

সব কয়েন নিজ নিজ সর্বোত্তম স্কোর নিয়ে আসে, বাছাই করে প্রথম N কয়েন হোয়াইটলিস্টে প্রবেশ করে:

javascript
results.sort((a, b) => b.score - a.score); const whitelist = results.slice(0, topCoins).map(r => r.coin);

চূড়ান্ত আউটপুট হল, প্রতিটি হোয়াইটলিস্ট কয়েনের জন্য সংশ্লিষ্ট একচেটিয়া সর্বোত্তম MA প্যারামিটার, একটি প্যারামিটার সেট দিয়ে পুরো বাজার চালানো নয়।

তৃতীয় স্তর: বাস্তব ট্রেডিং ও ঝুঁকি নিয়ন্ত্রণ

নির্বাচিত কনফিগারেশন ব্যবহার করে বাস্তব ট্রেডিং চালানো, সাথে একাধিক স্তরের ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা যুক্ত করা:

সিগন্যাল ট্রিগার: রিয়েল-টাইমে হোয়াইটলিস্ট কয়েনের MA ক্রসওভার অবস্থা সনাক্ত, গোল্ডেন ক্রসে লং, ডেথ ক্রসে শর্ট:

javascript
const crossUp = fastPrev <= slowPrev && fastCur > slowCur; const crossDown = fastPrev >= slowPrev && fastCur < slowCur; if (crossUp) longList.push(sym); if (crossDown && allowShort) shortList.push(sym);

মুভিং টেক প্রফিট: কাগজের লাভ ট্রিগার থ্রেশহোল্ডে পৌঁছালে শুরু হয়, এবং ড্রডাউন থ্রেশহোল্ড কাগজের লাভের সাথে গতিশীলভাবে কঠোর হয়। তিন স্তরের থ্রেশহোল্ড অভিজ্ঞতা-ভিত্তিক, মূল যুক্তি হল কাগজের লাভ যত বেশি, ড্রডাউনের প্রতি সহনশীলতা তত কম, অর্জিত মুনাফা লক করা:

javascript
function getDynamicTrailDrawdown(maxPnl) { if (maxPnl >= 7) return 3; // কাগজের লাভ বেশি, ড্রডাউন সহনশীলতা কঠোর if (maxPnl >= 4) return 2; return 1.5; // কাগজের লাভ কম, মার্কেটকে আরও জায়গা দিন }

বাজার অবস্থা উপলব্ধি: BTC অস্থিরতা পার্সেন্টাইল সনাক্ত, উচ্চ অস্থিরতা পরিবেশে স্বয়ংক্রিয়ভাবে পজিশন সহগ কমানো, চরম বাজারে সরাসরি শর্ট নিষিদ্ধ:

javascript
if (marketState === 'volatile') positionScaleDown = 0.5; else if (marketState === 'high_vol') positionScaleDown = 0.8; else if (marketState === 'low_vol') positionScaleDown = 0.7;

পুরো নির্বাচন প্রক্রিয়াটি পর্যায়ক্রমে পুনরায় চালানো হয়, কোনো একক কনফিগারেশনে আঁকড়ে থাকে না, বাজারের পরিবর্তনের সাথে সাথে হোয়াইটলিস্ট এবং প্যারামিটার আপডেট করে।


অন্তর্নিহিত অনুমান: ট্রেন্ডের ধারাবাহিকতা

এই কাঠামোটি কাজ করতে পারে, এটি একটি কেন্দ্রীয় অনুমানের উপর নির্ভর করে:

সম্প্রতি ঐতিহাসিক ডেটায় ভালো পারফর্ম করা কয়েন এবং প্যারামিটার, পরবর্তী স্বল্প সময়ের মধ্যেও একটি নির্দিষ্ট ধারাবাহিকতা বজায় রাখে।

এটি কোনো অলৌকিক ব্যাপার নয়; এর পেছনে কিছু বাজারভিত্তিক যুক্তি রয়েছে—মূলধনের জড়তা, বাজারের মনোভাবের ধারাবাহিকতা এবং প্রধান খেলোয়াড়দের আচরণের সামঞ্জস্য—এ সবই একটি নির্দিষ্ট সময়সীমার মধ্যে ট্রেন্ডকে কার্যকর রাখতে সাহায্য করে।

তবে সৎভাবে বলতে হবে: এই অনুমান কঠোর পরিসংখ্যানগত যাচাইয়ের মধ্য দিয়ে যায়নি, এটি বরং একটি অভিজ্ঞতাভিত্তিক সিদ্ধান্ত। কাঠামোটি বাস্তব ট্রেডিংয়ে টেকসইভাবে কার্যকর হবে কি না, তা শেষ পর্যন্ত প্রকৃত ট্রেড ডেটা দ্বারাই যাচাই করতে হবে।


প্রকৃত Harness Engineer-এর থেকে পার্থক্য কী

এটি স্পষ্ট করে বলা দরকার।

এই কৌশলটিতে Harness-এর আকৃতি রয়েছে, কিন্তু প্রকৃত Harness Engineer পদ্ধতির সঙ্গে তুলনা করলে স্পষ্ট পার্থক্য রয়ে গেছে:

মাত্রাপ্রকৃত Harnessএই কৌশল
নমুনা বিভাজনপ্রশিক্ষণ সেট + বৈধতা সেট + হোল্ডআউট পরীক্ষণ সেটসম্পূর্ণ ঐতিহাসিক ডেটা ব্যাকটেস্টিং, নমুনার বাইরে কোনো যাচাই নেই
ওভারফিটিং প্রতিরোধস্পষ্ট জেনারেলাইজেশন পরীক্ষা আছেআংশিকভাবে প্যারামিটার বৈচিত্র্যের মাধ্যমে মোকাবিলা করে, অসম্পূর্ণ
পরীক্ষামূলক বিচ্ছিন্নতাপ্রতিটি ভেরিয়েন্ট স্বাধীনভাবে চলে, কোনো প্রভাব পড়ে নাএকই K-লাইন ভাগ করে, অন্তর্নিহিত কাপলিং আছে
স্থাপনার শর্তস্থাপনার আগে ভ্যালিডেশন পাস করতে হবেসর্বোচ্চ স্কোর পেলেই সরাসরি স্থাপনা, কোনো দ্বিতীয় স্তরের যাচাই নেই
ত্রুটি সঞ্চয়প্রতিটি স্তরের মূল্যায়ন স্বাধীনদুই স্তরের হর্স রেসিং উভয়ই ঐতিহাসিক সর্বোত্তমের ওপর ভিত্তি করে করে, ত্রুটি জমা হয়

মূল পার্থক্যটি হলো: প্রকৃত Harness জিজ্ঞাসা করে "এই ফলাফলটি নমুনার বাইরে কি টিকে থাকে?", কিন্তু এই কৌশলে দুই স্তরের হর্স রেসিং থেকে নির্বাচিত "সর্বোত্তম" মূলত ঐতিহাসিক সর্বোত্তম—প্যারামিটার স্তরের ওভারফিটিংয়ের সঙ্গে কয়েন স্তরের ওভারফিটিং জুড়ে গেছে। এটি ভবিষ্যতে টিকে থাকবে কি না, তা চিরকাল একটি উন্মুক্ত প্রশ্ন।


উপসংহার: নৌকায় দাগ কাটা, নাকি চেষ্টা করে দেখা উচিত?

কোয়ান্টের জগতে, ভবিষ্যদ্বাণী করা সবসময়ই অত্যন্ত কঠিন একটি কাজ

অনেকেই বলবেন, ঐতিহাসিক ডেটা দিয়ে প্যারামিটার নির্বাচন করে বাস্তব ট্রেডিং করা মূলত নৌকায় দাগ কাটার মতো—তলোয়ার জলে পড়ে গেছে, নৌকায় যে দাগ কাটা হয়েছে তা তলোয়ার খুঁজে পেতে সাহায্য করবে না। বাজার পরিবর্তিত হবে, কার্যকর প্যারামিটার অকার্যকর হয়ে পড়বে, আজকের অসাধারণ কয়েন আগামীকাল সাধারণ হয়ে যেতে পারে, গতকালের সর্বোত্তম মুভিং এভারেজ আজ কলরব মাত্র।

এই সমালোচনার যুক্তি নেই এমন নয়।

তবে অন্যদিকে, যা কিছু চেষ্টা করার মতো, তা করাই উচিত

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

অবশ্যই, কাঠামো নিজে মুনাফা নিশ্চিত করে না। কাঠামো থাকা শুধু শুরু; প্রকৃত মূল্য টেকসই বাস্তবায়ন এবং পুনরাবৃত্তিতে নিহিত: শ্বেততালিকা পরিবর্তন করা যাবে, স্কোরের ওজন পরিবর্তন করা যাবে, প্যারামিটার স্পেস সম্প্রসারণ করা যাবে, স্টপ-লস ও টেক-প্রফিট অপ্টিমাইজ করা যাবে। প্রতিটি সংশোধন একটি নতুন পরীক্ষা, যা এই কাঠামোটিকে প্রকৃত Harness-এর কাছাকাছি নিয়ে যাচ্ছে।

পথ তৈরি হয় হাঁটার মাধ্যমে, কল্পনা করে নয়।

কৌশলের সোর্স কোড: Harness Engineer Moving Average Screening Quantitative Strategy

Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)