Type/to search
2
Follow
484
Followers
99 জন ব্যবসায়ীর অভিজ্ঞতাকে একটি কৌশলে ডিস্টিল করা: KOL ডিস্টিলেশন কনসেনসাসের আবিষ্কারকের উপর বাস্তবায়নের ধারণা
Discussions
Created 2026-04-30 14:07:08  Updated 2026-05-09 10:24:15
 0
 299

img

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

crypto-kol-quant প্রোজেক্টটি সম্প্রতি খুবই আলোচিত, এতে আসল মজার বিষয় হলো, এটি কতজন কেওএল (KOL) ক্যাপচার করেছে বা এটি এলএলএম (LLM) ব্যবহার করেছে তা নয়, বরং এটি কোয়ান্টিটেটিভ রিসার্চে একটি অস্বাভাবিক কাজ করার চেষ্টা করছে: ট্রেডারদের অভিজ্ঞতাকে গণনাযোগ্য ক্ষমতার ফ্যাক্টরে পরিশোধন (distill) করা, এবং সেগুলোকে আরও একীভূত করে একটি কনসেনসাস সিগন্যালে পরিণত করা। এই বিষয়টি নিজেই অত্যন্ত গুরুত্ব সহকারে নেওয়ার মতো। কারণ, যদি দীর্ঘমেয়াদে সক্রিয় এবং স্থিতিশীল স্টাইলের একটি দল ট্রেডার বাস্তবেই বাজারে নিজেদের জ্ঞানগত কাঠামো তৈরি করে থাকে, তাহলে তাত্ত্বিকভাবে এই কাঠামোগুলো শুধু টুইট, চার্ট এবং বিক্ষিপ্ত মন্তব্যের মধ্যেই সীমাবদ্ধ থাকা উচিত নয়, বরং সেগুলোকে বের করে আনা, সাজানো এবং একটি কার্যকরী কৌশল পাইপলাইনে অন্তর্ভুক্ত করার সুযোগও থাকা উচিত।

img

এই ধারণার ভিত্তিতে, আমরা FMZ (发明者量化) এনভায়রনমেন্টে একটি প্রাথমিক বাস্তবায়ন করেছি। মূল লক্ষ্য ছিল প্রোজেক্টটিকে সহজভাবে "স্থানান্তর" করা নয়, বরং এর সবচেয়ে গুরুত্বপূর্ণ লজিকটিকে সত্যিকার অর্থে সংযুক্ত করা: প্রথমে বাজারের ডেটা সংগ্রহ করা, তারপর বাজারকে একটি কাঠামোগত অবস্থায় রূপান্তর করা; এই অবস্থার ভিত্তিতে বিচার করা যে কোন ট্রেডিং ক্ষমতাগুলো ট্রিগার হচ্ছে; এরপর এই ক্ষমতাগুলোকে ট্রেডার প্রোফাইলে ম্যাপ করা; এবং শেষ পর্যন্ত বিভিন্ন ট্রেডারের ব্যক্তিগত বিচারকে ওজনযুক্ত কনসেনসাস সিগন্যালে একীভূত করা। এটি স্পষ্টতই এখনও একটি পরিণত ট্রেডিং সিস্টেম নয়, তবে এটি অন্তত একটি গুরুত্বপূর্ণ কাজ সম্পন্ন করেছে: প্রমাণ করেছে যে ট্রেডারদের অভিজ্ঞতাকে প্রকৃতপক্ষে সংকুচিত, কাঠামোবদ্ধ এবং কৌশল বিচারের প্রক্রিয়ায় অন্তর্ভুক্ত করা সম্ভব।

ডিস্টিলেশনের লক্ষ্য, মতামত নয়, বরং ট্রেডিং ক্ষমতা

অনেকেই প্রথমবার এই ধরণের প্রোজেক্টের মুখোমুখি হলে সহজেই এটিকে "KOL আবেগ কৌশল" হিসেবে বুঝে ফেলেন। কিন্তু এটি আসলে সঠিক নয়। মূল প্রোজেক্টটি যা করছে, তা সহজভাবে কে আজ বেশি আশাবাদী তা বিচার করা বা কে 'লং' বলছে আর কে 'শর্ট' বলছে তার পরিসংখ্যান করা নয়, বরং আরও এক ধাপ এগিয়ে প্রশ্ন করা: এই ট্রেডার আসলে বাজারকে কীভাবে বোঝে? তিনি কোন কাঠামোতে বেশি লং-এ যান? তিনি কি ট্রেন্ড, পজিশন, প্যাটার্ন, ভোলাটিলিটি নাকি সামষ্টিক অর্থনৈতিক পরিবেশের ওপর বেশি মনোযোগ দেন? এই বিচার পদ্ধতিগুলোকে কি একটি স্থিতিশীল ক্ষমতা ট্যাগের সেটে সাজানো যায়?

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

প্রথম ধাপ: প্রথমে বাজারকে স্টেট ভেরিয়েবলে অনুবাদ করুন

ডিস্টিলেশন বাস্তবে ফলপ্রসূ হতে চাইলে, প্রথম ধাপটি অবশ্যই পূর্বাভাস নয়, বরং ফিচার ইঞ্জিনিয়ারিং। কারণটি সহজ, ট্রেডারদের ভাষা মানুষ দেখার জন্য তৈরি, প্রোগ্রাম দেখার জন্য নয়। যেমন "দাম ফিরে এসে কী মুভিং এভারেজে লেগেছে, এটি একটি ভালো দ্বিতীয়বার এন্ট্রি পয়েন্ট" - এই বাক্যটি একজন ট্রেডারের পক্ষে বোঝা সহজ, কিন্তু একটি প্রোগ্রামের জন্য এটি প্রথমে ভেঙে ফেলতে হবে: কী মুভিং এভারেজ, ৫০-দিনের নাকি ২০০-দিনের? বর্তমান দাম কি এই এভারেজের কাছাকাছি? ট্রেন্ড কি ভেঙেছে? কোনো সমর্থন সংকেত আছে কি না?

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

img

মূল কোডটি নিচে দেওয়া হলো:

python
# বিভিন্ন পিরিয়ডের মুভিং এভারেজ ব্যবহার করে দামের ট্রেন্ড পজিশন বর্ণনা করা f['ma20'] = _sma(c,20) f['ma50'] = _sma(c,50) f['ma100'] = _sma(c,100) f['ma200'] = _sma(c,200) # এক্সপোনেনশিয়াল মুভিং এভারেজ সাম্প্রতিক দাম পরিবর্তনের প্রতি বেশি সংবেদনশীল f['ema20'] = _ema(c,20) f['ema50'] = _ema(c,50) # আরএসআই ব্যবহার করে বাজার ওভারবট/ওভারসোল্ড কিনা বা মোমেন্টাম কমছে কিনা তা বর্ণনা করা f['rsi14'] = _rsi(c,14) # ম্যাকড ও এর সিগন্যাল লাইন, হিস্টোগ্রাম, ট্রেন্ড ও মোমেন্টাম পরিবর্তন পর্যবেক্ষণের জন্য ml, ms, mh = _macd(c) f['macd'] = ml f['macd_sig'] = ms f['macd_hist'] = mh

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

এরপর, সিস্টেমটিকে ভোলাটিলিটি এবং পজিশনাল সম্পর্ক যোগ করতে হবে, কারণ অনেক ট্রেডিং সিদ্ধান্ত শুধু ট্রেন্ডের ওপর নির্ভর করে না, বরং "বর্তমানে কি ভোলাটিলিটি সংকোচন পর্ব?" বা "দাম কি রেঞ্জের উচ্চ বা নিম্ন বিন্দুর কাছে?" এর ওপরও নির্ভর করে।

সংশ্লিষ্ট কোডটি হলো:

