3.1 Din første robot, del 1: innstillinger og indikatorer
Nå bygger vi en hel robot. Strategien er regelboken fra modul 1: EMA(10) krysser EMA(30), stop loss 30 pips, take profit 60 pips og maks én posisjon. Vi starter i MetaTrader 5.
Steg 1: Lag filen
- Åpne MetaTrader 5 og trykk F4 for å åpne MetaEditor.
- Velg File → New → Expert Advisor (template) og klikk Next.
- Kall den MaKryss, klikk Next til du kommer til Finish.
- Slett alt innholdet i filen. Vi skriver alt selv.
Steg 2: Toppen av filen
#property copyright "Mitt navn"
#property version "1.00"
#include <Trade\Trade.mqh> // henter inn CTrade, som gjør det enkelt å sende ordrer
CTrade trade;#include henter inn ferdig kode fra MetaTrader. CTrade er en hjelper som sender ordrer, lukker posisjoner og flytter stop loss med én linje hver.
Steg 3: Innstillingene
input int InpFastPeriod = 10; // Rask EMA
input int InpSlowPeriod = 30; // Treg EMA
input double InpLots = 0.10; // Størrelse i lot
input double InpStopLossPips = 30; // Stop loss i pips
input double InpTakeProfitPips = 60; // Take profit i pips
input ulong InpMagic = 12345; // Magisk nummerDet magiske nummeret er robotens signatur. Roboten setter det på alle sine handler, slik at den bare styrer sine egne – ikke handler du har åpnet manuelt.
Steg 4: Globale variabler og OnInit
int hFast, hSlow; // håndtak til indikatorene
datetime lastBarTime = 0; // tidspunktet for forrige lys vi så på
double pip; // størrelsen på én pip i pris
int OnInit()
{
pip = (_Digits == 3 || _Digits == 5) ? 10 * _Point : _Point;
hFast = iMA(_Symbol, _Period, InpFastPeriod, 0, MODE_EMA, PRICE_CLOSE);
hSlow = iMA(_Symbol, _Period, InpSlowPeriod, 0, MODE_EMA, PRICE_CLOSE);
if(hFast == INVALID_HANDLE || hSlow == INVALID_HANDLE)
{
Print("Kunne ikke lage indikatorene");
return(INIT_FAILED);
}
trade.SetExpertMagicNumber(InpMagic);
trade.SetTypeFillingBySymbol(_Symbol);
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
IndicatorRelease(hFast);
IndicatorRelease(hSlow);
}Hva er en pip i koden?
_Point er den minste prisendringen. På EUR/USD med fem desimaler er det 0,00001. En pip er ti ganger så mye: 0,0001. Linjen pip = ... tar høyde for både 5- og 3-desimalers par (som USD/JPY) og 4- og 2-desimalers par.
Kompiler ofte
Trykk Compile (F7) etter hvert steg. Da finner du feilene mens de er få. Nederst i MetaEditor står eventuelle feil med linjenummer.
Kort oppsummert
- CTrade fra Trade.mqh gjør det enkelt å sende ordrer.
- Input-parametere blir innstillinger du kan endre i plattformen.
- Lag indikatorene én gang i OnInit, og sjekk at de ble laget.
65% av ikke-profesjonelle taper penger når de handler CFDer med denne leverandøren.