|
|
DSAPI_Client APIПредоставеният приложен програмен интерфейс (DSAPI_Client.exe) реализира достъп до някои от най-важните функции на електронната платформа Delta Trading. Нашите клиенти могат да го използват за връзка с автоматични системи за онлайн търговия. Езикът за програмиране на тези системи трябва да позволява използване на ActiveX component DSAPI_Client.exe и инстанциране на обектa DSAPI_Client.clientAPI. DSAPI_Client.exe ще се поддържа от версия 4.0.7 и всички след нея. Използват се само три основни типа за представяне на данните: Long – 32-bit (4-byte) цели числа със знак (+/-);
Double – IEEE 64-bit (8-byte) числа със плаваща запетая; String – Unicode character set, 2 байта за един символ. Типът Date (8-byte) се конвертира 1:1 в Double (8-byte) и се подава като параметър. Другото изискване е електронната платформа Delta Trading да работи. Клиентът трябва да заяви в ИП "Делтасток" АД, че желае да ползва DSAPI_Client интерфейса. DSAPI_Client API има следните функции:
Инструментите (параметърът Instrument) в DSAPI_Client API се задават с техните кодове (към 05/2007): Валути:
Акции, индекси, злато и петрол могат да се видят в платформата Delta Trading от менюто "Търговия/Инструменти". Инструментите, които искате да използвате в DSAPI_Client API, трябва предварително да бъдат заредени в платформата Delta Trading. Валутите (параметърът InCurrency) се задават с техните стандартни кодове:
Следва подробно описание на функции от DSAPI_Client. 1. CancelOrder (OrdID As Long) As LongЗаявява един ордер за отмяна. Параметри: OrdID – номер на поръчката, която искате да отмените. Резултат: Ако върнатият резултат е равен на OrdID, поръчката е отменена. Ако е по-малък от 0 – има грешка, върнатият резултат е номерът на грешката (виж таблицата с грешките). Пример: CancelOrder (12345678) – 12345678 (поръчката е отменена). 2. CancelOrder_Async (OrdID As Long, RequestID As Long, errNumber As Long)Заявява един ордер за отмяна. Обработката е асинхронна. Връща две стойности (по референция) RequestID и errNumber, затова тези параметри трябва да се обяват предварително като променливи. RequestID – уникален номер на заявката към DSAPI_Client.clientAPI. Чрез този номер ще можете да проследявате как е минало изпълнението. errNumber – номер на грешка Параметри: OrdID – номер на поръчката, която искате да отмените RequestID – уникален номер на заявката към DSAPI_Client.clientAPI errNumber – променлива, в която по референция се връща номер на грешката (виж таблицата с грешките) Резултат: RequestID – уникален номер на заявката към DSAPI_Client.clientAPI errNumber – номер на грешката (виж таблицата с грешките) Пример: CancelOrder_ASync (12345678, RequestID1, errNumber1) RequestID1 – 453628 errNumber1 – 0 ... Получаване на резултат от заявката става чрез събитието: CancelOrderExecuted (RequestID As Long, OrdID As Long) Instance_CancelOrderExecuted (RequestID As Long, OrdID As Long) – поръчката е отменена от заявка за отмяна RequestID и поръчка номер OrdID. 3. ClosePosition (Instrument As String) As LongЗатваря позицията с инструмент Instrument. Параметри: Instrument – инструмент код (Напр.: "EUR/USD") Резултат: 1 – позицията е затворена; 0 – няма резултат; < 0 – номер на грешката (виж таблицата с грешките). Пример: ClosePosition("EUR/USD") – 1 (позицията е затворена) 4. GetAccSum (InCurrency As String, errNumber As Long) as DoubleВръща салдото по сметки в заявената валута или 0, ако има грешка. Номерът на грешката се получава от параметъра errNumber. Той трябва да бъде предварително
дефинирана променлива, която получава стойност по референция от функцията GetAccSum. Параметри: InCurrency – валута (Напр: InCurrency = "EUR"). errNumber – променлива, в която по референция се връща номерът на грешката (виж таблицата с грешките) Пример: GetAccSum ("USD", errNumber1) – 2345.33 (в USD) errNumber1 – 0 5. GetAccSum_S (InCurrency As String)Връща салдото по сметки в заявената валута или 0, ако има грешка. Номерът на грешката се получава от параметъра errNumber. Той трябва да бъде предварително
дефинирана променлива, която получава стойност по референция от функцията GetAccSum. Параметри: InCurrency – валута (Напр: InCurrency = "EUR"). Пример: GetAccSum_S ("USD") – Резултат - RES2345.33*ERR0* GetParam("RES", Резултат) - Резултат 2345.33 GetParam("ERR", Резултат) - Резултат ErrorNumber – 0 6. GetChartData (Instrument As String, iTypeInter As String, fname As String, DateFrom As Double, DateTo As Double, errNumber As Long) As LongВръща 0/1 – неуспешно/успешно пренасяне на данните във файл. Параметри: Instrument – инструмент дисплей код iTypeInter – интервал:
Fname – името на файла – пример: C:\chart\eurusd5.txt (пътят до файла трябва да бъде предварително създаден!) DateFrom – Date (не Datetime) – начало на периода за експорт (конвертирана в Double) DateTo – Date (не Datetime) – край на периода за експорт (конвертирана в Double) errNumber – променлива, в която по референция се връща номер на грешката (виж таблицата с грешките) Пример: GetChartData("EUR/USD", "24", "C:\chart\eurusd5.txt", 234242.2246, 353535.666, errNumber1) – 1 errNumber1 – 0 Резултатът е записан във файл със следния (.csv– comma delimited) формат: 7. GetChartData_S (Instrument As String, iTypeInter As String, fname As String, DateFrom As Double, DateTo As Double) As StringВръща 0/1 – неуспешно/успешно пренасяне на данните във файл. Параметри: Instrument – инструмент дисплей код iTypeInter – интервал:
Fname – името на файла – пример: C:\chart\eurusd5.txt (пътят до файла трябва да бъде предварително създаден!) DateFrom – Date (не Datetime) – начало на периода за експорт (конвертирана в Double) DateTo – Date (не Datetime) – край на периода за експорт (конвертирана в Double) Пример: GetChartData_S("EUR/USD", "24", "C:\chart\eurusd5.txt", 234242.2246, 353535.666) – Резултат RES1*ERR0 GetParam("RES", Резултат) = 1 GetParam("ERR", Резултат) = 0 Резултатът е записан във файл със следния (.csv– comma delimited) формат: 8. GetErrDescription (ErrorNumber As Long) As StringВръща описанието на една грешка по зададен номер.
Пример: G etErrDescription (–10) – "–10 – CFD trading not authorized." 9. GetFreeMargin (InCurrency As String, errNumber As Long) as DoubleПолучаване на свободния марджин в заявената валута. Параметри: InCurrency – валута (Напр: InCurrency = "EUR") errNumber – променлива, в която по референция се връща номер на грешката (виж таблицата с грешките) Пример: GetFreeMargin ("USD", errNumbe1) – 5431. 31 (в USD) errNumbe1 – 0 10. GetFreeMargin_S (InCurrency As String)Получаване на свободния марджин в заявената валута. Параметри: InCurrency – валута (Напр: InCurrency = "EUR") Пример: GetFreeMargin_S("USD", errNumbe1) – Резултат - RES5431. 31 *ERR0* GetParam("RES", Резултат) - Резултат 34324.44 USD GetParam("ERR", Резултат) - Резултат ErrorNumber – 0 11. GetOrdList_Async (Instrument As String, ordStatus As Long, ordType As Long, ordBuySell As String, ordDate1 As Double, ordDate2 As Double, RequestID As Long, errNumber As Long)Връща списък от ордери по зададен филтър. Обработката е асинхронна. Връща две стойности (по референция) – RequestID и errNumber, затова тези параметри трябва да се обявени предварително. Параметри: Instrument – инструмент код (Напр.: "EUR/USD") ordStatus – статус на поръчката 1– заявен, 2-потвърден, 3-изпълнен, 4-отменен, 5-заявен за отмяна ordType – тип на поръчка: 1 – маркет, 2 – лимит, 3 – стоп, 4 – ЕОД ordBuySell – купува – ‘B’ или продава – ‘S’ ordDate1 – дата от ordDate2 – дата до RequestID – уникален номер на заявката към DSAPI_Client.clientAPI errNumber – номер на грешката (виж таблицата с грешките) Резултат: RequestID – уникален номер на заявката към DSAPI_Client.clientAPI errNumber – променлива, в която по референция се връща номер на грешката (виж таблицата с грешките) Пример: GetOrdList_Asyn ("EUR/USD", 3, 2, "B", 01.05.2007, 30.05.2007, RequestID1, errNumber1) RequestID1 – 242334 errNumber1 – 0 ... Получаване на резултат от заявката става чрез събитието: Instance_GetOrdListExecuted (RequestID As Long, OrdID As Long, Instrument As String,
ordStatus As Long, ordType As Long, ordBuySell As String, ordDate1 As Double, ordDate2 As Double, ordCount As Double, ordPrice As Double, ordPrice1 As Double, errNumber As Long) RequestID – номер на заявката, получен в GetOrdList_Asyn OrdID – номер на поръчката Instrument – кодът на инструмента ordStatus – статус на поръчката: 1 – заявен, 2 – потвърден, 3 – изпълнен, 4 – отменен, 5 – заявен за отмяна ordType – тип на поръчка: 1 – маркет, 2 – лимит, 3 – стоп, 4 – ЕОД ordBuySell – купува – "B" или продава – "S" ordDate1 – дата на заявяване конвертирана в Double (8-byte) ordDate2 – дата на последна промяна на статуса, конвертирана в Double (8-byte) оrdCount – количеството на ордер ordPrice – цената на изпълнение на ордер ordPrice1 – заявена цена на ордера errNumber – номер на грешката (виж таблицата с грешките), ако има грешка, това означава, че върнатите данни за този ордер са непълни. 13. GetOrdStatus (OrdID As Long) As LongЗапитване към сървъра за статус на ордер. Параметри: OrdID – номер на поръчката, чийто статус искате да проверите Резултат: 1, 2, 3, 4, 5 – заявен/потвърден/изпълнен/отмене/заявен за отмяна < 0 – номер на грешката (виж таблицата с грешките) Пример: GetOrdStatus (12345678) – 3 (изпълнен) 14. GetOrdStatus_S(OrdID As Long)Запитване към сървъра за статус на ордер. Параметри: OrdID – номер на поръчката, чийто статус искате да проверите Резултат: 1, 2, 3, 4, 5 – заявен/потвърден/изпълнен/отмене/заявен за отмяна < 0 – номер на грешката (виж таблицата с грешките) Пример: GetOrdStatus_S (12345678) – 3 (изпълнен) 15. GetPosition (Instrument As String, Count As Double, Price As Double, errNumber As Long)Запитване към сървъра за позиция по даден инструмент. Параметри: Instrument – инструмент код (Напр.: "EUR/USD") Count – променлива, в която по референция се връща количеството на позицията Price – променлива, в която по референция се връща средната цена на позицията errNumber – променлива, в която по референция се връща номер на грешката (виж таблицата с грешките) Резултат: Count – количество Price – цена errNumber – грешка No. Пример: GetPosition ("USD/JPY", "USD", errNumber1) errNumber1 – 0 16. GetPosition_S (Instrument As String) as StringЗапитване към сървъра за позиция по даден инструмент. Параметри: Instrument – инструмент код (Напр.: "EUR/USD") Пример: GetPosition_S ("USD/JPY") Резултат: CNT1000*PR1.2567*ERR0 CNT – променлива, в която по референция се връща количеството на позицията PR – променлива, в която по референция се връща средната цена на позицията ERR – променлива, в която по референция се връща номер на грешката (виж таблицата с грешките) GetParam("CNT", "CNT1000*PR1.2567*ERR0") - 1000 GetParam("PR", "CNT1000*PR1.2567*ERR0") - 1.2567 GetParam("ERR", "CNT1000*PR1.2567*ERR0") - 0 17. GetPositionRes (Instrument As String, InCurrency As String, errNumber As Long) As DoubleПолучаване на текущия резултат от позицията по даден инструмент. Параметри: Instrument – инструмент дисплей код (Напр.: "EUR/USD") InCurrency – валутата, в която ще бъде изчислен резултатът (Напр.: InCurrency = "EUR") errNumber – променлива, в която по референция се връща номер на грешката (виж таблицата с грешките) Резултат: Резултат от позицията Ако има грешка, то грешка No = ErrNumber. Пример: GetPositionRes ("EUR/USD", "EUR", errNumber1) – 34324.44 (в "EUR") errNumber1 – 0 18. GetPositionRes_S (Instrument As String, InCurrency As String) As StringПолучаване на текущия резултат от позицията по даден инструмент. Параметри: Instrument – инструмент дисплей код (Напр.: "EUR/USD") InCurrency – валутата, в която ще бъде изчислен резултатът (Напр.: InCurrency = "EUR") Резултат: Резултат от позицията Ако има грешка, то грешка No = ErrNumber. Пример: GetPositionRes_S ("EUR/USD", "EUR") – RES34324.44*ERR0* GetParam("RES", "RES34324.44*ERR0*") - Резултат 34324.44 EUR GetParam("ERR", "RES34324.44*ERR0*") - Резултат ErrorNumber – 0 19. GetPositionsRes (InCurrency As String, errNumber As Long) As DoubleПолучаване на текущия резултат от всички откритите позиции. Параметри: InCurrency – валутата, в която ще бъде изчислен резултатът (Напр.: InCurrency = "EUR") errNumber – променлива, в която по референция се връща номер на грешката (виж таблицата с грешките) Резултат: Резултат от всички откритите позиции, конвертиран в "EUR" Пример: GetPositionRes ("EUR" , errNumber1) – 34114.44 (в "EUR") errNumber1 – 0 20. GetPositionsRes_S (InCurrency As String) As StringПолучаване на текущия резултат от всички откритите позиции. Параметри: InCurrency – валутата, в която ще бъде изчислен резултатът (Напр.: InCurrency = "EUR") Резултат: Резултат от всички откритите позиции, конвертиран в "EUR" Пример: GetPositionsRes ("EUR") – Резултат RES34114.44*ERR0* GetParam("RES", "RES34114.44*ERR0*") - Резултат 34114.44 EUR GetParam("ERR", "RES34114.44*ERR0*") - Резултат ErrorNumber – 0 21. GetQuote (Instrument As String QBid As Double, QAsk As Double, QHi As Double, QLow As Double, errNumber As Long)Връща котирането на Instrument. Параметри: Instrument – инструмент код (Напр.: "EUR/USD") QBid, QAsk, QHi, QLow, ErrNumber – купува, продава, най-високо, най-ниско, грешка. Тези параметри трябва да бъдат декларирани като променливи, защото резултата се предава по референция през тях. Резултат: QBid, QAsk, QHi, QLow, ErrNumber Пример: GetQuote ("USD/GBP", QBid1, QAsk1, QHi1, QLow1, ErrNumber1) QBid1 – 1.3681 QAsk1 – 1.3684 QHi1 – 1.3689 QLow1 – 1.3680 ErrNumber1 – 0 22. GetQuote_S (Instrument As String)Връща котирането на Instrument. Параметри: Instrument – инструмент код (Напр.: "EUR/USD") Пример: GetQuote ("USD/GBP") - Резултат = BID1.3681*ASK1.3684*HI1.3689*LOW1.3680*ERR0* GetParam("BID", Резултат) - 1.3681 GetParam("ASK", Резултат) – 1.3684 GetParam("HI", Резултат) – 1.3689 GetParam("LOW", Резултат) – 1.3680 GetParam("ERR", Резултат) – 0 23. GetTotalResult(InCurrency As String, errNumber As Long) As DoubleПолучаване на общ резултат в заявената валута. Параметри: InCurrency – валута (Напр: InCurrency = "EUR") errNumber – 0 или отрицателно число (виж таблицата с грешките) Пример: GetTotalResult ("USD" , errNumber1) – 5307.23 errNumber1 – 0 24. GetTotalResult_S(InCurrency As String) As StringПолучаване на общ резултат в заявената валута. Параметри: InCurrency – валута (Напр: InCurrency = "EUR") Пример: GetTotalResult ("USD") – Резултат - RES5307.23*ERR0* GetParam("RES", Резултат) – 5307.23 GetParam("ERR", Резултат) – 0 25. GetUsedMargin (InCurrency As String, errNumber As Long) As DoubleВръща използваните парични средства за гаранция на отворените позиции. Параметри: InCurrency – валута (Напр: InCurrency = "EUR") errNumber – 0 или отрицателно число (виж таблицата с грешките) Пример: GetUsedMargin ("USD", errNumber) - 1403.34 USD errNumber - 0 26. GetUsedMargin_S (InCurrency As String) As StringВръща използваните парични средства за гаранция на отворените позиции. Параметри: InCurrency – валута (Напр: InCurrency = "EUR") Пример: GetUsedMargin ("USD") - Резултат - RES1403.34*ERR0* GetParam("RES", Резултат) – 1403.34 GetParam("ERR", Резултат) – 0 27. NewOrder (Instrument As String, ordCount As Long, ordPriceReq1 As Double, ordPriceReq2 As Double, ordType As Long, ordBuySell As String, ordValidity As String) As LongЗаявява за изпълнение нов ордер Параметри: Instrument – инструмент код (Напр.: "EUR/USD") ordCount – количество ordPriceReq1 – цена ordPriceReq2 – цена2 (за ЕОД поръчки) ordType – тип на поръчка: 1 – маркет, 2 – лимит, 3 – стоп, 4 – ЕОД ordBuySell – купува – ‘B’ или продава – ‘S’ ordValidity – за деня – ‘1’ или до отмяна – ‘2’ Резултат: Връща OrdID – номерът на поръчката. Ако резултатът е по-малък от 0, то има грешка: Пример: NewOrder ("EUR/USD", 10000, 0, 0, 1, "B", 2) – Пазарна купува 10 лота(10000) "EUR/USD" валидност: до отмяна NewOrder ("EUR/USD", 10000, 1.3680, 0, 2, "S", 2) – Лимит продава 10 лота(10000) "EUR/USD" на цена 1.3680, валидност: до отмяна 28. NewOrder_Async (Instrument As String, ordCount As Long, ordPriceReq1 As Double, ordPriceReq2 As Double, ordType As Long, ordBuySell As String, ordValidity As String, RequestID As Long, errNumber As Long)Параметри: Instrument – инструмент дисплей код (Напр.: "EUR/USD") ordCount – количество ordPriceReq1 – цена ordPriceReq2 – цена2 (за ЕОД поръчки) ordType – тип на поръчка: 1 – маркет, 2 – лимит, 3 – стоп, 4 – ЕОД ordBuySell – купува – ‘B’ или продава – ‘S’ ordValidity – за деня – ‘1’ или до отмяна – ‘2’ Резултат: RequestID As Long Ако има грешка, то ErrNumber – грешка No. Пример: NewOrder ("EUR/USD", 10000, 0, 0, 1, "B", 2) – Пазарна купува 10 лота(10000) "EUR/USD" валидност: до отмяна NewOrder ("EUR/USD", 10000, 1.3680, 0, 2, "S", 2) – Лимит продава 10 лота(10000) "EUR/USD" на цена 1.3680, валидност: до отмяна ... Получаване на резултат от заявката става чрез събитието: Instance_NewOrder_Async (InstrDispCode As String, ordCount As Long, ordPriceReq1 As Double, ordPriceReq2 As Double, ordType As Long, ordBuySell As String, ordValidity As String, RequestID As Long, errNumber As Long) 29. GetOrdParams(OrdID As Long, errNumber As Long) As StringВръща инструмент, к-во, статус и цена на изпълнение на задаен ордер. Параметри: OrdID – номерът на поръчката. errNumber – 0 или отрицателно число (виж таблицата с грешките) Пример: GetOrdParams("467298", errNumber) Резултат - *IAUD/NZD*CNT1000*PR1.23424*ST3*BSB GetParam("I", Резултат) – Инструмент: AUD/NZD GetParam("CNT", Резултат) – К-во: 1000 GetParam("PR", Резултат) – Цена: 1.23424 GetParam("ST", Резултат) – Статус: 3 GetParam("BS", Резултат) – Buy/Sell: B 30. GetOrdParams_S(OrdID As Long) As StringВръща инструмент, к-во, статус и цена на изпълнение на задаен ордер. Параметри: OrdID – номерът на поръчката. Пример: GetOrdParams_S("467298", errNumber) Резултат - *IAUD/NZD*CNT1000*PR1.23424*ST3*BSB*ERR0 GetParam("I", Резултат) – Инструмент: AUD/NZD GetParam("CNT", Резултат) – К-во: 1000 GetParam("PR", Резултат) – Цена: 1.23424 GetParam("ST", Резултат) – Статус: 3 GetParam("BS", Резултат) – Buy/Sell: B GetParam("ERR", Резултат) – Грешка: 0 31. GetClnNum() As StringВръща клиентския номер. Пример: GetClnNum() - Резултат - "000102310" 32. GetApiVersion() As StringВръща версията на Delta Trading API. Пример: GetApiVersion() - Резултат - "1.0.41" 33. GetDTVersion() As StringВръща версията на Delta Trading. Пример: GetDTVersion() - Резултат - "4.0.12" 34. GetParam(strKey as String, strExpr as String) As StringВръща параметрите на резултата от дадена функция. Параметри: strKey – индекс strExpr – резултат от дадена функция Пример: GetParam("CNT", "*IAUD/NZD*CNT1000*PR1.23424*ST3*BSB*ERR0") - Резултат - 1000 35. CreateClientAPI(Optional ByVal strExtNumber As String = "") As LongСъздава Delta Trading ClientAPI за текущата сметка или за зададена. Параметри: strExtNumber – клиентски номер Пример: CreateClientAPI() - Ако има грешка, то ErrNumber – грешка No. CreateClientAPI("000123456") - Ако има грешка, то ErrNumber – грешка No. 36. DestroyClientAPI() As Long Изключва Delta Trading ClientAPI.
Още примери за използване на DSAPI_Client.clientAPI в различни програмни среди: Windows Script Host
Microsoft Visual Basic 6.0
Microsoft VB.NET 2005
Microsoft Visual C# 2005Стартирайте нов проект "File/New/Project…". От "Project Type" изберете "Visual C#/Windows", а от "Tempaltes" – "Windows Application". В полето Name запишете NewOrder, в полето "Location" изберете къде да се запише проекта ви. И накрая бутона "OK".
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Уведомление за риск: Tърговията на марджин носи висока степен на риск! Съществува възможност да понесете частична или пълна загуба на вложените от вас средства. Поради тази причина, не трябва да инвестирате пари, които не можете да си позволите да загубите. Високото ниво на ливъридж увеличава както вашата печалба, така и вашата загуба. Повече за рисковете можете да прочетете тук. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Всички права запазени © 1999-2012 "ДЕЛТАСТОК" АД - 1784 София, бул. "Цариградско шосе" 115Г, Офис сграда "Мегапарк", Тяло "Е", ет. 6, тел. 8115010, GSM 0897 818030, 0889 919669; office@deltastock.bg; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вход/Login
Live Help
Моят профил
Платформи