Рустам TradeInWest.ru
Рустам TradeInWest.ru личный блог
15 июня 2016, 11:47

Доступные для торговли базовые контракты

Первое знакомство с API брокера.

Базовые контракты, которыми можно торговать у брокера сегодня получим с помощью API.

Для этого создаем новое приложение Windows Forms.  Не забываем подключать библиотеки api.dll, Commlib.dll и protoSharp.Core.dll:

Доступные для торговли базовые контракты

Далее создаем на форме следующие элементы:

Доступные для торговли базовые контракты

Далее текст программы с подробными комментариями:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BaseContracts
{
    public partial class Form1 : Form
    {
        static OEC.API.OECClient oecapi;
        public Form1()
        {
            InitializeComponent();

            //создаем клиента
            oecapi = new OEC.API.OECClient();
            oecapi.UUID = "9e61a8bc-0a31-4542-ad85-33ebab0e4e86";
            //логин и пароль. В последующем можно поменять в программе.
            login.Text = "TradeInwest.ru";
            password.Text = "TradeInwest.ru";

            //Обработчик успешного соедининения
            oecapi.OnLoginComplete += new OEC.API.OnLoginCompleteEvent(oecapi_OnLoginComplete);

            //обработчик неудачного соединения
            oecapi.OnLoginFailed += new OEC.API.OnLoginFailedEvent(oecapi_OnLoginFailed);

            //Обработчик рассоединения
            oecapi.OnDisconnected += new OEC.API.OnDisconnectedEvent(oecapi_OnDisconnected);
            
            //кнопка рассоединения неактивна
            disconnect.Enabled = false;
        }

        //обработчик клика на кнопке "Connect"
        private void button1_Click(object sender, EventArgs e)
        {
            //Просто подключаемся к серверу с указанными логином и паролем.
            oecapi.Connect("api.openecry.com", 9200, login.Text, password.Text, true);
        }

        //обработчик удачного соединения
        private void oecapi_OnLoginComplete()
        {
            //Сообщаем об успешном соединении            
            lStatus.Text = "Соединение установлено. Счет:"+oecapi.Accounts.First.Name;
            //пока есть соединение кнопка Connect - не активна.
            connect.Enabled = false;
            //а вот кнопку DisConnect делаем активной
            disconnect.Enabled = true;
            //И заполняем списки контрактов
            baseContractsToList();

        }
        //обработчик неудачного соединения.
        private void oecapi_OnLoginFailed(OEC.Data.FailReason reason)
        {
            lStatus.Text = "Соединение не удалось: "+reason.ToString();
            //колдуем над доступностью кнопок
            connect.Enabled = true;
            disconnect.Enabled = false;
        }

        //обработчик рассоединения
        private void oecapi_OnDisconnected(bool unexpected)
        {
            //колдуем над доступностью кнопок
            connect.Enabled = true;
            disconnect.Enabled = false;
        }

        //обработка клика на кнопку Disconnect
        private void disconnect_Click(object sender, EventArgs e)
        {
            //отсоединяемся.
            oecapi.Disconnect();
            lStatus.Text = "";
        }

        //процедура заполнения список базовых контрактов.
        private void baseContractsToList()
        {
            string infoAboutBaseContract="";

            //перебираем коллекцию базовых контрактов в цикле
            foreach(OEC.API.BaseContract currentBaseContract in oecapi.BaseContracts )
            {
                //готовим строку с основными параметрами базового контракта
                infoAboutBaseContract="Тикер: "+currentBaseContract.Symbol+"; Имя: "+currentBaseContract.Name+"; Группа: "+currentBaseContract.ContractGroup+"; Размер контракта: "+currentBaseContract.ContractSize+"; Валюта: "+currentBaseContract.Currency+"; Биржа: "+currentBaseContract.Exchange+"; Начальная маржа: "+currentBaseContract.InitialMargin+"; Размер тика: "+currentBaseContract.TickSize+"; Тип контракта: "+currentBaseContract.Type;
                //если контракт - фьючерс, то отправляем строку в список фьючерсов
                if (currentBaseContract.ContractKind== OEC.Data.ContractKind.Future)
                    listFutures.Items.Add(infoAboutBaseContract);
                //А если контракт - опцион, то в список опционов
                else if (currentBaseContract.ContractKind== OEC.Data.ContractKind.Option)
                    listOptions.Items.Add(infoAboutBaseContract);
                infoAboutBaseContract = "";
            }
        }

        
    }
}

Запускаем программу и нажимаем на кнопку «Connect»:

Доступные для торговли базовые контракты

По базовым контрактам можно получить их символ, им, размер, начальную маржу, размер тика, биржу, тип, начало времени торговли и окончания многое другое:

Доступные для торговли базовые контракты

Здесь можно скачайть программу Базовые контакты.

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн