﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Опционы в Альфа-Директ</title>
  <id>~/topic/2892/optsiony-v-alfa-direkt/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-09T01:18:35Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2892" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/21438/</id>
    <title type="text">Спасибо! Код добавил, спасибо.</title>
    <published>2012-09-19T15:50:23Z</published>
    <updated>2012-09-19T15:50:23Z</updated>
    <author>
      <name>Sergey Masyura</name>
      <uri>https://stocksharp.ru/users/701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Дюшес &lt;a href="https://stocksharp.ru/posts/m/21425/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Спасибо!&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Код добавил, спасибо.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/21425/</id>
    <title type="text">Спасибо!</title>
    <published>2012-09-18T15:02:52Z</published>
    <updated>2012-09-18T15:02:52Z</updated>
    <author>
      <name>Дюшес</name>
      <uri>https://stocksharp.ru/users/6407/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо!</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/21424/</id>
    <title type="text">Привет! А можно ли добавить следующие строки (или сделайте по-своему, если коряво), чтобы самому каж...</title>
    <published>2012-09-18T14:12:25Z</published>
    <updated>2012-09-18T14:12:25Z</updated>
    <author>
      <name>Sergey Masyura</name>
      <uri>https://stocksharp.ru/users/701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Дюшес &lt;a href="https://stocksharp.ru/posts/m/21423/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Привет!&lt;br /&gt;&lt;br /&gt;А можно ли добавить следующие строки (или сделайте по-своему, если коряво), чтобы самому каждый раз не добавлять в новых версиях коннектора?&lt;br /&gt;Оно все равно нужно будет.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Спасибо. Добавлю на этой неделе.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/21423/</id>
    <title type="text">Привет! А можно ли добавить следующие строки (или сделайте по-своему, если коряво), чтобы самому каж...</title>
    <published>2012-09-18T13:54:15Z</published>
    <updated>2012-09-18T13:54:15Z</updated>
    <author>
      <name>Дюшес</name>
      <uri>https://stocksharp.ru/users/6407/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Привет!&lt;br /&gt;&lt;br /&gt;А можно ли добавить следующие строки (или сделайте по-своему, если коряво), чтобы самому каждый раз не добавлять в новых версиях коннектора?&lt;br /&gt;Оно все равно нужно будет.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;AlfaWrapper.cs:&lt;/u&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_4192066b5d294781b7c688689e7f0a8c');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_4192066b5d294781b7c688689e7f0a8c' style='display:none'&gt;&lt;br /&gt;const string _securityFields = &amp;quot;paper_no, ANSI_name, mat_date, status, p_code, place_code, curr_code, go_buy, go_sell, board_code, open_pos_qty, open_price, close_price, sell, sell_qty, buy, buy_qty, min_deal, max_deal, lot_size, &lt;b&gt;volatility, theor_price&lt;/b&gt;&amp;quot;;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;AlfaTrader.cs:&lt;/u&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_fa0d1daecaa646bf991de9da4809f75b');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_fa0d1daecaa646bf991de9da4809f75b' style='display:none'&gt;&lt;br /&gt;private void OnProcessSecurities(string data)&lt;br /&gt;{&lt;br /&gt;    var result = AlfaUtils.Filter(data, _securitySubscribers);&lt;br /&gt;&lt;br /&gt;    foreach (var p in result)&lt;br /&gt;    {&lt;br /&gt;        var pair = p; &lt;br /&gt;&lt;br /&gt;        ProcessEvents(() =&amp;gt;&lt;br /&gt;        {&lt;br /&gt;            foreach (var d in pair.Value)&lt;br /&gt;            {&lt;br /&gt;                var details = d;&lt;br /&gt;&lt;br /&gt;                if (details[1].IsEmpty())&lt;br /&gt;                {&lt;br /&gt;                    continue;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                var id = details[4] + &amp;quot;@&amp;quot; + details[5];&lt;br /&gt;&lt;br /&gt;                GetSecurity(id, name =&amp;gt;&lt;br /&gt;                {&lt;br /&gt;                    this.AddInfoLog(&amp;quot;Security create : {0}&amp;quot;, name);&lt;br /&gt;&lt;br /&gt;                    var security = EntityFactory.CreateSecurity(id);&lt;br /&gt;                    security.ExtensionInfo = new Dictionary&amp;lt;object, object&amp;gt;();&lt;br /&gt;&lt;br /&gt;                    security.Name = details[1];&lt;br /&gt;                    security.ShortName = details[1];&lt;br /&gt;                    security.ExpiryDate = DateTime.Parse(details[2]);&lt;br /&gt;                    security.Code = details[4];&lt;br /&gt;                    security.State = AlfaUtils.SecurityStateFromAlfa(details[3]);&lt;br /&gt;&lt;br /&gt;                    // TODO: this must be done the in the AD task.&lt;br /&gt;                    var exCode = Wrapper.GetExchangeCode(details[5]);&lt;br /&gt;&lt;br /&gt;                    security.Exchange = AlfaUtils.ExchangeCodeToExchange(exCode);&lt;br /&gt;                    security.MarginBuy = details[7].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                    security.MarginSell = details[8].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                    security.MinLotSize = details[19].To&amp;lt;int&amp;gt;();&lt;br /&gt;&lt;br /&gt;                    security.SetPaperNo(details[0].To&amp;lt;int&amp;gt;());&lt;br /&gt;                    security.SetCurrency(details[6]);&lt;br /&gt;                    security.SetPlaceCode(details[5]);&lt;br /&gt;&lt;br /&gt;                    &lt;b&gt;&lt;br /&gt;                    security.Volatility = details[20].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                    security.TheorPrice = details[21].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                    &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;                    decimal priceStep, priceStepCost;&lt;br /&gt;&lt;br /&gt;                    // TODO: this must be done the in the AD task.&lt;br /&gt;                    Wrapper.GetPriceStepInfo(security, out priceStep, out priceStepCost);&lt;br /&gt;&lt;br /&gt;                    security.MinStepSize = priceStep;&lt;br /&gt;&lt;br /&gt;                    if (priceStepCost == 0)&lt;br /&gt;                    {&lt;br /&gt;                        security.MinStepPrice = priceStep;&lt;br /&gt;                        //this.AddWarningLog(&amp;quot;Стоимость шага цены равна нулю для {0}.&amp;quot;, security.Name);&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        security.MinStepPrice = priceStepCost;&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                    security.Type = AlfaUtils.BoardCodeToSecurityType(details[9]);&lt;br /&gt;&lt;br /&gt;                    &lt;b&gt;&lt;br /&gt;                    if(security.Type == SecurityTypes.Option)&lt;br /&gt;                    {&lt;br /&gt;                        var sec = security.Code.GetOptionInfo();&lt;br /&gt;&lt;br /&gt;                        security.OptionType = sec.OptionType;&lt;br /&gt;                        security.Strike = sec.Strike;&lt;br /&gt;                        security.UnderlyingSecurityId = sec.UnderlyingSecurityId;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;                    AddNativeSecurityId(security, details[0].To&amp;lt;int&amp;gt;());&lt;br /&gt;&lt;br /&gt;                    return security;&lt;br /&gt;                 }, security =&amp;gt;&lt;br /&gt;                 {&lt;br /&gt;                    this.AddInfoLog(&amp;quot;Security update {0}.&amp;quot;, security.Id);&lt;br /&gt;&lt;br /&gt;                    using (security.BeginUpdate())&lt;br /&gt;                    {&lt;br /&gt;                        security.BestAsk = new Quote&lt;br /&gt;                        {&lt;br /&gt;                            Price = details[13].To&amp;lt;decimal&amp;gt;(),&lt;br /&gt;                            Volume = details[14].To&amp;lt;decimal&amp;gt;(),&lt;br /&gt;                            Security = security,&lt;br /&gt;                            OrderDirection = OrderDirections.Sell&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;                        security.BestBid = new Quote&lt;br /&gt;                        {&lt;br /&gt;                            Price = details[15].To&amp;lt;decimal&amp;gt;(),&lt;br /&gt;                            Volume = details[16].To&amp;lt;decimal&amp;gt;(),&lt;br /&gt;                            Security = security,&lt;br /&gt;                            OrderDirection = OrderDirections.Buy&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;                        security.LowPrice = details[17].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                        security.HighPrice = details[18].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                        security.SetOpenInteres(details[10].To&amp;lt;long&amp;gt;());&lt;br /&gt;                        security.OpenPrice = details[11].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                        security.ClosePrice = details[12].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;&lt;br /&gt;                        &lt;b&gt;&lt;br /&gt;                        security.Volatility = details[20].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                        security.TheorPrice = details[21].To&amp;lt;decimal&amp;gt;();&lt;br /&gt;                        &lt;/b&gt;&lt;br /&gt;                                &lt;br /&gt;                        // TODO: Add missing fields&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                    return true;&lt;br /&gt;                });&lt;br /&gt;            }&lt;br /&gt;        });&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Дополнительный файл &lt;u&gt;StringExtensions.cs:&lt;/u&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_c38ea9d32b514302a184b447520288ea');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_c38ea9d32b514302a184b447520288ea' style='display:none'&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;

using StockSharp.Algo.Derivatives;
using StockSharp.BusinessEntities;

using Ecng.Common;

/// &amp;lt;summary&amp;gt;
/// Расширение класса string для получения дополнительной информации по опционам
/// &amp;lt;/summary&amp;gt;
public static class StringExtensions
{
    private static string GetFutures(string cod, int month, int year)
    {
        Dictionary&amp;lt;string, string&amp;gt; UnderlyingSecurity = new Dictionary&amp;lt;string, string&amp;gt;
        {
            { &amp;quot;GZ&amp;quot;, &amp;quot;GAZP&amp;quot;   },
            { &amp;quot;RI&amp;quot;, &amp;quot;RTSI&amp;quot;   },
            { &amp;quot;GM&amp;quot;, &amp;quot;GMKR&amp;quot;   },
            { &amp;quot;Si&amp;quot;, &amp;quot;Si&amp;quot;     },
            { &amp;quot;SR&amp;quot;, &amp;quot;SBER&amp;quot;   },
            { &amp;quot;VB&amp;quot;, &amp;quot;VTBR&amp;quot;   },
            { &amp;quot;RS&amp;quot;, &amp;quot;RTSSTD&amp;quot; },
            { &amp;quot;UR&amp;quot;, &amp;quot;UR&amp;quot;     },
            { &amp;quot;SV&amp;quot;, &amp;quot;SILV&amp;quot;   },
            { &amp;quot;PT&amp;quot;, &amp;quot;PLT&amp;quot;    },
            { &amp;quot;PD&amp;quot;, &amp;quot;PLD&amp;quot;    },
            { &amp;quot;Eu&amp;quot;, &amp;quot;Eu&amp;quot;     },
            { &amp;quot;ED&amp;quot;, &amp;quot;ED&amp;quot;     },
            { &amp;quot;BR&amp;quot;, &amp;quot;BR&amp;quot;     },
            { &amp;quot;AU&amp;quot;, &amp;quot;AUDU&amp;quot;   },
        };

        if(month &amp;gt; 12) month -= 12;

        if(month &amp;lt;= 3)
          month = 3;
        else if(month &amp;lt;= 6)
          month = 6;
        else if(month &amp;lt;= 9)
          month = 9;
        else if(month &amp;lt;= 12)
          month = 12;

        try {
          return UnderlyingSecurity[cod] + &amp;quot;-&amp;quot; + month + &amp;quot;.&amp;quot; + (year + 10) + &amp;quot;@FORTS&amp;quot;;
        } catch {
          return null;
        }
    }