python
# লগারিদমিক রিটার্ন হলো ভোলাটিলিটি গণনার ভিত্তি logr = np.log(c / c.shift(1)) # সাম্প্রতিক ৩০ দিনের বার্ষিক ভোলাটিলিটি, বর্তমান বাজারের ভোলাটিলিটি স্তর মাপার জন্য f['rv30'] = logr.rolling(30, min_periods=10).std() * np.sqrt(365) # সাম্প্রতিক ২০ দিন ও ৫০ দিনের উচ্চ-নিম্ন বিন্দু, দামের অবস্থান নির্ণয়ের জন্য f['high_20d'] = h.rolling(20, min_periods=1).max() f['low_20d'] = l.rolling(20, min_periods=1).min() f['high_50d'] = h.rolling(50, min_periods=1).max() f['low_50d'] = l.rolling(50, min_periods=1).min()

এখানে rv30 সাম্প্রতিক ৩০ দিনের বার্ষিক ভোলাটিলিটি স্তর নির্দেশ করে, আর রেঞ্জের উচ্চ-নিম্ন বিন্দু সিস্টেমকে বুঝতে সাহায্য করে যে বর্তমান দাম সাম্প্রতিক মূল্য কাঠামোতে ঠিক কোথায় অবস্থান করছে। এর বাইরে, ম্যাক্রো পটভূমিকেও স্টেট স্পেসে অন্তর্ভুক্ত করা হয়েছে। কারণ এক ধরনের ট্রেডার আছেন যারা শুধু মুদ্রার দাম দেখেন না, তারা একইসাথে ডলার ইনডেক্স, শেয়ারবাজারের ঝুঁকি গ্রহণ ক্ষমতা এবং সুদের হার পরিবেশও পর্যবেক্ষণ করেন। কোডে সংশ্লিষ্ট পদ্ধতি হলো, প্রথমে এই ভেরিয়েবলগুলোকে দৈনিক ভিত্তিতে সারিবদ্ধ করা, তারপর সেগুলোকে পাঠযোগ্য অবস্থায় রূপান্তর করা:

python
# DXY ডলারের শক্তি/দুর্বলতার পটভূমি পরিবর্তনশীল হিসেবে if 'DXY' in macro: dxy = _align(macro['DXY']) f['dxy_ret_20d'] = dxy.pct_change(20) f['dxy_trend_down'] = (dxy.pct_change(20) < -0.01).astype(int) # SPX ঝুঁকি গ্রহণ ক্ষমতার পটভূমি পরিবর্তনশীল হিসেবে if 'SPX' in macro: spx = _align(macro['SPX']) f['spx_ret_20d'] = spx.pct_change(20) f['spx_trend_up'] = (spx.pct_change(20) > 0).astype(int)

এই ধাপের অর্থ এক বাক্যে বলা যায়: প্রথমে "বাজার এখন কেমন আছে" সেটিকে একটি কাঠামোগত অবস্থায় অনুবাদ করুন যা মেশিন ক্রমাগত পড়তে পারে। এই স্তরটি না থাকলে, পরবর্তী ডিস্টিলেশন সম্ভব নয়।

দ্বিতীয় ধাপ: বিষয়ভিত্তিক অভিজ্ঞতাকে ক্ষমতা ফ্যাক্টরে রূপান্তর করুন

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

এই ধাপটিতেই পুরো কৌশলের সবচেয়ে বেশি ডিস্টিলেশনের গন্ধ পাওয়া যায়। কারণ এখানে আর বিমূর্তভাবে বলা হচ্ছে না যে "কোনো ফ্রেমওয়ার্ক গুরুত্বপূর্ণ", বরং এটি সত্যিই প্রোগ্রামের শর্ত হিসেবে লেখা হচ্ছে। বর্তমান বাস্তবায়নে অন্তর্ভুক্ত ক্ষমতা ফ্যাক্টরগুলো প্যাটার্ন, কাঠামো, ইন্ডিকেটর, চক্র এবং ম্যাক্রো স্তর覆盖 করে। যেমন কিছু ক্ষমতা প্যাটার্ন শনাক্তকরণ থেকে আসে, যেমন বুল ফ্ল্যাগ, বিয়ার ফ্ল্যাগ, ডাবল টপ/বটম, হেড অ্যান্ড শোল্ডার, ট্রায়াঙ্গেল; কিছু কাঠামোগত বিশ্লেষণ থেকে আসে, যেমন Wyckoff, SMC, ICT ফ্রেমওয়ার্ক; কিছু ইন্ডিকেটর থেকে আসে, যেমন আরএসআই ডাইভারজেন্স, মুভিং এভারেজ গোল্ডেন/ডেথ ক্রস, বোলিঞ্জার স্কুইজ ব্রেকআউট; আর কিছু আসে চক্র ও ম্যাক্রো পরিবেশ থেকে, যেমন হালভিং চক্র, ট্রেন্ডিং বনাম রেঞ্জিং মার্কেট পরিবর্তন, DXY পতন, ঝুঁকি গ্রহণ ক্ষমতা পুনরুদ্ধার ইত্যাদি।

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

