Общие вопросы по разработке > Котировки

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
cardsharer
Сообщения: 2
Зарегистрирован: 05 мар 2021, 14:15

Котировки

Непрочитанное сообщение cardsharer » 28 июн 2021, 10:16

Добрый день
Как из терминала AD получить котировки по группе инструментов за определенный период времени?
Интересует выгрузка в файл с разделителями.
Спасибо.

BugsDigger
Сообщения: 533
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 91 раз

Re: Котировки

Непрочитанное сообщение BugsDigger » 07 июл 2021, 12:05

Насколько знаю, экспорта данных нет. Но м.б. это подойдет?

Re: Исторические данные
viewtopic.php?t=729#p4543

piyyy
Сообщения: 97
Зарегистрирован: 15 янв 2018, 16:36
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: Котировки

Непрочитанное сообщение piyyy » 07 июл 2021, 13:56

Через API можно попробовать.

Jude_Masson
Сообщения: 30
Зарегистрирован: 03 окт 2020, 22:38
Благодарил (а): 12 раз
Поблагодарили: 7 раз

Re: Котировки

Непрочитанное сообщение Jude_Masson » 15 июл 2021, 18:13

Выбираете нужный инструмент, таймфрейм и даты.
На диске С в папке temp появится файл si.txt
Если следом сразу запустить следующий то по порядку и допишет.

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

function Initialize()
{
   StrategyName = "Загрузка котировок";
   AddInput("Input1", Inputs.Candle, 1, true, "SiZ0=ФОРТС");
   AddGlobalVariable("Y",Types.Double,0.0);
   AddGlobalVariable("H",Types.String,0.0);
   AddGlobalVariable("M",Types.String,0.0);
   AddGlobalVariable("D",Types.String,0.0);
   AddGlobalVariable("Min",Types.String,0.0);
   AddGlobalVariable("S",Types.String,0.0);
   LongLimit = 0;
   ShortLimit = 0;

}

function OnUpdate()
{
Y = BarDate().Year - 2000;
if (BarDate().Month < 10) { M = String.Format("{0}{1}",0,BarDate().Month); } else { M = String.Format("{0}",BarDate().Month); }
if (BarDate().Day < 10) { D = String.Format("{0}{1}",0,BarDate().Day); } else { D = String.Format("{0}",BarDate().Day); }
if (BarTime().Hours < 10) { H = String.Format("{0}{1}",0,BarTime().Hours); } else { H = String.Format("{0}",BarTime().Hours); }
if (BarTime().Minutes < 10) { Min = String.Format("{0}{1}",0,BarTime().Minutes); } else { Min = String.Format("{0}",BarTime().Minutes); }
if (BarTime().Seconds < 10) { S = String.Format("{0}{1}",0,BarTime().Seconds); } else { S = String.Format("{0}",BarTime().Seconds); }
WriteLine("C:\\temp\\si.txt", String.Format("{0}{1}{2};{3}{4}{5};{6};{7};{8};{9};{10}", D, M, Y, H, Min, S, Input.Open[0], Input.High[0], Input.Low[0], Input.Close[0], Input.Volume[0] ));
}

BugsDigger
Сообщения: 533
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 91 раз

Re: Котировки

Непрочитанное сообщение BugsDigger » 16 июл 2021, 08:00

Я когда-то пробовал, но штука в том, что так читается только видимая часть графика + некоторая предыстория. Для того, чтобы взять бОльший кусок, надо листать график в прошлое (буквально руками), потом сортировать записи в файле по дате ... Гемор в общем, вдобавок бессмысленный, когда есть место, откуда можно скачать исторические данные без проблем.

Jude_Masson
Сообщения: 30
Зарегистрирован: 03 окт 2020, 22:38
Благодарил (а): 12 раз
Поблагодарили: 7 раз

Re: Котировки

Непрочитанное сообщение Jude_Masson » 19 июл 2021, 21:25

Как можно листать график если вы запускаете робота? Только потом результат, но уже всё выгружено и ничего не изменится от просмотра.
Да выгружает иногда с дефектами, но если открыть инструмент руками там и есть этот дефект на графике, когда с примеру один день на СИ нету данных с 11 до 16.
Выгрузить можно, но откуда. Финам - так там концы сглажены котировок, конечно можно это игнорировать.

Да в такой спайке есть дикие гэпы на смене фьючерса, но они и в жизни будут. Я прописываю для тестирования что сделка всегда закроется в конце фьючера, что бы она не переносилась на новый фьючерс и так же вначале не торгует пока индикаторы не заполнятся данными с нового фьючерса, это тоже надо учитывать.
Но зато тут 100% истории без выравнивания.

e-formula
Сообщения: 13
Зарегистрирован: 16 фев 2021, 22:51
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Котировки

Непрочитанное сообщение e-formula » 20 июл 2021, 16:04

Я тоже сталкивался с такой проблемой - нет исторических данных по фьючерсам. Писал в поддержку. Рекомендовали искать на сторонних ресурсах. В АД хорошо загружаются отсюда https://www.finam.ru/profile/mosbirzha- ... atf=1&at=1
Правда без открытого интереса, но хоть что то

Jude_Masson
Сообщения: 30
Зарегистрирован: 03 окт 2020, 22:38
Благодарил (а): 12 раз
Поблагодарили: 7 раз

Re: Котировки

Непрочитанное сообщение Jude_Masson » 25 июл 2021, 11:37

Я вот понять не могу по идеи там Ask должен понимать, но почему то не загружает файл с такими данными. У кого-нибудь получилось?
п.с. Попробовал с VolumeAsk и VolumeBid ну чем чёрт не шутит, не помогло.

e-formula
Сообщения: 13
Зарегистрирован: 16 фев 2021, 22:51
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Котировки

Непрочитанное сообщение e-formula » 02 авг 2021, 09:39

По этому поводу также писал в техподдержку. Ответили так :"Судя по всему в терминале немного некорректно обрабатываются файлы в которых есть VolumeAsk - передадим разработчикам чтобы исправили. Сейчас если этот столбец есть, то не получится корректно загрузить данные". Ждём исправлений.

e-formula
Сообщения: 13
Зарегистрирован: 16 фев 2021, 22:51
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Котировки

Непрочитанное сообщение e-formula » 02 авг 2021, 09:42

По поводу архивных данных по фьючерсам, ситуация ещё интереснее. На одном компе по Si например, архив за 19-20 год есть, на другом нет. Недавно заметил.


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

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

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