AI expert advisor টেস্টিং এবং অপ্টিমাইজেশন গাইড | Deriv Blog
সঠিক টেস্টিং কৌশল দিয়ে আপনার AI expert advisor নিখুঁত করুন। আমাদের গাইডে নির্ভরযোগ্য ট্রেডিং বটের জন্য সাধারণ সমস্যা, টেস্টিং পদ্ধতি এবং expert advisor অপ্টিমাইজেশন কভার করা হয়েছে।
ডেরিভ ডেস্ক · ২১ এপ্রিল, ২০২৫ · 4 মিনিট পড়া

AI ট্রেডিং expert advisor এসে গেছে — কিন্তু আপনাকে এখনও সেগুলো টেস্ট ও পরিমার্জন করতে হবে।
আপনি যদি ইতিমধ্যে Claude বা ChatGPT-এর মতো AI টুল ব্যবহার করে Deriv MT5-এর জন্য expert advisor বা Deriv cTrader-এর জন্য cBot তৈরি করে থাকেন, তাহলে আপনি ভালো শুরু করেছেন। কিন্তু কোড ঠিক মনে হলেও, এতে এমন ভুল থাকতে পারে যা বটের কাজকে প্রভাবিত করে।
লাইভ মার্কেটে আপনার expert advisor (EA) চালানোর আগে, এটি টেস্ট করা এবং আপনার প্রত্যাশা অনুযায়ী কাজ করছে কিনা নিশ্চিত করা গুরুত্বপূর্ণ।
এই গাইডে আমরা AI-জেনারেটেড EA-তে সাধারণ কোডিং ভুল, সেগুলো কীভাবে ঠিক করবেন এবং আপনার বটের পারফরম্যান্স উন্নত করার ব্যবহারিক টিপস নিয়ে আলোচনা করব।
সাধারণ AI MQL5 কোডিং ত্রুটি
AI-জেনারেটেড EA-তে পাওয়া কিছু সাধারণ সমস্যা এবং সেগুলো সংশোধনের উপায় নিচে দেওয়া হলো:
- MQL5-এ undeclared identifier error
এই ত্রুটি দেখা যায় যখন বট এমন একটি ভেরিয়েবল বা নাম ব্যবহার করে যা সঠিকভাবে সংজ্ঞায়িত হয়নি, যেমন কোনো প্যারামিটার বাদ পড়া বা iMA()-এর মতো ইন্ডিকেটরে ভুল নাম ব্যবহার করা।
সমাধান:
ইন্ডিকেটরের প্যারামিটারগুলো পরীক্ষা করুন এবং সব ভেরিয়েবলের নাম MetaEditor-এ (MT5-এর কোডিং টুল) যা প্রত্যাশিত তার সাথে মিলছে কিনা নিশ্চিত করুন।
- Buy/Sell ট্রেড এক্সিকিউশন ফাংশন বাদ পড়া
কিছু AI-জেনারেটেড বট ট্রেড খোলার জন্য প্রয়োজনীয় লজিক বাদ দিয়ে দেয়।
সমাধান:
ম্যানুয়ালি বেসিক ট্রেড এক্সিকিউশন ফাংশন যোগ করুন। buy অর্ডার প্লেস করার একটি বেসিক স্ট্রাকচারের উদাহরণ এখানে দেওয়া হলো:
void OpenBuy() {
MqlTradeRequest request; MqlTradeResult result;
request.action = TRADE_ACTION_DEAL;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.volume = 0.1; request.magic = 12345;
OrderSend(request, result);
}
sell অর্ডারের জন্যও লজিক যোগ করতে এবং কোন শর্তে ট্রেড প্লেস করা উচিত তা সংজ্ঞায়িত করতে ভুলবেন না।
- Deriv cTrader-এ অনুপযুক্ত লুপ কন্ডিশন
Deriv cTrader-এ, বটের লজিক OnBar() বা OnTick()-এর মতো নির্দিষ্ট ফাংশনের ভিতরে চলতে হয়। মার্কেট মুভ করলে এগুলো স্বয়ংক্রিয়ভাবে ট্রিগার হয়। আপনার কোড যদি এই সেকশনগুলোর বাইরে রাখা হয়, যেমন ভুল লুপ বা গ্লোবাল স্কোপে, তাহলে এটি প্রত্যাশা অনুযায়ী চলবে না।
সমাধান:
নিশ্চিত করুন যে বার এবং টিক OnBar() বা OnTick()-এর ভিতরে হ্যান্ডেল করা হয়। এতে ব্যাকটেস্টিং এবং লাইভ ট্রেডিংয়ের সময় নতুন টিক বা বারে আপনার বট সঠিকভাবে সাড়া দিতে পারবে।
- ব্যালেন্সের শতাংশের ভিত্তিতে লট সাইজ ভুল হিসাব করা
AI যখন আপনার অ্যাকাউন্ট ব্যালেন্সের ভিত্তিতে লট সাইজ সেট করার চেষ্টা করে (যেমন প্রতি ট্রেডে 2% ঝুঁকি), তখন এটি একটি গুরুত্বপূর্ণ বিবরণ বাদ দিতে পারে — কন্ট্রাক্ট সাইজ। এতে ভুল লট সাইজ হতে পারে।এতে কোড ত্রুটি দেখাবে না, কিন্তু টেস্টিংয়ে আপনি দেখবেন ট্রেড সাইজ আপনার ঝুঁকি সেটিংসের সাথে মিলছে না, যার ফলে লাইভ ট্রেডে অতিরিক্ত এক্সপোজার বা কম এক্সপোজার হতে পারে।
সমাধান:
কন্ট্রাক্ট সাইজ বিবেচনা করে এমন একটি ফর্মুলা দিয়ে লট সাইজ ব্যবহার করুন, যেমন:
//-----------------------------------------------------------------
double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskMoney = accountBalance * (RiskPercent / 100.0);
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pointValue = tickValue / tickSize;
double contractSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
if(contractSize > 0)
pointValue = pointValue / contractSize;
double lotSize = riskMoney / (StopLossPoints * pointValue);
double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
lotSize = MathMax(lotSize, minLot);
lotSize = MathMin(lotSize, maxLot);
lotSize = MathFloor(lotSize / lotStep) * lotStep;
- অন্যান্য ত্রুটি
আপনি যদি এই ত্রুটিগুলোর কোনো একটি—বা অন্য কোনো ত্রুটি—সম্মুখীন হন, তাহলে সমস্যা চিহ্নিত ও ঠিক করতে সবসময় আপনার AI মডেলের সাহায্য চাইতে পারেন।
শুধু ত্রুটির মেসেজ এবং প্রাসঙ্গিক কোড কপি করে AI মডেলের সাথে শেয়ার করুন। বেশিরভাগ ক্ষেত্রে, এটি সমস্যা চিহ্নিত করতে এবং সমাধান দিতে বা সম্ভাব্য সমাধান সাজেস্ট করতে পারবে।
টিপ: লাইভে যাওয়ার আগে সবসময় ব্যাকটেস্ট চালান। এই ধরনের সমস্যাগুলো বাস্তব মার্কেট ডেটা দিয়ে স্ট্র্যাটেজি টেস্ট না করা পর্যন্ত দেখা যায় না।
আপনার AI-জেনারেটেড expert advisor উন্নত করুন
আপনার বট কাজ করা শুরু করলে, এর পারফরম্যান্স ও স্থিতিশীলতা উন্নত করতে ছোট ছোট পরিবর্তন করতে পারেন। এজন্য কয়েকটি সাধারণ কৌশল হলো:
- উচ্চ অস্থিরতা বা সংযোগ সমস্যার সময় অপ্রত্যাশিত আচরণ পরিচালনা করতে error-handling logic যোগ করুন।
- মার্কেট আপনার অনুকূলে গেলে সম্ভাব্য মুনাফা লক করতে trailing stop-loss ব্যবহার করুন।
- ঐতিহাসিক ডেটা দিয়ে আপনার স্ট্র্যাটেজি ব্যাকটেস্ট করুন যাতে দেখা যায় এটি কেমন পারফর্ম করত।
- পাঠযোগ্যতা ও দক্ষতা উন্নত করতে আপনার কোড পরিষ্কার ও সুবিন্যস্ত করুন। এতে পরে আপডেট বা ট্রাবলশুট করা সহজ হবে।
টিপ: আপনার বট ধাপে ধাপে কীভাবে চলে তা টেস্ট করতে MetaEditor Debugger (MT5-এ) ব্যবহার করুন।
ট্রেড ব্যাকটেস্টিং কেন অত্যন্ত গুরুত্বপূর্ণ
AI-জেনারেটেড বট শূন্য থেকে কোড না লিখেই আপনার ট্রেডিং অটোমেট করার একটি দুর্দান্ত উপায়। কিন্তু AI থাকলেও, লাইভ পরিস্থিতিতে ভালো কাজ করতে আপনার স্ট্র্যাটেজির এখনও মানবীয় যাচাই ও সমন্বয় প্রয়োজন।
লাইভে যাওয়ার আগে, পুঙ্খানুপুঙ্খভাবে টেস্ট করতে এবং ছোট ছোট উন্নতি করতে সময় নিন। এমনকি ছোটখাটো সংশোধনও আপনার EA কতটা ধারাবাহিক ও কার্যকরভাবে পারফর্ম করে তাতে বড় পার্থক্য আনতে পারে।