Live HelpLive Help       Език: Български

DS_API за MetaTrader 4

Скриптове за търговия към Делтасток

Тази част е предназначена както за потребители на MetaTrader, които имат опит в писането на скриптове, така и за програмисти.

API-то на Delta Trading не може да се използва директно от MQL4 скрипт, тъй като скриптът не позволява извикването на ActiveX компоненти, а само на външни библиотеки (DLL-и).

Затова сме създали обикновен DLL (delta.dll). В него сме включили повечето API функции от DSAPI. По този начин можете да ги използвате в свойте MQL4 скриптове.

"delta.dll" трябва да бъде поставен в <terminal_dir> или <WINDIR>\system32. Файлът DLL автоматично се инсталира в <terminal_dir>.

Примери за ползването на функциите може да намерите в DELTA_Samples.mq4.

Описание на функциите, които могат да се ползват с Meta Trader скрипт

Всички фукции започват с "DELTA_" и са декларирани в metadelta.mqh (което е в <terminal_dir/experts/include>).
Всички функции връщат int, която е различна от 0 при грешка и 0 в противен случай. Стойности между -500 и -1 дава информация за DSAPI грешка, която може да проверите в таблицата с DSAPI грешки. Стойности под -500, показват OLE грешка. Ако стойността е по-голяма от 0, това е Exception number.
Всички функции взимат като първи параметър номера на Делтасток сметката, с която търгува даденото API. Това е необходимо, тъй като Delta Trading позволява едновременно да работят няколко копия и по този номер се разбира кое копие използва API-то в момента.
За да използвате функциите от DLL-а, трябва да включите metadelta.mqh в началото на скрипта, в който ще го използвате чрез #include <metadelta.mqh>.
Ако сте решили да използвате API функциите в Meta Trader скрипта трябва да извикате DELTA_Init(AccNumber) преди да извиквате, която и да е от другите функции. В края на скрипта трябва да извикате DELTA_Uninit().
Ако скриптът е автоматизирана стратегия (Expert Advisor), това не е необходимо.

Описание на функциите

Следва описание на всяка една от функциите, включени в delta.dll:

 DELTA_Init()
int DELTA_Init(string DS_AccNumber)

Тази функция инициализира API.

Параметри:

DS_AccNumber: Номерът на сметката в "Делтасток", с която ще търгува API-то.

Meta Trader скрипт: DELTA_Init() трябва да се извика веднъж в началото преди всички други функции. И съответно, преди края на скрипта да се извика DELTA_UnInit().

Expert Advisor: Ако скриптът е Expert Advisor, няма нужда да извиквате DELTA_Init() или DELTA_UnInit().
 DELTA_UnInit()
int DELTA_UnInit()

Освобождава ресурсите, използвани от DSAPI.

* Meta Trader скрипт: - DELTA_UnInit() трябва да бъде извикан в края на скрипта след всички други функции.

* Expert Advisors: няма нужда да извиквате DELTA_Init или DELTA_UnInit.
 DELTA_NewOrder
 DELTA_GetOrderStatus
int DELTA_GetOrderStatus( string DS_AccNumber, int orderID, int & Status[]);

Връща статуса на поръчката.

Параметри:
OrdID Номер на поръчката, чийто статус проверявате.
Status - Дава статуса на поръчката:
1, 2, 3, 4, 5 –изпратен/потвърден/изпълнен/отменен/заявен за отмяна. Можете също да използвате дефинираните константи в metadelta.mqh:
int ORD_PENDING = 1;
int ORD_CONFIRMED = 2;
int ORD_EXECUTED = 3;
int ORD_CANCELED = 4;
int ORD_AWAITING_CANCELATION = 5;

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_GetOrderParams
int DELTA_GetOrderParams( string DS_AccNumber, int OrderID, string DS_Symbol, string Oper, double& PriceExecuted[],int& Units[]),int& Status[],int& Type[],double& PricePlaced[],double& PriceOCO[]);

Връща параметрите на поръчката

Параметри:
DS_AccNumber- Номер на сметката в "Делтасток"(напр.: "000142775").

Параметрите Price, Units и Status трябва да бъдат декларирани като елементи на масив с един елемент, за да може функцията да върне резултат в тях.

OrderID – Номер на поръчката

DS_Symbol – Код на поръчката

Oper - Операции по поръчки - "B" - КУПУВА, "S" - ПРОДАВА

Price - Цена на изпълнение

Status - Статус на поръчката:
      ORD_PENDING= 1;
      ORD_CONFIRMED= 2;
      ORD_EXECUTED= 3;
      ORD_CANCELED= 4;
      ORD_AWAITING_CANCELATION = 5;

Type - Тип на поръчката: 1-маркет,2-лимит,3-стоп,4-ЕОД

PricePlaced - Заявена цена (за лимит и стоп поръчки)

PriceOCO - Втора цена при ЕОД поръчки

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_GetPosition
int DELTA_GetPosition(string DS_AccNumber, string Instrument, double& Count[],double& Price[]);

Функцията връща количество и средна цена на позиция.

