AI expert advisor testing and optimisation guide | Deriv Blog

সঠিক পরীক্ষণ কৌশল ব্যবহার করে আপনার AI expert advisor-কে নিখুঁত করুন। আমাদের গাইডে সাধারণ সমস্যা, পরীক্ষণ পদ্ধতি, এবং নির্ভরযোগ্য ট্রেডিং বটের জন্য expert advisor optimization অন্তর্ভুক্ত রয়েছে।

ডেরিভ ডেস্ক · 21 April 2025 · 6 মিনিট পড়া

Share

AI ট্রেডিং expert advisors এখন উপলভ্য — কিন্তু আপনাকে এখনও সেগুলো পরীক্ষা ও পরিমার্জন করতে হবে।

আপনি যদি ইতিমধ্যেই Claude বা ChatGPT-এর মতো AI টুল ব্যবহার করে Deriv MT5-এর জন্য একটি expert advisor বা Deriv cTrader-এর জন্য একটি cBot তৈরি করে থাকেন, তাহলে আপনি ভালো শুরু করেছেন। তবে কোড সঠিক মনে হলেও, তাতে এমন ভুল থাকতে পারে যা বটের কার্যকারিতাকে প্রভাবিত করে।

আপনি লাইভ মার্কেটে আপনার expert advisor (EA) চালানোর আগে, এটি পরীক্ষা করা এবং এটি আপনার প্রত্যাশামতো কাজ করছে কি না তা নিশ্চিত করা গুরুত্বপূর্ণ।

এই গাইডে, আমরা AI-generated EAs-এ সাধারণ কোডিং ভুল, সেগুলো কীভাবে ঠিক করবেন, এবং আপনার বটের পারফরম্যান্স উন্নত করার ব্যবহারিক পরামর্শ দেখাব।

সাধারণ AI MQL5 কোডিং ত্রুটি

AI-generated EAs-এ পাওয়া কিছু সবচেয়ে সাধারণ সমস্যা এবং সেগুলো ঠিক করার উপায় নিচে দেওয়া হলো:

  • MQL5-এ undeclared identifier error

এই ত্রুটি দেখা দেয় যখন বট এমন কোনো ভেরিয়েবল বা নাম ব্যবহার করে যা সঠিকভাবে সংজ্ঞায়িত করা হয়নি, যেমন কোনো প্যারামিটার অনুপস্থিত থাকা বা iMA()-এর মতো ইন্ডিকেটরে ভুল নাম ব্যবহার করা।

সমাধান:
ইন্ডিকেটরের প্যারামিটারগুলো পরীক্ষা করুন এবং নিশ্চিত করুন যে সব ভেরিয়েবল নাম MetaEditor (MT5-এর কোডিং টুল)-এ প্রত্যাশিত নামের সঙ্গে মিলে যায়।

  • Buy/Sell ট্রেড এক্সিকিউশন ফাংশন অনুপস্থিত

কিছু AI-generated বট ট্রেড খোলার জন্য প্রয়োজনীয় লজিক বাদ দিয়ে দেয়।

সমাধান:
ম্যানুয়ালি মৌলিক ট্রেড এক্সিকিউশন ফাংশন যোগ করুন। নিচে 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-এ ভুল loop condition

Deriv cTrader-এ বটের লজিক নির্দিষ্ট ফাংশনের মধ্যে, যেমন OnBar() বা OnTick()-এর ভেতরে, চলতে হয়। মার্কেট নড়াচড়া করলে এগুলো স্বয়ংক্রিয়ভাবে ট্রিগার হয়। যদি আপনার কোড এই অংশগুলোর বাইরে থাকে, যেমন ভুল loop বা global scope-এ, তাহলে এটি প্রত্যাশামতো চলবে না।

সমাধান:

