Popularni Postovi

Izbor Urednika - 2019

MQL4: Pisanje savjetnika za trgovanje zadanim uzorcima

Pozdrav svima!

Sigurno su mnogi od vas često primjećivali da povremeno grafikoni određenog valutnog para ponavljaju njihove pokrete. Zapravo, u većini slučajeva - ovo je samo privremeni fenomen, koji neće raditi kako bi zaradio dovoljno novca. Ali što ako postoje tako pouzdana kretanja cijena i obrasci kojih nismo svjesni? Danas ćemo napisati prilično jednostavan savjetnik koji će nam pomoći u istraživanju tržišta.

Što ćemo napisati?

Svako istraživanje uvijek se temelji na specifičnoj hipotezi. Prvo smo je iznijeli, a zatim je dokazujemo ili opovrgavamo.

Danas ćemo napisati jednostavan savjetnik koji će raditi na dnevnoj karti. Osnova za formiranje ulaza bit će uzorak svijećnjaka vezan za dan u tjednu. Naša hipoteza je sljedeća: ako vidimo jednu medvjeđu svijeću, a potom bikovu, recimo, u srijedu, onda će u četvrtak svijeća također biti bikovska. Ako vidimo bikovu svijeću, a zatim medvjeđu svijeću, sutradan ćemo se zatvoriti još niže. Ilustrirat ću to na slici:

Kao što vidite, uzorak je vrlo jednostavan, i malo je vjerojatno da stvarno djeluje. Ipak, na tržištu postoje takve anomalije na kojima lako možete zaraditi male, ali stvarne novce iz godine u godinu.

Dizajn našeg savjetnika

Savjetnik će biti vrlo jednostavan. Provjerit će trenutni dan u tjednu s danima kada je trgovanje dopušteno. Zatim provjerava ima li otvorenih naloga. Nakon toga provjerit će se postoji li navedeni uzorak, a ako se otkrije, otvorit će ugovor. Položaj će biti zatvoren sutradan.

Stoga ćemo tijelo savjetnika podijeliti u nekoliko dijelova. Prvi dio je filter dana u tjednu:

bool TimeFilter () {

if (! MondayTrade && DayOfWeek () == 1) return (false);

if (! TuesdayTrade && DayOfWeek () == 2) return (false);

if (! WednesdayTrade && DayOfWeek () == 3) return (false);

if (! ThursdayTrade && DayOfWeek () == 4) return (false);

if (! FridayTrade && DayOfWeek () == 5) return (false);

povratak (istina);

}

Vratit će se na pogrešno ako je u postavkama zabranjen trenutni dan u tjednu. Drugi blok generira signal:

int signal () {

ako se (! TimeFilter ()) vrati -5;

double Close1 = iClose (_Symbol, signal_period, 1);

dvostruki Open1 = iOpen (_Symbol, signal_period, 1);

double Close2 = iClose (_Symbol, signal_period, 2);

dvostruki Open2 = iOpen (_Symbol, signal_period, 2);

ako (Zatvori2> Otvori2 && Zatvori1 <Otvori1) {

povratak OP_SELL;

}

ako (Zatvori2 Otvori1) {

povratak OP_BUY;

}

povratak -5;

}

Kao što vidite, mi samo tražimo obrazac koji nam treba. A ovu metodu možete prepisati da biste potražili bilo koji uzorak.

Ostalo je samo napisati metodu za otvaranje i zatvaranje položaja. A metoda koja signalizira da je trenutačni položaj već otvoren 1 traka, i vrijeme je da ga zatvorite:

bool ExitTime (int dir) {

za (int i = OrdersTotal (); i> = 0; i-) {

if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {

nastaviti;

}

if (OrderSymbol ()! = simbol () || OrderMagicNumber ()! = magija) {

nastaviti;

}

ako je (TimeCurrent () - OrderOpenTime ()> 60 * izlaz_bar * izlazni_period) {

povratak (istina);

}

}

povratak (lažno);

}

To je, zapravo, sve. Kompletan kôd savjetnika možete vidjeti u video vodiču.

Rezultati

Kao što sam već rekao, savjetnik je, poput samog obrasca, vrlo jednostavan. Ali na tržištu, "jednostavno" - ne znači uvijek loše i nije isplativo. Čak se i takve jednostavne stvari, na naše iznenađenje, mogu pretvoriti u radnike, za što volim ovo tržište. Ovo je tržište kontrasta koji oduzimaju dah. Dok ručni trgovci općenito trguju slijepo, bez ikakve potvrde statističkog značaja svojih sustava, pridošlice ulažu posljednji novac u mreže i martini, algoritamski trgovci izumljuju sofisticiranije skalpere s brojem redaka koda koji daju kvote “Ratu i miru”, ponekad vrlo jednostavne, ali profitabilne stvari leže na površini, ali ih nitko ne vidi. U tome postoji nekoliko vrlo sofisticirane ironije, zar ne?

Rezultati, naravno, ne sjaje, ali uzorak je snimljen nasumično i krajnje je jednostavan. Siguran sam da ako to malo ispravite, onda možete postići bolje rezultate.

Zaključak

Ideja uzorka s dvije svijeće suprotnih boja i postavljena za nastavak pokreta vrlo je jednostavan primjer. Pri tome se ne uzima u obzir ni oblik, ni hlapljivost, niti omjer veličine sjene prema veličini samog tijela svijeće. Možete smisliti vlastite uzorke i testirati ih - kao što znate, možda ćete pronaći zaista vrijedne i vrlo profitabilne mogućnosti.

Pogledajte video: Robot Building Tutorials #6 - Intro to MQL4 (Studeni 2019).

Ostavite Komentar