Блог им. Romanio

QUIK экспорт истории

Коллеги, приятных всем выходных. 

     Банальный вопрос — сохранение истории из QUIK в нормальном формате, типа как с финама в текстовом виде, где есть дата, время и параметры свечи. Кто-нибудь реализовал такую штуку? У меня робот тупо сосет из финама историю по склеенному фьючу RTS, но хочется брать из QUIKа, так как это надежнее.   
    Пробовал на lua делать скрипт который выполняет экспорт из квика графика, но там ограничение в один день, и глюки начинаются… при сохранении файла истории меняется текущая дректория и квик теряет путь к файлам ключей и отваливается. 

   Есть вариант сохранять историю находу… самому запоминать хай, лоу, опен и клоз каждой свечи и по концу свечи сохранять эти данные, полученные из стакана или параметров спрос/предложение. Но может уже есть что-то готовое, как это проще и надежнее сделать… чтобы данные из квика не сильно отличались от тех, что брокеры дают скачивать ?

Всем спасибо за ответы. 
★5
28 комментариев
экспорт данных для тех.анализа из квика в прогу; пишем код в среде проги!
avatar
starscream, это нужно иметь Омегу, Местасток или ВелсЛаб… а если без этой хрени, то как?
avatar
Romanio, я пробовал использовать функцию get_candels, если не ошибся в названии, у меня не получилось: функция не работала.
— получал текущее время;
— округлял до нужного периода;
— циклил вычитание периода и вызов функции
— функция ничего не выдавала
— делал на демо-счете, может в этом дело.
Не прибегая к помощи дополнительных программ для тех.анализа, на мой взгляд, проблему не разрешить!
avatar
starscream,… плюс ко всему перегружать терминал дополнительными расчетами по-моему неэффективно с точки зрения быстродействия.
avatar
starscream, у меня прекрасно работает вот этот lua скрипт(приведен ниже) но сбивается путь к ключам квика… разработчики QUIIK накосячили как обычно, прилепили lua, но как это повлияет на работу базовых функций QUIK — не проверили.

пример скрипта экспорта историии из графика на lua:

contract = «RIU4»

ds1 = CreateDataSource(«SPBFUT», contract, INTERVAL_M5, «last»)

f = io.open(contract..os.date("_%Y_%m_%d.txt"),«w»)

i = 2
s = ds1:Size()
while i<=s do
t = ds1:T(i)
f:write(string.format(contract..",5,%.4d%.2d%.2d,%.2d%.2d%.2d,%d,%d,%d,%d,%d",t.year,t.month,t.day,t.hour,t.min,t.sec,ds1:O(i),ds1:H(i),ds1:L(i),ds1:C(i),ds1:V(i)).."\n")

i=1+i
end

f:close()
ds1:Close()
end
avatar
Romanio, тут обрезалось… привожу пример обрезанной строки:

f:write(string.format(contract..",
5,%.4d%.2d%.2d,%.2d%.2d%.2d,%d,%d,%d,%d,%d",
t.year,t.month,t.day,t.hour,t.min,t.sec,
ds1:O(i),ds1:H(i),ds1:L(i),ds1:C(i),ds1:V(i)).."\n")
avatar
Romanio, а для чего Вам нужна история? Я так понял, для своего индикатора? В среде Lua я не разбираюсь, для её освоения надо еще кучу учебников проштудировать. Я нашел более простое, на мой взгляд, решение этой проблемы: открываем счет в метатрейдере, там пишем индикатор и передаем результат в квик через файл.
avatar
Romanio, хрень это Ваша самодельная платформа :)

Труроботостроители экпортируют ТВС по DDE за день и парсят. Ну и накапливают ессно за предыдущие дни.

Есть еще вариант купайл портфеля который строит бары за день и экспортирует в SQL, а там оно накапливается триггерами. А робот читает оттуда.

Есть еще умельцы которые садяцца на экспорт из квика в проги теханализа, тоже вариант.

Намного проще Вашу перекурвфиченную страту переписать в прогу теханализа ̶п̶р̶о̶т̶е̶с̶т̶и̶р̶о̶в̶а̶т̶ь̶ ̶и̶ ̶в̶ы̶к̶и̶н̶у̶т̶ь̶ и использовать готовый экспорт из Квика.
avatar
quant_trader, Вообще не понял наезда… У Вас результаты тестирования моей стратегии отличаются от моих? Откуда такое отношение?
avatar
Romanio, это не наезд.

Отношение потому что имхо Вы курвфиттер и вряд ли робастный, иначе хвастались бы не бектестами а реальными резалтами.

А стеб над собственным софтом потому что есть некие стандарты как хвастаться бектестами, у Вас даже средний трейд надо считать самому.
avatar
Промучавшись с купайловскими скриптами формирования баров с графиков, я в итоге пришел к решению:

Качаем по DDE таблицу всех сделок, во внешней программе формируем минутные бары и дописываем в базу данных, а уже робот работает с базой данных минуток (до июня 2012 я базу минуток сформировал, закачав данные с финама с исправлением тех дней, где сформированные часовики не совпали с давно ведущимися мной часовиками с ноября 1998-го).