বার এবং টিকগুলো যেন OnBar() অথবা OnTick()-এর ভেতরে হ্যান্ডল করা হয় তা নিশ্চিত করুন। এতে backtesting এবং live trading-এর সময় নতুন টিক বা বার এলে আপনার বট সঠিকভাবে সাড়া দিতে পারবে।

  • ব্যালেন্স শতাংশের ভিত্তিতে lot size ভুলভাবে গণনা করা

AI যখন আপনার অ্যাকাউন্ট ব্যালেন্সের ভিত্তিতে lot size নির্ধারণ করার চেষ্টা করে (যেমন প্রতি ট্রেডে 2% ঝুঁকি নেওয়া), তখন এটি একটি গুরুত্বপূর্ণ বিষয় উপেক্ষা করতে পারে — contract size। এতে ভুল lot size হতে পারে।এটি code error ট্রিগার করবে না, কিন্তু পরীক্ষার সময় আপনি এমন ট্রেড সাইজ দেখবেন যা আপনার risk settings-এর সঙ্গে মেলে না, ফলে live trades-এ overexposure বা under-exposure হতে পারে।

সমাধান:
contract size বিবেচনায় এনে lot size-এর একটি formula ব্যবহার করুন, যেমন:

//-----------------------------------------------------------------

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 model-এর সাহায্য চাইতে পারেন।

শুধু error message এবং প্রাসঙ্গিক কোডটি কপি করে AI model-এর সঙ্গে শেয়ার করুন। বেশিরভাগ ক্ষেত্রে, এটি সমস্যাটি চিহ্নিত করতে সক্ষম হবে এবং সমাধান দেবে অথবা সম্ভাব্য সমাধান প্রস্তাব করবে।

Tip: লাইভে যাওয়ার আগে সবসময় backtest চালান। বাস্তব মার্কেট ডেটা দিয়ে strategy পরীক্ষা না করা পর্যন্ত এ ধরনের সমস্যা ধরা পড়ে না।

আপনার AI-generated expert advisor উন্নত করুন

আপনার বট একবার কাজ করতে শুরু করলে, আপনি এর performance এবং stability উন্নত করতে ছোট ছোট পরিবর্তন করতে পারেন। এটি করার জন্য কয়েকটি সাধারণ উপায় নিচে দেওয়া হলো:

  • উচ্চ volatility বা connection issues-এর সময় অপ্রত্যাশিত আচরণ মোকাবিলার জন্য error-handling logic যোগ করুন।
  • মার্কেট আপনার পক্ষে গেলে সম্ভাব্য মুনাফা লক ইন করতে একটি trailing stop-loss ব্যবহার করুন।
  • আপনার strategy backtest করুন historical data দিয়ে, যাতে দেখা যায় এটি কেমন পারফর্ম করত।
  • আপনার কোড পরিষ্কার ও গোছানো করুন যাতে readability and efficiency বাড়ে। এতে পরে আপডেট বা troubleshooting করা সহজ হবে।

Tip: আপনার বট কীভাবে ধাপে ধাপে চলে তা পরীক্ষা করতে MetaEditor Debugger (MT5-এ) ব্যবহার করুন।

ট্রেড backtesting কেন গুরুত্বপূর্ণ

AI-generated বট হলো শুরু থেকে কোড না লিখেই আপনার ট্রেডিং স্বয়ংক্রিয় করার একটি দারুণ উপায়। তবে AI থাকলেও, live পরিস্থিতিতে ভালোভাবে কাজ করার জন্য আপনার strategy-এর এখনও মানবিক যাচাই ও সমন্বয় প্রয়োজন।

লাইভে যাওয়ার আগে, সময় নিয়ে ভালোভাবে পরীক্ষা করুন এবং ছোট ছোট উন্নতি করুন। এমনকি ছোটখাটো সংশোধনও আপনার EA কতটা ধারাবাহিক ও কার্যকরভাবে পারফর্ম করে, তাতে বড় পরিবর্তন আনতে পারে।

Join 3M+ global traders

Open an account in minutes and start trading the world's markets — forex, stocks, indices, and more.