python
# বিচার করা যে বর্তমান দাম ৫০-দিনের মুভিং এভারেজের কাছাকাছি কিনা near_ma50 = abs(close - ma50_v) / close < 0.02 if close > 0 else False # যদি ৫০-দিনের মুভিং এভারেজ এখনও ২০০-দিনের মুভিং এভারেজের উপরে থাকে এবং পুলব্যাকের পর সবুজ ক্যান্ডেল সাপোর্ট দেখা যায় # তাহলে একটি ট্রেন্ড কন্টিনিউয়েশন ক্ষমতা সংকেত হিসেবে গণ্য করা হবে s['cap_014_trend_pullback_continuation'] = 0.6 if (ma50_gt and near_ma50 and is_green) else 0.0

এখানে রহস্যজনক কিছু নেই, এটি শুধু একটি মানব ভাষাকে কয়েকটি শর্তে ভেঙেছে যা মেশিন একে একে বিচার করতে পারে। আরেকটি উদাহরণ হলো "বোলিঞ্জার স্কুইজ ব্রেকআউট"। অনেক ট্রেডারের জন্য, দীর্ঘমেয়াদী ভোলাটিলিটি সংকোচনের পর হঠাৎ করে ঊর্ধ্ব বা নিম্নমুখী প্রসারণ প্রায়শই একটি নতুন দিকনির্দেশনা নির্দেশ করে। সংশ্লিষ্ট নিয়মের লেখা হলো:

python
# যদি আগের ক্যান্ডেলের বোলিঞ্জার ব্যান্ডের প্রস্থ সংকোচন থ্রেশহোল্ডের নিচে থাকে, তাহলে ভোলাটিলিটি সংকোচন ধরা হবে squeezed = bb_w_p1 < bb_w20_p1 if bb_w20_p1 > 0 else False # সংকোচনের পর উপরের ব্যান্ড ভেঙে উপরে যাওয়া ইতিবাচক সংকেত; নিচের ব্যান্ড ভেঙে নিচে যাওয়া নেতিবাচক সংকেত s['cap_021_bollinger_squeeze_breakout'] = ( 0.6 if (squeezed and close > bb_u) else -0.6 if (squeezed and close < bb_l) else 0.0 )

ম্যাক্রো ফ্যাক্টরগুলোর প্রক্রিয়াকরণও একই। যেসব ট্রেডার বেশি ম্যাক্রো-ভিত্তিক, তাদের জন্য BTC পুরোপুরি বিচ্ছিন্ন একটি মূল্য সিরিজ নয়, এটি ডলার, শেয়ারবাজার এবং সুদের হারের পরিবেশ দ্বারা প্রভাবিত হয়, তাই এই বোঝাপড়াগুলোও ক্ষমতা বিচার হিসেবে লেখা হয়েছে:

python
# DXY এর পতন সাধারণত BTC এর জন্য ইতিবাচক পটভূমি হিসেবে বিবেচিত হয় s['cap_027_dxy_inverse_btc'] = 0.4 if (not _nm(dxy_r20) and dxy_r20 < -0.01) else 0.0 # S&P এর বৃদ্ধি ঝুঁকি গ্রহণের উন্নতি নির্দেশ করে s['cap_028_spx_risk_on_off'] = 0.4 if (not _nm(spx_r20) and spx_r20 > 0.02) else 0.0 # স্বল্পমেয়াদী সুদের হার হ্রাস তরলতার প্রান্তিক উন্নতি নির্দেশ করে s['cap_029_yields_liquidity'] = 0.4 if (not _nm(y_r20) and y_r20 < -0.02) else 0.0

এই স্তরে আসলেই গুরুত্বপূর্ণ হলো এটি কতগুলো নিয়ম লিখেছে তা নয়, বরং এটি ডিস্টিলেশনের সবচেয়ে গুরুত্বপূর্ণ ধাপটি সম্পন্ন করেছে: যা পূর্বে শুধুমাত্র বিষয়গত বোঝাপড়ার ওপর নির্ভর করত, তা সংকুচিত করে গণনাযোগ্য শর্তে পরিণত করেছে। এখানে উল্লেখ করা প্রয়োজন যে, বর্তমান সংস্করণের বেশিরভাগ ক্ষমতা ফ্যাক্টর এখনও শর্ত-ট্রিগারভিত্তিক, ধারাবাহিক স্কোরিং নয়। এর মানে হলো সিস্টেমটি বরং নির্দিষ্ট কোনো কাঠামো বিদ্যমান কিনা তা নির্ণয় করছে, প্রতিটি সামান্য ওঠানামার জন্য ক্রমাগত পুনর্মূল্যায়ন করছে না। এটি নির্ধারণ করে যে এটি বর্তমানে দৈনিক বা মাঝারি-নিম্ন ফ্রিকোয়েন্সি বিচারের জন্য বেশি উপযুক্ত, উচ্চ-ফ্রিকোয়েন্সি ট্রেডিংয়ের জন্য নয়।

তৃতীয় ধাপ: ফ্যাক্টর সরাসরি যোগ করা হয় না, বরং প্রথমে ট্রেডার প্রোফাইলে ম্যাপ করা হয়

img

যদি কৌশলটি শুধুমাত্র ফ্যাক্টর স্তর পর্যন্ত থামত, তবে এটি এখনও একটি সাধারণ নিয়ম ব্যবস্থা হতো। মূল প্রকল্পটি আরও বিশেষ ছিল কারণ এটি এখানেই থামেনি, বরং আরও এক ধাপ এগিয়ে গেছে: ফ্যাক্টর সরাসরি দিকনির্দেশ নির্ধারণ করে না, বরং প্রথমে ট্রেডার প্রোফাইলে ম্যাপ করা হয়।

এই পয়েন্টটি অত্যন্ত গুরুত্বপূর্ণ। কারণ বাস্তব জগতে ট্রেডাররা "সব ক্ষমতা গড়ে ব্যবহার করে না"। কেউ ট্রেন্ড-ঝোঁক, কেউ কাঠামো-ঝোঁক, কেউ চক্র-ঝোঁক, কেউ সামষ্টিক অর্থনীতি-ঝোঁক। একই বাজার অবস্থার মুখোমুখি হলেও, বিভিন্ন ব্যক্তির ফোকাস সম্পূর্ণ ভিন্ন হয়। তাই সিস্টেম সহজভাবে সব ফ্যাক্টরকে গড় করে না, বরং প্রথমে প্রতিটি ট্রেডারের ক্ষমতা পছন্দ পড়ে, তারপর বর্তমান ফ্যাক্টর অবস্থার ওপর ভিত্তি করে তার ব্যক্তিগত সংকেত গণনা করে।

সংশ্লিষ্ট প্রোফাইল পড়ার লজিক নিম্নরূপ:

python
# প্রতিটি ট্রেডারের প্রোফাইলে ব্যবহৃত ক্ষমতা ফ্যাক্টর এবং তাদের ওজন পড়ুন caps = {c['id']: float(c.get('weight', 0.5)) for c in p.get('capabilities_used', [])} profiles.append({ 'handle': p.get('handle', item['name'][:-5]), 'caps': caps })

প্রতিটি প্রোফাইল মূলত একটি প্রশ্নের উত্তর দেয়: এই ট্রেডার কোন ক্ষমতা ফ্যাক্টরের ওপর বেশি নির্ভরশীল এবং তার ফ্রেমওয়ার্কে এই ক্ষমতাগুলির ওজন কত। প্রোফাইল থাকার পর, সিস্টেম প্রতিটি ট্রেডারের জন্য বর্তমান বাজারে "ব্যক্তিগত সংকেত" গণনা করে:

python
for p in profiles: sig = 0.0 wt = 0.0 # এই ট্রেডার যে সমস্ত ক্ষমতা ফ্যাক্টর পর্যবেক্ষণ করে সেগুলি অতিক্রম করুন for cap_id, w in p['caps'].items(): score = factor_scores.get(cap_id, 0.0) # বর্তমান ফ্যাক্টর স্কোর ট্রেডারের পছন্দের ওজন দ্বারা গুণ করুন sig += w * score wt += abs(w) # স্বাভাবিকীকরণের পর বর্তমান বাজারে ট্রেডারটির ব্যক্তিগত সংকেত পাওয়া যায় trader_raw = sig / wt if wt > 0 else 0.0

এখানে দেখে বোঝা যায়, এই সিস্টেমের স্বাদ আগের থেকে অনেক আলাদা। এটি আর শুধু দেখছে না "কোন ফ্যাক্টর সক্রিয় হয়েছে", বরং প্রায় একটি জিনিস পুনর্নির্মাণ করছে: যদি আজকের বাজার এই 99 জন ট্রেডারের কাছে দেওয়া হয়, তাহলে তারা প্রত্যেকে কীভাবে বিচার করবে।

চতুর্থ ধাপ: ব্যক্তিগত সংকেত থেকে ওজনযুক্ত ঐকমত্য

img

যখন প্রতিটি ট্রেডারের ব্যক্তিগত সংকেত গণনা করা হয়, তবেই সিস্টেম প্রকৃত ঐকমত্য স্তরে প্রবেশ করে। এখানে "ঐকমত্য" মানে সহজ ভোট নয়, বা যে বেশি কথা বলে তার কথা শোনা, বরং ঐতিহাসিক কার্যকারিতা আরও বিবেচনা করা হয়।

বর্তমান কোডে দুটি সবচেয়ে গুরুত্বপূর্ণ ফলাফল হলো ic_weighted এবং trust_adjusted। সংশ্লিষ্ট মূল লজিক হলো:

python
# প্রথমে ধনাত্মক IC যুক্ত ট্রেডারদের ধনাত্মক ওজন দিয়ে ic_weighted গণনা করুন pos_w = sum(max(t['ic'], 0) for t in trader_signals) ic_wt = ( sum(t['signal'] * max(t['ic'], 0) for t in trader_signals) / pos_w if pos_w > 0 else 0.0 ) # trust_adjusted আরও এক ধাপ এগিয়ে: # ধনাত্মক IC স্বাভাবিকভাবে ব্যবহার করুন, ঋণাত্মক IC বিপরীতভাবে ব্যবহার করুন, তারপর পরম IC আকার অনুযায়ী ওজন দিন abs_w = sum(abs(t['ic']) for t in trader_signals) trust = ( sum((t['signal'] if t['ic'] >= 0 else -t['signal']) * abs(t['ic']) for t in trader_signals) / abs_w if abs_w > 0 else 0.0 )

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

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

img

img

ইনভেন্টর-এ বাস্তবায়ন: আসলেই কী কাজ করেছে

যদি এটি কেবল একটি গবেষণা প্রকল্পে সীমাবদ্ধ থাকত, তবে এই সিস্টেমটিকে একটি "ঐকমত্য বিশ্লেষক" বলা যেত; ইনভেন্টর-এ বাস্তবায়নের মূল লক্ষ্য ছিল পুরো চেইনটিকে সত্যিই সংযুক্ত করা, যাতে এটি ক্রমাগত চলতে পারে। সবচেয়ে গুরুত্বপূর্ণ কোডটি আসলে মাত্র তিন লাইন:

