Ordersend () - pozíció megnyitása vagy függőben lévő megbízás elrendezése

Az eddigi kiadásokban számos olyan funkciót ismertek meg, amelyekkel a OrderSelect () függvénnyel allokált warrantokkal kapcsolatos információkat kaphat. A legtöbb ilyen funkció nagyon fontos és hasznos. Azonban valószínűleg már el akarja kezdeni a függvények tanulmányozását, amelyekkel nyitni és bezárni a pozíciókat, feltárni, módosítani és törölni a megrendeléseket.

Ma beszélünk az első ilyen funkcióról - a OrderSend () függvényről.

A OrderSend () függvény egy függőben lévő megbízás vagy pozíció megnyitására szolgál. A függvény visszaadja a nyitott pozíció vagy a függőben lévő sorrend jelzőjének számát. Hiba esetén a OrderSend () függvény -1 értéket ad vissza.

A OrderSend () függvény paraméterei

A cmd paraméterben a megbízás típusát adjuk át:

Függőben lévő rendelés SELL STOP

1. táblázat: A OrderSend () függvény cmd paraméterének lehetséges értékei

Így annak érdekében, hogy a cmd paraméterként értékesítsen egy pozíciót, meg kell adnia az OP_SELL értéket. Megvásárolni kívánt pozíció megnyitása - OP_BUY. Függőben lévő megbízás beállításához az OP_BUYLIMIT, az OP_SELLLIMIT, az OP_BUYSTOP vagy az OP_SELLSTOP értékeket kell használni az elhelyezett függő megbízás típusától függően.

Amikor árparaméterként megnyitja a pozíciót, akkor használja az aktuális ajánlatot (ha a cmd OP_SELL) vagy az aktuális Ask (ha a cmd OP_BUY):

  • az Ajánlat funkció visszaadja azt az eszközt, amelyhez a szakértői tanácsadó csatolva van, az aktuális ajánlat;
  • a Ask (Felfüggesztés) funkció visszaadja az aktuális kérdezést azon eszközzel kapcsolatban, amelyhez a szakértői tanácsadó csatlakozik;
  • a MarketInfo (string szimbólum, int típus) funkció a paramétertípussal. egyenlő MODE_BID vagy MODE_ASK, visszaadja a műszer aktuális Ajánlatát vagy Kérdését, amelyet szimbólumként adja hozzá.

Fontos:
Semmilyen esetben nem tudja használni az árat, hogy már számított néhány képlet, vagy az ár, hogy nem vezetett (normalizált), hogy hány tizedesjegy pontossággal, hogy mennyi legyen az eszköz.

Az ár normalizálása érdekében a NormalizeDouble () függvényt kell használni:

Ez a funkció a tényleges számértéket a tizedespont után számjegyekre egészíti ki. A tizedesvessző után a számjegyek száma a 0. tartományban legyen.

A "rossz" ár használata esetén az árparaméterben a következő hibakódok fognak szerepelni:

  • ERR_INVALID_PRICE (129) - ha az ár nem volt "normalizált", vagy egyáltalán nem volt ilyen ár az áramlásban;
  • ERR_REQUOTE (138) - ha az ár nagyon elavult (függetlenül a csúszási paraméter értékétől);

Ha az ár elavult, de még mindig jelen van az áramlásban, akkor az ügylet a jelenlegi árnál lesz, ha a jelenlegi ár az ár +/- csúszási tartományban van.

A OrderSend () függvény egyéb paraméterei

További három fontos paraméter - a StopLoss. TakeProfit és lejárat.

Amikor megnyitjuk pozitsiiyu (ki függőben sorrendben), majd a Stop Loss és Take Profit legyen kapcsolatban a jelenlegi ár (az ár egy függőben levő megbízás) nem közelebb, mint a parttól egy bizonyos számú pontot. Például, ha van fiókja az Alpari Kereskedési Központban. nem tudod Stop Loss és Take Profit megbízások deviza spread közelebb a jelenlegi ár nyitott helyzetben vagy egy függőben lévő megrendelés árát.

Ha megpróbálja elhelyezni Stop Loss és Take Profit közelebb, mint azt tette, akkor a függvény OrderSend () hibát ad vissza 130 (ERR_INVALID_STOPS).

Ha ezt a minimális értéket nem ismeri, mindig a MarketInfo () függvénnyel kaphatja meg. A MarketInfo (string szimbólum, int típus) funkció a paramétertípussal. egyenlő a MODE_STOPLEVEL értékkel, visszaadja ezt az értéket a műszeren, amelyet szimbólumparaméterként továbbít.

A szimbólum () függvény segítségével megkaphatja azt a grafikon eszközt, amelyhez a szakértő csatlakozik:

Ha OrderSend function () visszatérési hiba 147 (ERR_TRADE_EXPIRATION_DENIED), ez azt jelenti, hogy a kereskedelmi szerver tilos váró megrendelések a beállított dátum eksperatsii. Ebben az esetben később a Rendszend () függvényt kell használni a lejárati paraméterrel. nulla. A legtöbb üzletközpont lehetővé teszi az ügyfelek számára, hogy megadják a dátumot és az időt, amikor egy nem függő megbízás automatikusan törlődik.

Ha a OrderSend () 148-as hibát (ERR_TRADE_TOO_MANY_ORDERS) küld vissza, akkor azt jelenti, hogy a kereskedési kiszolgáló korlátozza a nyitott pozíciók és a függőben lévő megbízások maximális számát. Ha meg akarja nyitni egy másik pozíciót, vagy egy másik függőben lévő rendelést tesz, akkor meghaladja a megengedett határt, így ezt megtagadják.

A OrderSend () függvény használatának egyik példája megtalálható az első szakértőnkben:

A következő kiadásban példát mutatunk be a OrderSend () függvény használatára.