Общие вопросы по разработке > Стоимость шага цены.

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
adar
Сообщения: 2
Зарегистрирован: 03 апр 2018, 20:30
Благодарил (а): 2 раза

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

Непрочитанное сообщение adar » 03 апр 2018, 20:50

Не смог найти в документации как получить стоимость шага цены инструмента (например фьючерса RTS). Реализовано GetPriceStep() - функция возвращает шаг цены по инструменту, используемому в стратегии (например для фьючерса РТС - это 10 пунктов). Но нужна еще стоимость этого шага - сколько эти 10 пунктов стоят в рублях. Эти данные биржа транслирует. И это нужно для всех ЭдолларовыхЭ фьючерсов. Нефть, золото и т.д.
Кто нибудь сталкивался?
Нужно мне это для реализации управления капиталом по методу "максимальный риск на сделку". Расчет объема в сделке зависит от стоп-лоса и размера этого самого процента риска от общего капитала. Так вот чтобы пересчитать пункты инструмента в рубли баланса счета и риска в % от этого счета. Нужна стоимость пункта. Если она равна 1 для рублевых инструментов, то проблем нет. Но для долларовых эта цифра плавает.
Формула для лонга -
кол-во контрактов = баланс счета * % риска / ((Цена входа - стоп лосс)/GetPriceStep() * стоимость шага цены)

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

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

Непрочитанное сообщение evge » 04 апр 2018, 09:56

Не встречал в документации тоже.
Вообще всё считает в пунктах для долларовых инструментов.
Даже в тестировании стратегии в рублях информацию не получить по долларовым инструментам.

Может брать (парсить) с сайта биржи? :)

Немного эротики на эту тему:

Код: Выделить всё

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 КБ) 24331 просмотр


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

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

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

oxi
Сообщения: 160
Зарегистрирован: 20 сен 2016, 23:20
Благодарил (а): 12 раз
Поблагодарили: 66 раз

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

Непрочитанное сообщение oxi » 04 апр 2018, 16:07

Может ради такой эротики , не добавлять в терминал стоимость шага :) :lol: :lol: :lol:

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

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

Непрочитанное сообщение evge » 04 апр 2018, 16:48

лучше добавить, эротику всегда успеем придумать :)
никогда такого не было и вот опять

adar
Сообщения: 2
Зарегистрирован: 03 апр 2018, 20:30
Благодарил (а): 2 раза

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

Непрочитанное сообщение adar » 04 апр 2018, 18:45

Спасибо! Все получилось.

MonteCristo
Сообщения: 35
Зарегистрирован: 16 май 2018, 19:52
Благодарил (а): 2 раза
Поблагодарили: 2 раза

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

Непрочитанное сообщение MonteCristo » 19 июл 2018, 21:00

Дмитрий, а все-таки, собираетесь добавлять этот функционал в терминал? Или нет смысла ждать и тоже вставлять в свой код эту эротику?

MonteCristo
Сообщения: 35
Зарегистрирован: 16 май 2018, 19:52
Благодарил (а): 2 раза
Поблагодарили: 2 раза

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

Непрочитанное сообщение MonteCristo » 20 июл 2018, 21:47

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

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

MonteCristo
Сообщения: 35
Зарегистрирован: 16 май 2018, 19:52
Благодарил (а): 2 раза
Поблагодарили: 2 раза

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

Непрочитанное сообщение MonteCristo » 20 июл 2018, 21:57

А еще как получить текущее ГО?

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

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

Непрочитанное сообщение evge » 22 июл 2018, 09:24

Не менее эротично :)

Код: Выделить всё

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 КБ) 23945 просмотров
никогда такого не было и вот опять

MonteCristo
Сообщения: 35
Зарегистрирован: 16 май 2018, 19:52
Благодарил (а): 2 раза
Поблагодарили: 2 раза

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

Непрочитанное сообщение MonteCristo » 23 июл 2018, 21:26

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

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

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


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 24 гостя