    /// &amp;lt;summary&amp;gt;
    /// Получить дополнительные поля по опционам: Страйк, Тип опциона, Базовый актив
    /// &amp;lt;/summary&amp;gt;
    public static Security GetOptionInfo(this string security)
    {
        const string call = &amp;quot;ABCDEFGHIJKL&amp;quot;;
        //const string put  = &amp;quot;MNOPQRSTUVWX&amp;quot;;

        Regex regex = new Regex(@&amp;quot;^([A-z]{2})(\d+)([A-z])([A-z])(\d)\Z&amp;quot;, RegexOptions.Compiled | RegexOptions.IgnoreCase);

        MatchCollection matches = regex.Matches(security);

        if(matches.Count == 1)
        {
            GroupCollection groups = matches[0].Groups;

            return new Security
                       {
                         Strike = groups[2].Value.To&amp;lt;decimal&amp;gt;(),
                         OptionType = (call.Contains(groups[4].Value.ToUpper()) ? OptionTypes.Call : OptionTypes.Put),
                         UnderlyingSecurityId = GetFutures(groups[1].Value.ToUpper(),
                                                            (int)Convert.ToChar(groups[4].Value.ToUpper()) - 64,
                                                            groups[5].Value.To&amp;lt;int&amp;gt;())
                       };
        }

        return null;
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/20966/</id>
    <title type="text">Нас интересует</title>
    <published>2012-08-22T21:09:55Z</published>
    <updated>2012-08-22T21:09:55Z</updated>
    <author>
      <name>969</name>
      <uri>https://stocksharp.ru/users/628/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Нас интересует</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/20573/</id>
    <title type="text">А я юзаю опционы как обычные инструменты ) По коду все также получить можно, считаю, что до выхода 4...</title>
    <published>2012-07-27T10:53:44Z</published>
    <updated>2012-07-27T10:53:44Z</updated>
    <author>
      <name>OvcharenkoVI</name>
      <uri>https://stocksharp.ru/users/390/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">А я юзаю опционы как обычные инструменты ) По коду все также получить можно, считаю, что до выхода 4.0 смысла нет )</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/20515/</id>
    <title type="text">Какая именно поддержка планируется? На моем коннекторе таки дельтанейтральные стратегии заводили. Хв...</title>
    <published>2012-07-25T06:42:26Z</published>
    <updated>2012-07-25T06:42:26Z</updated>
    <author>
      <name>Sergey Masyura</name>
      <uri>https://stocksharp.ru/users/701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;ra81 &lt;a href="https://stocksharp.ru/posts/m/20514/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Какая именно поддержка планируется? На моем коннекторе таки дельтанейтральные стратегии заводили. Хватало.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Планируется посмотреть, что же собственно не хватает - какие поля у бумаг не заполняются, корректно ли обновляется информация. Судя по активности, пока что никому не надо [laugh] </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/20514/</id>
    <title type="text">Какая именно поддержка планируется? На моем коннекторе таки дельтанейтральные стратегии заводили. Хв...</title>
    <published>2012-07-25T05:07:42Z</published>
    <updated>2012-07-25T05:07:42Z</updated>
    <author>
      <name>ra81</name>
      <uri>https://stocksharp.ru/users/16581/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Какая именно поддержка планируется? На моем коннекторе таки дельтанейтральные стратегии заводили. Хватало.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/20510/</id>
    <title type="text">В Альфа-коннекторе на данный момент отсутствует поддержка опционов. Поэтому небольшой опрос - кому-н...</title>
    <published>2012-07-24T18:56:35Z</published>
    <updated>2012-07-24T18:56:35Z</updated>
    <author>
      <name>Sergey Masyura</name>
      <uri>https://stocksharp.ru/users/701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">В Альфа-коннекторе на данный момент отсутствует поддержка опционов. Поэтому небольшой опрос - кому-нибудь требуется? Если наберется около 10 желающих, запланирую в таски.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>