AI expert advisor පරීක්ෂණ සහ ප්රශස්තිකරණ මාර්ගෝපදේශය | Deriv Blog
නිසි පරීක්ෂණ ක්රම මගින් ඔබගේ AI expert advisor ව පරිපූර්ණ කරන්න. විශ්වාසනීය ට්රේඩින් බොට් සඳහා අපගේ මාර්ගෝපදේශය පොදු ගැටලු, පරීක්ෂණ ක්රම සහ expert advisor ප්රශස්තිකරණය ආවරණය කරයි.
Deriv කණ්ඩායම · 2025 බක් 21 · 4 මිනිත්තු කියවීම

AI ට්රේඩිං expert advisors දැන් ලබා ගත හැකිය — නමුත් ඔබට තවමත් ඒවා පරීක්ෂා කර ප්රශස්ත කිරීමට අවශ්ය වේ.
ඔබ දැනටමත් Claude හෝ ChatGPT වැනි AI මෙවලම් භාවිතා කර Deriv MT5 සඳහා expert advisor එකක් හෝ Deriv cTrader සඳහා cBot එකක් නිර්මාණය කර ඇත්නම්, ඔබ හොඳ ආරම්භයක් කර ඇත. නමුත් code එක නිවැරදි බවක් පෙනුණත්, bot එක ක්රියා කරන ආකාරයට බලපාන වැරදි තවමත් එහි අඩංගු විය හැක.
ඔබේ expert advisor (EA) සජීවී මාර්කට් එකක ධාවනය කිරීමට පෙර, එය පරීක්ෂා කර ඔබ අපේක්ෂා කරන ආකාරයට ක්රියා කරන බව සහතික කර ගැනීම වැදගත් වේ.
මෙම මාර්ගෝපදේශයේදී, අපි AI-ජනිත EAs වල පොදු coding වැරදි, ඒවා නිවැරදි කරන ආකාරය සහ ඔබේ bot එකේ කාර්යසාධනය වැඩි දියුණු කිරීමට ප්රායෝගික උපදෙස් හරහා ගමන් කරමු.
පොදු AI MQL5 coding දෝෂ
AI-ජනිත EAs වල දක්නට ලැබෙන වඩාත් පොදු ගැටලු කිහිපයක් මෙන්න, ඒවා නිවැරදි කිරීමේ ක්රම සමඟ:
- MQL5 හි Undeclared identifier දෝෂය
Bot එක නිසි ලෙස අර්ථ දක්වා නොමැති variable එකක් හෝ නමක් භාවිතා කරන විට මෙම දෝෂය පෙනේ, උදාහරණයක් ලෙස parameter එකක් අස්ථානගත වීම හෝ iMA() වැනි indicators වල වැරදි නමක් භාවිතා කිරීම.
නිවැරදි කිරීම:
Indicator එකේ parameters පරීක්ෂා කර සියලු variable නම් MetaEditor (MT5 හි coding මෙවලම) හි අපේක්ෂිත දේ සමඟ ගැලපෙන බව සහතික කර ගන්න.
- නැතිවූ Buy/Sell trade execution functions
සමහර AI-ජනිත bots trades විවෘත කිරීම සඳහා අත්යවශ්ය logic මඟ හරියි.
නිවැරදි කිරීම:
මූලික trade execution functions අතින් එකතු කරන්න. Buy order එකක් තැබීමට මූලික ව්යුහයක උදාහරණයක් මෙන්න:
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 orders සඳහා logic ද ඇතුළත් කිරීමටත්, trades තැබිය යුතු කොන්දේසි අර්ථ දැක්වීමටත් මතක තබා ගන්න.
- Deriv cTrader හි නුසුදුසු loop conditions
Deriv cTrader හි, bot එකේ logic OnBar() හෝ OnTick() වැනි නිශ්චිත functions ඇතුළත ධාවනය විය යුතුය. මාර්කට් එක චලනය වන විට මේවා ස්වයංක්රීයව trigger වේ. ඔබේ code එක මෙම කොටස්වලට පිටත, උදාහරණයක් ලෙස වැරදි loop එකක හෝ global scope එකේ තබා ඇත්නම්, එය අපේක්ෂිත පරිදි ධාවනය නොවේ.
නිවැරදි කිරීම:
Bars සහ ticks OnBar() හෝ OnTick() ඇතුළත හසුරුවන බව සහතික කර ගන්න. මෙයින් ඔබේ bot එකට backtesting සහ සජීවී ට්රේඩිං අතරතුර නව ticks හෝ bars වලට නිවැරදිව ප්රතිචාර දැක්වීමට හැකි වේ.
- ශේෂ ප්රතිශතය මත පදනම්ව lot size වැරදි ලෙස ගණනය කිරීම
AI ඔබේ ගිණුම් ශේෂය මත පදනම්ව lot size සැකසීමට උත්සාහ කරන විට (උදා. trade එකකට 2% අවදානම් කිරීම), එය වැදගත් විස්තරයක් — contract size — මඟ හැරිය හැක. මෙයින් නිශ්චිත නොවන lot sizes ඇති විය හැක. මෙය code දෝෂයක් trigger නොකරයි, නමුත් පරීක්ෂා කිරීමේදී, ඔබේ අවදානම් සැකසුම් සමඟ නොගැලපෙන trade ප්රමාණ ඔබට පෙනෙනු ඇත, සජීවී trades වල අධි-නිරාවරණය හෝ අඩු-නිරාවරණයක් ඇති කරයි.
නිවැරදි කිරීම:
Contract size සැලකිල්ලට ගන්නා lot size සූත්රයක් භාවිතා කරන්න, උදාහරණයක් ලෙස:
//-----------------------------------------------------------------
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 එකෙන් උදව් ඉල්ලා සිටිය හැක.
දෝෂ පණිවිඩය සහ අදාළ code එක පිටපත් කර, පසුව ඒවා AI model එක සමඟ බෙදා ගන්න. බොහෝ විට, එයට ගැටලුව හඳුනා ගෙන නිවැරදි කිරීමක් ලබා දීමට හෝ හැකි විසඳුම් යෝජනා කිරීමට හැකි විය යුතුය.
ඉඟිය: සජීවීව යාමට පෙර සැමවිටම backtest එකක් ධාවනය කරන්න. මෙවැනි ගැටලු සැබෑ මාර්කට් දත්ත සමඟ උපායමාර්ගය පරීක්ෂා කරන තෙක් පෙනෙන්නේ නැත.
ඔබේ AI-ජනිත expert advisor වැඩි දියුණු කරන්න
ඔබේ bot එක ක්රියා කරන විට, එහි කාර්යසාධනය සහ ස්ථායිතාව වැඩි දියුණු කිරීමට ඔබට කුඩා වෙනස්කම් කළ හැක. එසේ කිරීමට පොදු hack කිහිපයක් මෙන්න:
- ඉහළ volatility හෝ සම්බන්ධතා ගැටලු අතරතුර අනපේක්ෂිත හැසිරීම් කළමනාකරණය කිරීමට error-handling logic එකතු කරන්න.
- මාර්කට් එක ඔබට හිතකර ලෙස ගමන් කරන විට විභව ලාභ අගුළු දැමීමට trailing stop-loss එකක් භාවිතා කරන්න.
- එය ක්රියා කරන ආකාරය බැලීමට ඓතිහාසික දත්ත සමඟ ඔබේ උපායමාර්ගය backtest කරන්න.
- කියවීමේ හැකියාව සහ කාර්යක්ෂමතාව වැඩි දියුණු කිරීමට ඔබේ code එක පිරිසිදු කර සංවිධානය කරන්න. මෙය පසුව යාවත්කාලීන කිරීම හෝ ගැටලු විසඳීම පහසු කරයි.
ඉඟිය: ඔබේ bot පියවරෙන් පියවර ක්රියා කරන ආකාරය පරීක්ෂා කිරීමට MetaEditor Debugger (MT5 හි) භාවිතා කරන්න.
Backtesting ට්රේඩ් කිරීම තීරණාත්මක වන්නේ ඇයි
AI-generated bots යනු මුල සිට code කිරීමකින් තොරව ඔබේ ට්රේඩිං ස්වයංක්රීය කිරීමට විශිෂ්ට ක්රමයකි. නමුත් AI සමඟ වුවද, සජීවී තත්ත්වයන් තුළ හොඳින් ක්රියා කිරීමට ඔබේ උපාය මාර්ගයට තවමත් මානව පරීක්ෂා සහ ගැලපීම් අවශ්ය වේ.
සජීවී වීමට පෙර, හොඳින් පරීක්ෂා කිරීමට සහ කුඩා වැඩිදියුණු කිරීම් කිරීමට කාලය ගන්න. කුඩා නිවැරදි කිරීම් පවා ඔබේ EA කෙතරම් අනුකූලව සහ ඵලදායීව ක්රියා කරයිද යන්නෙහි විශාල වෙනසක් ඇති කළ හැක.