Страница 1 из 2
Стоимость шага цены.
Добавлено: 03 апр 2018, 20:50
adar
Не смог найти в документации как получить стоимость шага цены инструмента (например фьючерса RTS). Реализовано GetPriceStep() - функция возвращает шаг цены по инструменту, используемому в стратегии (например для фьючерса РТС - это 10 пунктов). Но нужна еще стоимость этого шага - сколько эти 10 пунктов стоят в рублях. Эти данные биржа транслирует. И это нужно для всех ЭдолларовыхЭ фьючерсов. Нефть, золото и т.д.
Кто нибудь сталкивался?
Нужно мне это для реализации управления капиталом по методу "максимальный риск на сделку". Расчет объема в сделке зависит от стоп-лоса и размера этого самого процента риска от общего капитала. Так вот чтобы пересчитать пункты инструмента в рубли баланса счета и риска в % от этого счета. Нужна стоимость пункта. Если она равна 1 для рублевых инструментов, то проблем нет. Но для долларовых эта цифра плавает.
Формула для лонга -
кол-во контрактов = баланс счета * % риска / ((Цена входа - стоп лосс)/GetPriceStep() * стоимость шага цены)
Re: Стоимость шага цены.
Добавлено: 04 апр 2018, 09:56
evge
Не встречал в документации тоже.
Вообще всё считает в пунктах для долларовых инструментов.
Даже в тестировании стратегии в рублях информацию не получить по долларовым инструментам.
Может брать (парсить) с сайта биржи?
Немного эротики на эту тему:
Код: Выделить всё
function Initialize()
{
IndicatorName = "PriceStep";
PriceStudy = false;
AddInput("Input", Inputs.Price);
AddSeries("A", DrawAs.Line, Color.Red);
}
function Evaluate()
{
if (CurrentIndex == MaxIndex)
{
//URL инструмента срочного рынка с сайта moex.com
string url = "https://www.moex.com/ru/contract.aspx?code=RTS-6.18";
System.Net.WebClient wc = new System.Net.WebClient();
wc.Encoding = System.Text.Encoding.UTF8;
string html = wc.DownloadString(url);
var PriceStep = System.Text.RegularExpressions.Regex.Match(html, "Стоимость шага цены\\</td\\>\\<td\\>\\D\\D(.*?)\\s").Groups[1].ToString();
ShowMessage(PriceStep);
}
}
- Получение стоимости шага цены инструмента срочного рынка с сайта биржи
- PriceStep-01.png (17.43 КБ) 24913 просмотров
Конечно же такое нельзя запускать постоянно и тем более на каждом баре или хуже того на каждом тике.
Можно периодически, например, раз в день считывать и сохранять в стратегии в глоб. переменную.
Можно использовать как вариант при безвыходной ситуации в специфическом коде
Re: Стоимость шага цены.
Добавлено: 04 апр 2018, 16:07
oxi
Re: Стоимость шага цены.
Добавлено: 04 апр 2018, 16:48
evge
лучше добавить, эротику всегда успеем придумать
Re: Стоимость шага цены.
Добавлено: 04 апр 2018, 18:45
adar
Спасибо! Все получилось.
Re: Стоимость шага цены.
Добавлено: 19 июл 2018, 21:00
MonteCristo
Дмитрий, а все-таки, собираетесь добавлять этот функционал в терминал? Или нет смысла ждать и тоже вставлять в свой код эту эротику?
Re: Стоимость шага цены.
Добавлено: 20 июл 2018, 21:47
MonteCristo
adar писал(а):Формула для лонга -
кол-во контрактов = баланс счета * % риска / ((Цена входа - стоп лосс)/GetPriceStep() * стоимость шага цены)
Подскажите, пожалуйста, как прочитать баланс счета на данный момент. И еще нюанс, если сейчас открыта позиция, то баланс будет считаться с учетом текущей стоимости активов?
Re: Стоимость шага цены.
Добавлено: 20 июл 2018, 21:57
MonteCristo
А еще как получить текущее ГО?
Re: Стоимость шага цены.
Добавлено: 22 июл 2018, 09:24
evge
Не менее эротично
Код: Выделить всё
function Initialize()
{
IndicatorName = "GO";
PriceStudy = false;
AddInput("Input", Inputs.Price);
AddSeries("A", DrawAs.Line, Color.Red);
}
function Evaluate()
{
if (CurrentIndex == MaxIndex)
{
//URL инструмента срочного рынка с сайта moex.com
string url = "https://www.moex.com/ru/contract.aspx?code=RTS-9.18";
System.Net.WebClient wc = new System.Net.WebClient();
wc.Encoding = System.Text.Encoding.UTF8;
string html = wc.DownloadString(url);
var PriceStep = System.Text.RegularExpressions.Regex.Match(html, "Гарантийное обеспечение \\(ГО, руб.\\)\\</td\\>\\<td\\>\\D\\D(.*?)\\s").Groups[1].ToString();
ShowMessage(PriceStep);
}
}
- GO-RTS-9.18.png (4.72 КБ) 24527 просмотров
Re: Стоимость шага цены.
Добавлено: 23 июл 2018, 21:26
MonteCristo
MonteCristo писал(а):adar писал(а):Формула для лонга -
кол-во контрактов = баланс счета * % риска / ((Цена входа - стоп лосс)/GetPriceStep() * стоимость шага цены)
Подскажите, пожалуйста, как прочитать баланс счета на данный момент. И еще нюанс, если сейчас открыта позиция, то баланс будет считаться с учетом текущей стоимости активов?
А баланс счета как свой узнать?