python
# প্রথম ধাপ: কাঁচা বাজারের তথ্য এবং সামষ্টিক ভেরিয়েবলকে কাঠামোবদ্ধ অবস্থায় রূপান্তর করুন feat_df = build_features(records, macro if macro else None) # দ্বিতীয় ধাপ: অবস্থা ভেরিয়েবলের ভিত্তিতে বর্তমানে কোন ক্ষমতা ফ্যাক্টর সক্রিয় হয়েছে তা মূল্যায়ন করুন factor_scores = evaluate_factors(feat_df) # তৃতীয় ধাপ: ক্ষমতা ফ্যাক্টরকে ট্রেডার প্রোফাইলে ম্যাপ করুন এবং ঐকমত্য ফলাফলে সমষ্টি করুন consensus = compute_consensus(factor_scores)

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

এটি কেন এখনও একটি প্রোটোটাইপ

অবশ্যই, এই বাস্তবায়ন চূড়ান্ত নয়। বর্তমান কোড BTC দৈনিক কাঠামো ব্যবহার করে, তাই এটি মাঝারি-নিম্ন ফ্রিকোয়েন্সি ঐকমত্য বিচারের জন্য বেশি উপযুক্ত, উচ্চ-ফ্রিকোয়েন্সি ট্রেডিং সিস্টেমের জন্য নয়। এর মূল এখনও দৈনিক কাঠামো, চক্র অবস্থান, সামষ্টিক পটভূমি এবং ট্রেডার ক্ষমতা পছন্দের চারপাশে ঘোরে। এছাড়াও, ট্রেডার প্রোফাইল এবং IC এখনও স্থির ইনপুট, এখনও অনলাইন বিবর্তনে প্রবেশ করেনি। অর্থাৎ, সিস্টেমটি "জ্ঞান ডিস্টিলেশন" এর প্রথম ধাপ সম্পন্ন করলেও, এখনও "ডিস্টিল্ড জ্ঞানের স্ব-সংশোধন" সম্পূর্ণভাবে করতে পারেনি।

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

উপসংহার

crypto-kol-quant-এর প্রকৃত অনুপ্রেরণা এটি কতগুলো জনপ্রিয় ধারণা ব্যবহার করেছে তা নয়, বরং এটি এমন একটি বিষয়কে পদ্ধতিগত করা যা অত্যন্ত কঠিন ছিল, এবং সেটি এক ধাপ এগিয়ে নিয়ে গেছে: ট্রেডারের অভিজ্ঞতাকে প্রকাশ থেকে ক্ষমতায়, ক্ষমতা থেকে ফ্যাক্টরে, এবং ফ্যাক্টর থেকে ঐকমত্যে রূপান্তর করা। আর ইনভেন্টর-এ এই বাস্তবায়ন যা করেছে, তা হলো এই ডিস্টিলেশন চেইনটিকে সত্যিই চালু করা। এটি নিজেকে চূড়ান্ত বলে বড়াই করে না, বা এটি এখনও একটি প্রাথমিক প্রোটোটাইপ তা গোপন করার চেষ্টা করে না। তবে এটি অন্তত প্রমাণ করেছে যে, ট্রেডিং অভিজ্ঞতা কেবল চার্ট এবং ভাষায় সীমাবদ্ধ থাকতে বাধ্য নয়; এটি ডিস্টিল, কাঠামোবদ্ধ, এবং চালানো যেতে পারে, এমনকি একটি ক্রমাগত বাজার বিচারকারী সিস্টেমে স্থাপন করা যেতে পারে।

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

মূল প্রকল্প: 锁妖塔 Skill — 炼化99个加密交易员

বিশেষ ধন্যবাদ "GiantBin" ব্যবহারকারীকে ধারণা এবং চিন্তাভাবনা প্রদানের জন্য। যদি আপনারও ভালো ধারণা এবং চিন্তাভাবনা থাকে, তবে শেয়ার করতে স্বাগতম।

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