Страница 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
Получение стоимости шага цены инструмента срочного рынка с сайта биржи
PriceStep-01.png (17.43 КБ) 24489 просмотров


Конечно же такое нельзя запускать постоянно и тем более на каждом баре или хуже того на каждом тике.

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

Можно использовать как вариант при безвыходной ситуации в специфическом коде :)

Re: Стоимость шага цены.

Добавлено: 04 апр 2018, 16:07
oxi
Может ради такой эротики , не добавлять в терминал стоимость шага :) :lol: :lol: :lol:

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
GO-RTS-9.18.png (4.72 КБ) 24103 просмотра

Re: Стоимость шага цены.

Добавлено: 23 июл 2018, 21:26
MonteCristo
MonteCristo писал(а):
adar писал(а):Формула для лонга -
кол-во контрактов = баланс счета * % риска / ((Цена входа - стоп лосс)/GetPriceStep() * стоимость шага цены)

Подскажите, пожалуйста, как прочитать баланс счета на данный момент. И еще нюанс, если сейчас открыта позиция, то баланс будет считаться с учетом текущей стоимости активов?

А баланс счета как свой узнать?