Параметри:
DS_AccNumber - Номерът на сметката в "Делтасток", с която търгува API-то.
Instrument – Код на инструмента, чиято позиция се проверява.
Count - Обем на позицията в единици (не лотове).
Price - Средна цена на позицията.

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_FreeMargin
int DELTA_FreeMargin(string DS_AccNumber, string Currency, double& Margin[]);
Връща свободните средства по сметката в указаната валута.

Параметри:
DS_AccNumber - Номер на сметката в "Делтасток".
Currency – Валутата, в която е изчислен марджинът.
Margin - Свободните средства в указаната валута.

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_CancelOrder
int DELTA_CancelOrder(string DS_AccNumber, int OrdID);
Заявява поръчка за отмяна.

Параметри:
DS_AccNumber - Номер на сметката в "Делтасток"
OrderID – Номер на поръчката, която искате да отмените.

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_ClosePosition
int DELTA_ClosePosition(string DS_AccNumber, string Instrument);
Тази функция затваря позицията на даден инструмент на текуща пазарна цена.

Параметри:
DS_AccNumber - Номер на сметката в "Делтасток"
Instrument – Код на инструмента.

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_GetPositionRes
int DELTA_GetPositionRes(string DS_AccNumber, string Instrument, string Currency, double&result[]);

Функцията връща текущия резултат на позицията.

Параметри:
DS_AccNumber - Номер на сметката в "Делтасток".
Instrument – Код на инструмента.
Currency – Валутата, в която ще бъде изчислен резултатът (напр.: InCurrency = "EUR").
Result - Текущ резултат от позицията.

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_GetErrMsg
int DELTA_GetErrMsg(string DS_AccNumber, int  err_no, string  errMsg, int  errMsgLen);

Функцията връща описание на грешка номер err_no.

Параметри:

DS_AccNumber - Номерът на сметката в "Делтасток", с която търгува API-то.

err_no – Номер на грешката, чието описание се иска.

errMsg – Описание на грешката.

errMsgLen - Дължина на стринга errMsg. Стрингът errMsg трябва да бъде инициализиран с брой символи равен на errMsgLen:
string ErrMsg = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_GetQuote
int DELTA_GetQuote(string DS_AccNumber,string Instrument, double& QBid[],double& QAsk[],double& QHi[],double& QLow[]););

Връща котировките за даден инструмент.

Параметри:
DS_AccNumber - Номер на сметката в "Делтасток"

Функцията връща резултата в параметрите по-долу. Параметрите трябва да бъдат декларирани като масиви от един елемент, за да може функцията да върне съответния резултат.
QBid – Купува
QAsk – Продава
QHi - Най-високо
QLow - Най-ниско

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.

Пример:
double QBid[1], QAsk[1], QHi[1], QLow[1];
err = DELTA_GetQuote(Instrument, QBid, QAsk, QHi, QLow);
if(err != 0)
{
     Print("ERROR calling DELTA_GetQuote: ", err);
     return(-1);
}
else
{
    Print ("bid = " + QBid[0] + "ask = " + QAsk[0] + "hi = " + QHi[0] + "low = " + QLow[0]);
}
 DELTA_GetPrecision
int DELTA_GetPrecision(string DS_AccNumber,string Instrument, double& Precision[]);

Връща точността на котиране за даден инструмент (брой цифри след десетичния знак).

Параметри:

DS_AccNumber- Номер на сметката в "Делтасток" (напр.: "000142775").

Instrument- Инструментът, чиято точност на котиране определяме.

Precision - Резултатът за точността се връща тук. Параметърът трябва да се декларира като масив с един елемент, за да може да го получава (например: double prec[1]).

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_Log
int DELTA_Log(string DS_AccNumber,int on_off);

Включва/изключва писането на грешките в лог-файл. Лог-файлът се пише в <DeltaTrading_dir>/Logs. За да се включи лог-файл, е необходимо да включите и опцията "Запиши в лог файл" на Delta Trading (намира се в меню настройки/ общи настройки/ клиент). Когато опцията е включена, при грешка се пише допълнителна информация.

Параметри:

DS_AccNumber- Номер на сметката в "Делтасток" (напр.: "000142775")

Precision- 1 включва лога, 0 го изключва.

Резултат:
Връща 0, ако всичко е наред, и различно от 0 - при грешка.
 DELTA_GetPip



DELTA TRADING
Форма за бърза регистрация
*
*
Парола:*Повторете паролата:*
 
Държава:*
Защитен код:*
Въведете кода:*



Въпроси и отговори за Meta-Delta



Уведомление за риск: Tърговията на марджин носи висока степен на риск! Съществува възможност да понесете частична или пълна загуба на вложените от вас средства. Поради тази причина, не трябва да инвестирате пари, които не можете да си позволите да загубите. Високото ниво на ливъридж увеличава както вашата печалба, така и вашата загуба. Повече за рисковете можете да прочетете тук.


Всички права запазени © 1999-2012 "ДЕЛТАСТОК" АД - 1784 София, бул. "Цариградско шосе" 115Г, Офис сграда "Мегапарк", Тяло "Е", ет. 6, тел. 8115010, GSM 0897 818030, 0889 919669; office@deltastock.bg;