Как качать таблицу по DDE? Раньше качал в Excel и обрабатывал в VBA, потом переписал все в C# с использованием библиотеки NDDE.
avatar
А. Г., а зачем Вам так много данных? Если для тестирования стратегий на истории, то согласен. Но для работы нужны свежие данные, т.е. окно последних свечек максимум в месяц.
avatar
starscream,

В том числе и для тестирования на истории. А данных немного, пока в базе только скленный фьючерс на индекс РТС и 6 наиболее ликвидных акций. А с базой роботам работать удобно для текущих расчетов: можно брать только ту глубину, которая нужна. И трудоемкость небольшая — я же не переписываю всю базу, а дописываю в нее. Вопрос только в секундных задержках: минутка формируется в момент сделки из следующей минуты. Для моих систем это не принципиально.
avatar
А. Г., от склеенных данных мало толку, согласен! Интересно, почему биржа не поставит в базу вместо квика что-нибудь типа метатрейдера?!.. не так, как сейчас, а с полным доступом ко всем инструментам!
avatar
starscream,

Не понял про «мало толку от склеенных данных». Для тестирования я их и использую, правда, склеенный у меня только фьючерс. В акциях нечего склеевать.

А метатрейдер, как база данных — это вообще моветон. Есть же оракл, постгри, майэскуэль, на худой конец можно мскуэль использовать. Впрочем биржа историю, кроме дневок, уже сделала платной, хотя и недорогой — всего 5 тыс. Руб.
avatar
А. Г., извините, я Вас неправильно понял!
avatar
А. Г.,… в моем понимании, склеенные данные это как геп после выходных: видно начало и конец, но в процессе не участвуешь)))
Я не собираюсь ни с кем спорить, у всех свои методы!!!
С уважением!
avatar
starscream,

С историей я не заморачивался, но для текущих данных применяю «хитрую склейку» с убиранием межфьючерсных гэпов.
avatar
А. Г., Александр, добрый день! Что по рынку думаете? Максимумы текущего года перепишем еще?
avatar
ds,

Думаю, что да, перепишем.
avatar
А. Г., коррекцию куда можно ожидать? высока ли вероятность обновления минимума года?
avatar
ds,

1250 плюс-минус 30 пунктов по ММВБ — максимальная коррекция, но там можем и не быть.
avatar
А. Г., а по индексу РТС (или фьючу) что-то аналогичное можно сказать?
avatar
ds,

Нет, там курс доллара мешает.
avatar
А. Г., интересно-интересно!!!
avatar
А. Г., Нужно для программы своей supergraal.ru/skachat/
c DDE ни разу не пробовал, считая этом механизм анахронизмом… но возможно стоит попробовать.
avatar
starscream, Да, для тестирования стратегий, плавно перетекающего в интрадей реал-тайм торговлю. Просто у меня алгоритм такой — запускается на истории в лет 5 одновременно штук 500 экземпляров одного и того же алгоритма с различными параметрами, различная величина стопов, различная глубина пямяти на максимум минимум и т.п… алгоритм балансировки назначает на каждой свече приоритеты каждой из 500 стратегии, в зависимости от её текущих результатов. Итоговая эквити после балансировки получается раза в 2-3 лучше чем каждая из входящих в отдельности по соотношению прибыль/макс.просадка. Таким образом мне нужен архив лет за 5 + реальные данные за каждый новый день, с задержкой не более 5 минут. Финам временами задерживает минут на 10. Хотелось соединить архив и QUIK, чтобы тест стратегии и реал-тайм торговлю на этой истории делать одновременно, т.к. реал-тайм торговля является продолжением теста на истории, т.е. все текущие переменные должны инициализироваться значениями с момента конца теста. т.к. если запускать алгоритм не за 5 лет а за месяц назад, какие-то факторы не будут учтены, и реальные сделки пойдут по другому…
avatar
А. Г., starscream, Да, для тестирования стратегий, плавно перетекающего в интрадей реал-тайм торговлю. Просто у меня алгоритм такой — запускается на истории в лет 5 одновременно штук 500 экземпляров одного и того же алгоритма с различными параметрами, различная величина стопов, различная глубина пямяти на максимум минимум и т.п… алгоритм балансировки назначает на каждой свече приоритеты каждой из 500 стратегий, в зависимости от её текущих результатов. Итоговая эквити после балансировки получается раза в 2-3 лучше чем каждая из входящих в отдельности по соотношению прибыль/макс.просадка. Таким образом мне нужен архив лет за 5 + реальные данные за каждый новый день, с задержкой не более 5 минут. Финам временами задерживает минут на 10. Хотелось соединить архив и QUIK, чтобы тест стратегии и реал-тайм торговлю на этой истории делать одновременно, т.к. реал-тайм торговля является продолжением теста на истории, т.е. все текущие переменные должны инициализироваться значениями с момента конца теста. т.к. если запускать алгоритм не за 5 лет, а за месяц назад, какие-то факторы не будут учтены, и реальные сделки пойдут по другому…
avatar

теги блога Romanio

....все тэги



UPDONW
Новый дизайн