Юрий Дернов (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
EasyTradeStation, Комплекс для разработки и тестирования роботов, одновременная работа с 10 программами quik.
 
Преимущества комплекса для автоматизации торговли на бирже – EasyTradeStation (ETS)

EasyTradeStation – универсальный комплекс для автоматизации торговых алгоритмов и тестировании их на исторических данных. Реализовать в стратегии самые «смелые» идеи трейдера, позволит язык программирования C#. А высокая скорость обработки данных и поддержка одновременной работы очень большого количества роботов, наряду с малыми требованиями по мощности компьютера и потребляемой памяти предоставляют комфортную работу и широкие возможности профессионалам и начинающим трейдерам. Качество и правильность работы торговых алгоритмов обеспечивается многоуровневой системой ведения «Логирования» с возможностью оповещения пользователя.

Конкурентные преимущества:
  • Демо-версия с полным функционалом, а по завершению демо-версии использование программы бесплатно для тестирования и торговли одним роботом – это позволяет клиентам с маленьким депозитом, начинающим или опытным трейдерам, исследовать рынок без затрат.
  • Высокая скорость обработки данных по роботам – одновременная работа нескольких сотен роботов на одном компьютере в одной программе, каждый робот может быть со своими уникальными настройками и торговыми инструментами;
  • Готовые решения (модули) – Риск менеджер, Сетка ордеров, Уровневые стратегии, Автостоп, Инструменты управляющего, Арбитражные стратегии (реализован сейчас только парный трейдинг)
  • Большой выбор стандартных настроек для роботов (стоп-заявки, управление рисками, время работы) – увеличивают скорость разработки и расширяют возможности стратегий;
  • Работает на всех версиях Windows начиная c Vista;
  • Возможность запускать портфели роботов – объединять риски по всем роботам в один портфель;
  • Получения уведомлений по СМС, Телеграмм, Е-mail, или звуковой сигнал и сообщение на экране о действиях роботов и подключении к бирже или терминалу; Трейдер всегда будет в курсе работы торгового алгоритма.
  • Работает с QUIK, Transaq connector, plaza2, interactive brokers, криптобиржами и открыт API для написания своих коннекторов – позволяет быстро подключиться к любой бирже или терминалу. Уникальная возможность разработать коннектор своими руками тем, кто знаком с языком C# или заказать его разработку.
  • Скорость обработки алгоритма одного робота начиная от 0,2 мсек, в зависимости от мощности компьютера, сложности алгоритма и количества анализируемых открытых позиций, что позволяет начинающим трейдерам начать автоматизацию процесса торговли без покупки дополнительного оборудования и ПО.
  • Одновременная работа с разными терминалами и несколькими копиями одного и того же терминала (по умолчанию к программе можно подключить до 10 Квиков (QUIK));
  • Простота загрузки исторических данных для тестирования – поддерживается любой тип данных. Встроенный помощник делает данный процесс быстрым и комфортным.
  • Работа на любом таймфрейме, начиная от одного тика;
Возможности:
  • Создание, тестирование и оптимизация стратегий;
  • Возможность создавать контейнеры для передачи стратегий третьему лицу без возможности просмотра исходного кода. Данные контейнера защищены паролем, что позволяет открыть его только в EasyTradeStation для торговли; «Контейнер» может открыть (до уровня кода) только тот, кто его создал! Основной функцией «Контейнера» является защита содержащегося в нем алгоритма от просмотра и редактирования, что позволяет обезопасить ваш интеллектуальный труд по созданию стратегий.
  • Имеются готовые бесплатные стратегии с описанием их принципа работы, что поможет быстро разобраться, как построен алгоритм робота и на основе открытых кодов написать свою стратегию;
  • Одновременная торговля по нескольким счетам;
  • Запуск нескольких роботов по одному инструменту на одном счете с разными параметрами торговли, каждый робот будет вести только свои позиции.
  • Возможность "Горячей" замены параметров роботов, т.е. алгоритм робота не будет пересчитываться по историческим данным, а продолжит работу уже с новыми параметрами и открытие или закрытие позиции будет произведено уже на основании новых параметров; Существенное отличие от существующих программ.
  • Возможность выставлять отложенные ордера.
  • Контроль исполнения заявок: в случае снятие биржей заявок, робот автоматически выставит их заново, когда вновь будет разрешена торговля;
  • В случае неисполнения заявки по Стоп-ордеру, возможно добиться 100% исполнения его с помощью блока робота «Заявки»;
  • Режим торгов автоматический – заявки отправляются на биржу с помощью алгоритма  и ручной режим – эмуляция торговли, без выставления заявок на бирже учет операций ведется внутри робота;
  • Ведение статистики торговли робота (ов) в виде таблицы;
Более подробная информация находиться на сайте https://etstrading.ru
Инструкция онлайн
Создание портфеля, работающего с любым выбранном в QUIK инструментом
 
1. Возможно. Присваиваете идентификатор графику и при изменении графика робот, считывает с него информацию. У себя так сделал.
candle_name = Get_Value (Get_Collection_Item (Get_Value (Get_Candle_Ex (name , Dat, candle_time),"LINES") , 0) ,"NAME") -  с помощью этой функции получите название графика (name - идентификатор графика, Dat - дата свечи, candle_time - время свечи)

new_global("Instrument","инструмент")

candle_name=TRIM(SUBSTR(candle_name,0,(0+LEN(candle_name)-7)))
classes_list="TQBR,TQNE,TQNL,TQNS,SPBFUT,QJSIM,TQBS"
ClassCode=""
for CLASSCODDE in classes_list
SECS=GET_CLASS_SECURITIES (CLASSCODDE)
for Instrumment in SECS
SecInfo_NAME = GET_VALUE(GET_SECURITY_INFO(CLASSCODDE, Instrumment),"SHORT_NAME")
if candle_name=SecInfo_NAME
Instrument=Instrumment
ClassCode=CLASSCODDE
break
end if
end for
end for

С помощью этой блока кода определите код бумаги и класс. Далее уже сами код оптимизируйте. и еще один важный момент, не меняйте ничего в названиях графика, а то не верно будет определятся данные ( строка обрабатывающая название графика candle_name=TRIM(SUBSTR(candle_name,0,(0+LEN(candle_name)-7))))
getSecurityInfo(ClassCode, secCode) возвращает значения nil
 
Версия квик 6.16.0.42

--Получение кода класса и кода инструмента
function GetClassCode ()
local ClassCodeList = {"QJSIM","TQNE","TQNL","TQNS","SPBFUT","TQBR","TQBS","CETS"}
local flagBool = false
for i1 = 1, #ClassCodeList, 1 do
secList = getClassSecurities(ClassCodeLis[i1]  ;)  

for secCode in string.gmatch(secList, "([^,]+)"  ;)   do

if (tostring(getSecurityInfo(ClassCodeList[i1], secCode).short_name)== ticker) then
ClassCode=ClassCodeList[i1]
Instrument= secCode
flagBool=true
break
end
end
if (flagBool==true) then
break
end
end
end

ticker=кртактое название инструмент (Лукойл, Газпром ао  и т.д. - определяем заранее. В этом случае ошибка "attempt to index a nil value". Из ответов я понял что на этой версии данная проблема есть?
Ошибка при выводе по DDE
 
при этом если все написано внутри одного приложения, то замечаний нет, все работает как надо. После того как соединение по ДДЕ было вынесено в отдельную библиотеку, то падение и началось.
Ошибка при выводе по DDE
 
"Произошла ошибка: Ошибка при передаче таблицы, вывод приостановлен. Сервер отказался выполнять обмен данными: Размер либо формат данных неверен". Приложение пишется на WPF, не понятно почему данная ошибка возникает при взаимодействии с форой (Открытие меню или открытии нового окна). После этой ошибки не получается восстановить соединение. В какую сторону "копать", подскажите пожалуйста. Спасибо.
Не возвращает значение заявки исполненной от стоп-заявки+0
 
Спасибо, разобрался. Не то значение смотрел, нужно было co_linked_order
getSecurityInfo(ClassCode, secCode) возвращает значения nil
 
Квик работает, с подключения уже прошло больше часа. Раньше данная функция работал, но в 16 версии не хочет. Т.е. Если я запущу программу на 15 версии, то все будет определяться.
getSecurityInfo(ClassCode, secCode) возвращает значения nil
 
ClassCode="TQBR" Instrument="SBER" или ClassCode="SPBFUT" Instrument="SRH5"
getSecurityInfo(ClassCode, secCode) возвращает значения nil
 
В версии квика 6.16 getSecurityInfo(ClassCode, secCode) постоянно возвращает значение nil. Почему данная ошибка возникает подскажите
- getSecurityInfo(ClassCode, Instrument).scale+0 --точность цены - соответственно и здесь тоже nil
Не возвращает значение заявки исполненной от стоп-заявки+0
 
:)  Это я понимаю все. LINKED_ORDER возвращает значение 0 при исполненной стоп-заявке.
Не возвращает значение заявки исполненной от стоп-заявки+0
 
при таком запросе возвращает 0, Стоп-заявка исполнилась, а значение возвращает нулевое, раньше в версиях моложе 6,15 проблем не было. Подскажите, что-то изменилось? Выставляется связанная стоп-заявка.
Не возвращает значение заявки исполненной от стоп-заявки+0
 
get_value (get_item ("STOP_ORDERS", stop_order_i), "LINKED_ORDER"
Страницы: 1
Наверх