Programozás MQL4 levelet Advisor

És itt van a (z módosított) kód

#define ORDERBUY 1
#define ORDERSELL 2
#define ORDERBUYSTOP 4
#define ORDERSELLSTOP 8
#define ORDERBUYLIMIT 16
#define ORDERSELLLIMIT 32

int OrderCount (int típusú, int varázslat = 0, string szimbólum = «jelenlegi»)
int i, count = 0;
if (szimbólum == «aktuális»)
szimbólum = Symbol ();
>
for (i = OrdersTotal () - 1; i> = 0; i-)
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol () == szimbólum OrderMagicNumber () == magic)
if (típus ORDERBUY OrderType () == OP_BUY)
számolni ++;
>
if (típus ORDERSELL OrderType () == OP_SELL)
számolni ++;
>
if (típus ORDERBUYSTOP OrderType () == OP_BUYSTOP)
számolni ++;
>
if (típus ORDERSELLSTOP OrderType () == OP_SELLSTOP)
számolni ++;
>
if (típus ORDERBUYLIMIT OrderType () == OP_BUYLIMIT)
számolni ++;
>
if (típus ORDERSELLLIMIT OrderType () == OP_SELLLIMIT)
számolni ++;
>
>
>
visszatérés (count);
>

Egy hívás valójában mindkét vyglyadet

int OpenedPositionsCount = OrderCount (ORDERBUY | ORDERSELL, mágia, Symbol ());

int PendingLongPositionsCount = OrderCount (ORDERBUYSTOP | ORDERBYULIMIT, mágia, Symbol ());

Átírta, megváltozott rend, működik a párok és az arany, de a tesztelő arany ad -GOLD, H1: OrderSend error 130 - Szeretném tudni, hogy miért, és hogyan kell tesztelni az arany. Köszönjük!

Tetszett a tanulságot Szergej aka xbms nyugodt magyarázatot. Elnézést kérek, ha ez nem helyes azt mondani ...

Ebben a leckében # 2 véleményem ilyen kódot megfelelőbb volt a vizsgálatra az if, mint ez:

if (HourStart == TimeHour (TimeCurrent ()))
ha (CountBuyLimit () == 0)
SL = NormalizeDouble (minprice - StopLoss * Point, számjegyek);
TP = NormalizeDouble (minprice + TakeProfit * Point, számjegyek);
OrderSend (Symbol (), OP_BUYLIMIT, Telkek, minprice, Csúszás, SL, TP, megjegyzés, Magic, 0, Blue);
>
ha (CountSellLimit () == 0)
SL = NormalizeDouble (maxprice + StopLoss * Point, számjegyek);
TP = NormalizeDouble (maxprice - TakeProfit * Point, számjegyek);
OrderSend (Symbol (), OP_SELLLIMIT, Telkek, maxprice, Csúszás, SL, TP, megjegyzés, Magic, 0, piros);
>
>

if (HourStart == TimeHour (TimeCurrent ()) CountBuyLimit () == 0 CountSellLimit () == 0)

Mert miután az idő próbáját, és ezzel egyidejűleg ellenőrzi otlozhenniki előfordulhat mellett ... tanácsadó elhalasztani egy, például azért, mert a vételi és eladási otlozhennik nem tartják miatt a jelenlegi ár közel a minimális értéket, és ha a körülmények olyanok, hogy CountBuyLimit () == az 1. és ez a feltétel nem hozott otlozhennik eladó ... Lehet, hogy tévedek? Elnézést!

« 'End_of_program' - kiegyensúlyozatlan baloldali zárójel C: Program FilesInstaTraderexpertsTest1.mq4 (181, 1)”

Hogyan lehet megoldani?
Itt a kód része, ahol egy hiba. Mint minden igaz ... írtam:

A (int kereskedelmi = OrdersTotal () - 1; kereskedelem> = 0; kereskedelemmel)

OrderSelect (kereskedelem, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol () == Symbol () OrderMagicNumber () == magic)

if (OrderType () == OP_SELLLIMIT)

Itt is úgy döntöttem, hogy tanulmányozza MMS. Az élet készül. Szabad senki ír, és még lopni Gral. Csak balszerencse - a Mql5 terminálok. Van egy kicsit más. Paraleyno ezen, és próbálja legyőzni ezt az utat, és MMS oldalon. Ragasztani fogantyúk. Ez az a kérdés - hogyan kell használni mutatók. amely nem egy útmutató a MQL. Honnan tudom, hogy melyik beállítások szükségesek?

Frissítve bemutató az új építésű

régen olvastam a cikket a honlapján ... és ott volt egy ilyen stratégia, amely előírja, több időt töltenek a számítógép előtt ... de a pontos részletek én alapvető munka nem teszi lehetővé lakóhelye közelében, a monitor ... próbáltam többször kezdeni a tanulást MMS. de a súlyos megterhelést a munkahelyen, majd megszületett a kislánya kénytelen elhalasztani mindezt a „hátsó égő” .Navernoe. Ha nem újította meg a tanulságokat. Azt tehát halogatni ... most minden sokkal világosabb. Azt akarom mondani, köszönöm, és várom, hogy a következő kiadás a frissített urokov.S tekintetben. bogár