Modul 2 · Programmering for tradere

2.2 Hvordan en robot er bygget

Leksjon 5 av 18Lesetid: 2 min

En robot er ikke et program som kjører fra topp til bunn og stopper. Den venter på hendelser – og plattformen kaller riktig funksjon når noe skjer.

OnInit / OnStartÉn gang: lag indikatorerOnTickVed hver prisendringOnDeinit / OnStopÉn gang: rydd oppNytt lys?Nei → bare trailing stopLes signalIndikatorer, lys 1 og 2Sjekk filtreTrend, tid, spreadRegn størrelseRisiko i % og SLSend ordreMed SL og TPJa
Hendelsene i en robot. Det meste skjer i OnTick – men vi ser bare etter nye signaler når et nytt lys starter.

Hendelsene

HendelseMetaTrader (MQL4/MQL5)cTrader (C#)
Roboten starterOnInit()OnStart()
Ny prisOnTick()OnTick()
Nytt lysMå sjekkes selv i OnTick()OnBar()
Roboten stopperOnDeinit()OnStop()

Nytt lys i MetaTrader

MetaTrader har ingen egen hendelse for nytt lys. Derfor sjekker vi selv om tidspunktet for lys 0 har endret seg:

MQL5
datetime lastBarTime = 0;

void OnTick()
{
   datetime barTime = iTime(_Symbol, _Period, 0);
   if(barTime == lastBarTime) return;   // samme lys som sist: gjør ingenting
   lastBarTime = barTime;

   // her ser vi etter nye signaler – én gang per lys
}

return betyr «avslutt funksjonen her». Koden under kjøres altså bare én gang per lys.

Nytt lys i cTrader

I cTrader er det enklere. OnBar() kalles automatisk hver gang et nytt lys starter:

C# (cTrader)
protected override void OnBar()
{
    // her ser vi etter nye signaler – én gang per lys
}

Hva skal hvor?

  • OnInit / OnStart: Lag indikatorer og sjekk innstillinger.
  • OnTick: Ting som må skje kontinuerlig – for eksempel trailing stop.
  • Nytt lys: Les signaler og åpne handler.
  • OnDeinit / OnStop: Rydd opp.

Hvorfor ikke se etter signaler ved hver pris?

Det kan komme mange prisendringer i sekundet. Hvis roboten ser etter signaler på hver av dem, kan den åpne flere handler på samme signal – og resultatet blir avhengig av hvor mange prisendringer som kom. Ved å bare se etter signaler på nytt lys blir roboten forutsigbar, og testene blir mer pålitelige.

Kort oppsummert

  • En robot reagerer på hendelser: start, ny pris, nytt lys og stopp.
  • I MetaTrader sjekker du selv om et nytt lys har startet. I cTrader brukes OnBar.
  • Se etter signaler én gang per lys – det gjør roboten forutsigbar.
Øv uten risikoTest det du har lært på en gratis demokonto hos Skilling.
Åpne demokonto

65% av ikke-profesjonelle taper penger når de handler CFDer med denne leverandøren.