Mwongozo wa kupima na kuboresha AI expert advisor | Deriv Blog
Boresha AI expert advisor yako kwa mbinu sahihi za majaribio. Mwongozo wetu unashughulikia matatizo ya kawaida, mbinu za majaribio, na uboreshaji wa expert advisor kwa bots za biashara zinazotegemewa.
Timu ya Deriv · 21 Aprili 2025 · 4 dak kusoma

AI trading expert advisors zimefika — lakini bado unahitaji kuzipima na kuziboresha.
Ikiwa tayari umetumia zana za AI kama Claude au ChatGPT kuunda expert advisor kwa Deriv MT5 au cBot kwa Deriv cTrader, umeanza vizuri. Lakini hata kama msimbo unaonekana sawa, bado unaweza kuwa na makosa yanayoathiri jinsi bot inavyofanya kazi.
Kabla ya kuendesha expert advisor (EA) yako katika soko halisi, ni muhimu kuipima na kuhakikisha inafanya kazi jinsi unavyotarajia.
Katika mwongozo huu, tutapitia makosa ya kawaida ya uandishi wa msimbo katika EA zilizotengenezwa na AI, jinsi ya kuyarekebisha, na vidokezo vya vitendo vya kuboresha utendaji wa bot yako.
Makosa ya kawaida ya uandishi wa msimbo wa AI MQL5
Haya ni baadhi ya matatizo yanayopatikana zaidi katika EA zilizotengenezwa na AI, pamoja na njia za kuyarekebisha:
- Hitilafu ya undeclared identifier katika MQL5
Hitilafu hii hutokea bot inapotumia kigezo au jina ambalo halijafafanuliwa ipasavyo, kama kukosa parameter au kutumia jina lisilo sahihi katika viashiria kama iMA().
Suluhisho:
Angalia vigezo vya kiashiria na hakikisha majina yote ya vigezo yanalingana na yanayotarajiwa katika MetaEditor (zana ya uandishi wa msimbo ya MT5).
- Kukosa functions za utekelezaji wa biashara za Buy/Sell
Baadhi ya bots zilizotengenezwa na AI huruka mantiki muhimu ya kufungua biashara.
Suluhisho:
Ongeza wewe mwenyewe functions za msingi za utekelezaji wa biashara. Hapa kuna mfano wa muundo wa msingi wa kuweka agizo la 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);
}
Hakikisha pia unajumuisha mantiki ya maagizo ya sell na kufafanua masharti ambayo biashara zinapaswa kuwekwa chini yake.
- Masharti yasiyofaa ya loop katika Deriv cTrader
Katika Deriv cTrader, mantiki ya bot inahitaji kuendeshwa ndani ya functions maalum kama OnBar() au OnTick(). Hizi huamilishwa kiotomatiki soko linaposonga. Ikiwa msimbo wako umewekwa nje ya sehemu hizi, kama katika loop isiyo sahihi au global scope, hautafanya kazi kama inavyotarajiwa.
Suluhisho:
Hakikisha kuwa bars na ticks zinashughulikiwa ndani ya OnBar() au OnTick(). Hii itaruhusu bot yako kujibu ipasavyo ticks au bars mpya wakati wa backtesting na biashara halisi.
- Kukokotoa vibaya ukubwa wa lot kulingana na asilimia ya salio
AI inapojaribu kuweka ukubwa wa lot kulingana na salio la akaunti yako (mf. kuhatarisha 2% kwa kila biashara), inaweza kuruka undani muhimu — ukubwa wa kandarasi. Hii inaweza kusababisha ukubwa wa lot usio sahihi. Hii haisababishi hitilafu ya msimbo, lakini katika majaribio, utaona ukubwa wa biashara usiolingana na mipangilio yako ya hatari, na kusababisha mfiduo kupita kiasi au chini ya kiwango katika biashara halisi.
Suluhisho:
Tumia fomula yenye ukubwa wa lot unaozingatia ukubwa wa kandarasi, kama ifuatavyo:
//-----------------------------------------------------------------
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;
- Hitilafu nyingine
Ukikumbana na mojawapo ya hitilafu hizi—au nyingine yoyote—unaweza kila wakati kuuliza modeli yako ya AI msaada wa kutambua na kurekebisha tatizo.
Nakili tu ujumbe wa hitilafu na msimbo husika, kisha ushiriki na modeli ya AI. Mara nyingi, itaweza kutambua tatizo na kutoa suluhisho au kupendekeza njia zinazowezekana.
Kidokezo: Kila wakati fanya backtest kabla ya kuanza biashara halisi. Matatizo kama haya hayaonekani hadi upime mkakati kwa data halisi ya soko.
Boresha expert advisor yako iliyotengenezwa na AI
Bot yako ikishaanza kufanya kazi, unaweza kufanya mabadiliko madogo ili kuboresha utendaji na uthabiti wake. Hapa kuna mbinu chache za kawaida za kufanya hivyo:
- Ongeza mantiki ya kushughulikia hitilafu ili kudhibiti tabia zisizotarajiwa wakati wa mabadiliko makubwa ya bei au matatizo ya muunganisho.
- Tumia trailing stop-loss kufunga faida zinazowezekana soko linaposonga kwa faida yako.
- Fanya backtest ya mkakati wako kwa data ya kihistoria ili kuona jinsi ungefanya kazi.
- Safisha na panga msimbo wako ili kuboresha usomaji na ufanisi. Hii itarahisisha kusasisha au kutatua matatizo baadaye.
Kidokezo: Tumia MetaEditor Debugger (kwenye MT5) kupima jinsi bot yako inavyoendeshwa hatua kwa hatua.
Kwa nini backtesting ya biashara ni muhimu
Bots zilizotengenezwa na AI ni njia bora ya kuendesha biashara yako kiotomatiki bila kuhitaji kuandika msimbo kuanzia mwanzo. Lakini hata ukitumia AI, mkakati wako bado unahitaji ukaguzi na marekebisho ya binadamu ili kufanya kazi vizuri katika hali halisi.
Kabla ya kuanza biashara halisi, chukua muda kupima kwa kina na kufanya maboresho madogo. Hata marekebisho madogo yanaweza kuleta tofauti kubwa katika jinsi EA yako inavyofanya kazi kwa uthabiti na ufanisi.