Опционы в Альфа-Директ
~/topic/2892/optsiony-v-alfa-direkt/
Copyright @ StockSharp Platform LLC 2010 - 2024
2024-03-28T13:07:43Z
https://stocksharp.ru/images/logo.png
https://stocksharp.ru/posts/m/21438/
Спасибо! Код добавил, спасибо.
2012-09-19T15:50:23Z
2012-09-19T15:50:23Z
Sergey Masyura
https://stocksharp.ru/users/701/
info@stocksharp.ru
<div class="quote"><span class="quotetitle">Дюшес <a href="https://stocksharp.ru/posts/m/21425/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Спасибо!</div></div><br /><br />Код добавил, спасибо.
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/21425/
Спасибо!
2012-09-18T15:02:52Z
2012-09-18T15:02:52Z
Дюшес
https://stocksharp.ru/users/6407/
info@stocksharp.ru
Спасибо!
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/21424/
Привет! А можно ли добавить следующие строки (или сделайте по-своему, если коряво), чтобы самому каж...
2012-09-18T14:12:25Z
2012-09-18T14:12:25Z
Sergey Masyura
https://stocksharp.ru/users/701/
info@stocksharp.ru
<div class="quote"><span class="quotetitle">Дюшес <a href="https://stocksharp.ru/posts/m/21423/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Привет!<br /><br />А можно ли добавить следующие строки (или сделайте по-своему, если коряво), чтобы самому каждый раз не добавлять в новых версиях коннектора?<br />Оно все равно нужно будет.<br /><br /></div></div><br /><br />Спасибо. Добавлю на этой неделе.<br />
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/21423/
Привет! А можно ли добавить следующие строки (или сделайте по-своему, если коряво), чтобы самому каж...
2012-09-18T13:54:15Z
2012-09-18T13:54:15Z
Дюшес
https://stocksharp.ru/users/6407/
info@stocksharp.ru
Привет!<br /><br />А можно ли добавить следующие строки (или сделайте по-своему, если коряво), чтобы самому каждый раз не добавлять в новых версиях коннектора?<br />Оно все равно нужно будет.<br /><br /><u>AlfaWrapper.cs:</u><br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_6c35890a4caf4f5a9431c84361088d3e');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_6c35890a4caf4f5a9431c84361088d3e' style='display:none'><br />const string _securityFields = "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, <b>volatility, theor_price</b>";<br /></div><br /><br /><u>AlfaTrader.cs:</u><br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_1196a390511b4e6191c57830c7be7476');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_1196a390511b4e6191c57830c7be7476' style='display:none'><br />private void OnProcessSecurities(string data)<br />{<br /> var result = AlfaUtils.Filter(data, _securitySubscribers);<br /><br /> foreach (var p in result)<br /> {<br /> var pair = p; <br /><br /> ProcessEvents(() =><br /> {<br /> foreach (var d in pair.Value)<br /> {<br /> var details = d;<br /><br /> if (details[1].IsEmpty())<br /> {<br /> continue;<br /> }<br /><br /> var id = details[4] + "@" + details[5];<br /><br /> GetSecurity(id, name =><br /> {<br /> this.AddInfoLog("Security create : {0}", name);<br /><br /> var security = EntityFactory.CreateSecurity(id);<br /> security.ExtensionInfo = new Dictionary<object, object>();<br /><br /> security.Name = details[1];<br /> security.ShortName = details[1];<br /> security.ExpiryDate = DateTime.Parse(details[2]);<br /> security.Code = details[4];<br /> security.State = AlfaUtils.SecurityStateFromAlfa(details[3]);<br /><br /> // TODO: this must be done the in the AD task.<br /> var exCode = Wrapper.GetExchangeCode(details[5]);<br /><br /> security.Exchange = AlfaUtils.ExchangeCodeToExchange(exCode);<br /> security.MarginBuy = details[7].To<decimal>();<br /> security.MarginSell = details[8].To<decimal>();<br /> security.MinLotSize = details[19].To<int>();<br /><br /> security.SetPaperNo(details[0].To<int>());<br /> security.SetCurrency(details[6]);<br /> security.SetPlaceCode(details[5]);<br /><br /> <b><br /> security.Volatility = details[20].To<decimal>();<br /> security.TheorPrice = details[21].To<decimal>();<br /> </b><br /><br /> decimal priceStep, priceStepCost;<br /><br /> // TODO: this must be done the in the AD task.<br /> Wrapper.GetPriceStepInfo(security, out priceStep, out priceStepCost);<br /><br /> security.MinStepSize = priceStep;<br /><br /> if (priceStepCost == 0)<br /> {<br /> security.MinStepPrice = priceStep;<br /> //this.AddWarningLog("Стоимость шага цены равна нулю для {0}.", security.Name);<br /> }<br /> else<br /> {<br /> security.MinStepPrice = priceStepCost;<br /> }<br /><br /> security.Type = AlfaUtils.BoardCodeToSecurityType(details[9]);<br /><br /> <b><br /> if(security.Type == SecurityTypes.Option)<br /> {<br /> var sec = security.Code.GetOptionInfo();<br /><br /> security.OptionType = sec.OptionType;<br /> security.Strike = sec.Strike;<br /> security.UnderlyingSecurityId = sec.UnderlyingSecurityId;<br /> }<br /> </b><br /><br /> AddNativeSecurityId(security, details[0].To<int>());<br /><br /> return security;<br /> }, security =><br /> {<br /> this.AddInfoLog("Security update {0}.", security.Id);<br /><br /> using (security.BeginUpdate())<br /> {<br /> security.BestAsk = new Quote<br /> {<br /> Price = details[13].To<decimal>(),<br /> Volume = details[14].To<decimal>(),<br /> Security = security,<br /> OrderDirection = OrderDirections.Sell<br /> };<br /><br /> security.BestBid = new Quote<br /> {<br /> Price = details[15].To<decimal>(),<br /> Volume = details[16].To<decimal>(),<br /> Security = security,<br /> OrderDirection = OrderDirections.Buy<br /> };<br /><br /> security.LowPrice = details[17].To<decimal>();<br /> security.HighPrice = details[18].To<decimal>();<br /> security.SetOpenInteres(details[10].To<long>());<br /> security.OpenPrice = details[11].To<decimal>();<br /> security.ClosePrice = details[12].To<decimal>();<br /><br /> <b><br /> security.Volatility = details[20].To<decimal>();<br /> security.TheorPrice = details[21].To<decimal>();<br /> </b><br /> <br /> // TODO: Add missing fields<br /> }<br /><br /> return true;<br /> });<br /> }<br /> });<br /> }<br />}<br /></div><br /><br />Дополнительный файл <u>StringExtensions.cs:</u><br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_bf51f6dbabd74ca781ca810a6c18bd70');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_bf51f6dbabd74ca781ca810a6c18bd70' style='display:none'><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using StockSharp.Algo.Derivatives;
using StockSharp.BusinessEntities;
using Ecng.Common;
/// <summary>
/// Расширение класса string для получения дополнительной информации по опционам
/// </summary>
public static class StringExtensions
{
private static string GetFutures(string cod, int month, int year)
{
Dictionary<string, string> UnderlyingSecurity = new Dictionary<string, string>
{
{ "GZ", "GAZP" },
{ "RI", "RTSI" },
{ "GM", "GMKR" },
{ "Si", "Si" },
{ "SR", "SBER" },
{ "VB", "VTBR" },
{ "RS", "RTSSTD" },
{ "UR", "UR" },
{ "SV", "SILV" },
{ "PT", "PLT" },
{ "PD", "PLD" },
{ "Eu", "Eu" },
{ "ED", "ED" },
{ "BR", "BR" },
{ "AU", "AUDU" },
};
if(month > 12) month -= 12;
if(month <= 3)
month = 3;
else if(month <= 6)
month = 6;
else if(month <= 9)
month = 9;
else if(month <= 12)
month = 12;
try {
return UnderlyingSecurity[cod] + "-" + month + "." + (year + 10) + "@FORTS";
} catch {
return null;
}
}
/// <summary>
/// Получить дополнительные поля по опционам: Страйк, Тип опциона, Базовый актив
/// </summary>
public static Security GetOptionInfo(this string security)
{
const string call = "ABCDEFGHIJKL";
//const string put = "MNOPQRSTUVWX";
Regex regex = new Regex(@"^([A-z]{2})(\d+)([A-z])([A-z])(\d)\Z", 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<decimal>(),
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<int>())
};
}
return null;
}
}
</pre>
</div></div><br /></div>
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/20966/
Нас интересует
2012-08-22T21:09:55Z
2012-08-22T21:09:55Z
969
https://stocksharp.ru/users/628/
info@stocksharp.ru
Нас интересует
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/20573/
А я юзаю опционы как обычные инструменты ) По коду все также получить можно, считаю, что до выхода 4...
2012-07-27T10:53:44Z
2012-07-27T10:53:44Z
OvcharenkoVI
https://stocksharp.ru/users/390/
info@stocksharp.ru
А я юзаю опционы как обычные инструменты ) По коду все также получить можно, считаю, что до выхода 4.0 смысла нет )
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/20515/
Какая именно поддержка планируется? На моем коннекторе таки дельтанейтральные стратегии заводили. Хв...
2012-07-25T06:42:26Z
2012-07-25T06:42:26Z
Sergey Masyura
https://stocksharp.ru/users/701/
info@stocksharp.ru
<div class="quote"><span class="quotetitle">ra81 <a href="https://stocksharp.ru/posts/m/20514/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Какая именно поддержка планируется? На моем коннекторе таки дельтанейтральные стратегии заводили. Хватало.</div></div><br /><br />Планируется посмотреть, что же собственно не хватает - какие поля у бумаг не заполняются, корректно ли обновляется информация. Судя по активности, пока что никому не надо [laugh]
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/20514/
Какая именно поддержка планируется? На моем коннекторе таки дельтанейтральные стратегии заводили. Хв...
2012-07-25T05:07:42Z
2012-07-25T05:07:42Z
ra81
https://stocksharp.ru/users/16581/
info@stocksharp.ru
Какая именно поддержка планируется? На моем коннекторе таки дельтанейтральные стратегии заводили. Хватало.
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/20510/
В Альфа-коннекторе на данный момент отсутствует поддержка опционов. Поэтому небольшой опрос - кому-н...
2012-07-24T18:56:35Z
2012-07-24T18:56:35Z
Sergey Masyura
https://stocksharp.ru/users/701/
info@stocksharp.ru
В Альфа-коннекторе на данный момент отсутствует поддержка опционов. Поэтому небольшой опрос - кому-нибудь требуется? Если наберется около 10 желающих, запланирую в таски.
Copyright @ StockSharp Platform LLC 2010 - 2024