Тема: Пробую писать привод.
Итак, пишу свой собственный привод. (пользуясь библиотекой QVCLua)
Это пока что только начало привода.
Ниже будут выкладываться актуальные версии
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
QUIK -> DDE → Готовые роботы → Пробую писать привод.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Итак, пишу свой собственный привод. (пользуясь библиотекой QVCLua)
Это пока что только начало привода.
Ниже будут выкладываться актуальные версии
Апдейт. Версия улучшена
ВАЖНО! Почему то если выходить кнопкой выход или закрытием окна, Квик после этого выдаст ошибку и больше скрипты LUA не даст запускать.
Поэтому выходить из приложения только через "остановить" в Quik.
[url]http://rghost.ru/8LDjKyzRF[/url]
Апдейт. Теперь умеет снимать заявки по одной, кроме того ведет лог работы.
ВАЖНО! Почему то если выходить кнопкой выход или закрытием окна, Квик после этого выдаст ошибку и больше скрипты LUA не даст запускать.
Поэтому выходить из приложения только через "остановить" в Quik.
[url]http://rghost.ru/7gHGGR7QX[/url]
1. Не стоит вкладывать в архив файл qlua.dll, это часть терминала QUIK, т.е. этот файл зависит от версии терминала.
2. У меня при запуске сразу развалился скрипт с диагностикой
AxMaxTradeV_1_3_3\AXMaxTradeV_1_3_3.lua:88: attempt to index global 'p_file2' (a nil value)
т.е. файлы на самом деле не открыты. Смотрим, как открываются файлы:
p_file=io.open("Lua\\logMaxTradeTradess.txt", "w")
p_file2=io.open("Lua\\logMaxTradeLogFull.txt", "a+")
p_file3=io.open("Lua\\logMaxTradeLogDay.txt", "w")
Беда в том, что
нет нужной директории;
директория, где создаются файлы – даже если их удастся создать -– будет постоянно меняться в зависимости от директории, где в последний раз открывались файлы. Это типичный глюк QUIK’а. Его желательно в скриптах побеждать, причем я так понимаю, что Lua – это каиалог, где в данном случае лежит скрипт, так что уберем это Lua и получим:
p_file=io.open(getScriptPath() .. "\\logMaxTradeTradess.txt", "w")
p_file2=io.open(getScriptPath() .. "\\logMaxTradeLogFull.txt", "a+")
p_file3=io.open(getScriptPath() .. "\\logMaxTradeLogDay.txt", "w")
3. Чтобы скрипт всё же не падал на логировании в любом случае – хорошо бы перед собственно записью лога (т.е. перед строкой p_file2:write()) добавить проверку
if p_file2 ~= nil then
ну и end в конце добавить
4. Есть вот такая строчка в программе, но не приложен файл project1.ico
myForm:Icon(imgdir.."project1.ico")
Но это всё ерунда.
Беда в том, что при любой остановке скрипта (кнопкой "остановить", например) терминал QUIK у меня наглухо зависает. Причем всегда.
Понять причину никак не могу. У вас остановка скрипта хоть как-то работает?
Запускаю файл с именем AXMaxTradeV_1_3_3.lua
Но это всё ерунда.
Беда в том, что при любой остановке скрипта (кнопкой "остановить", например) терминал QUIK у меня наглухо зависает. Причем всегда.Понять причину никак не могу. У вас остановка скрипта хоть как-то работает?
Запускаю файл с именем AXMaxTradeV_1_3_3.lua
Странно. Я проверил на пяти компьютерах и везде работает. Уже несколько дней торговал с него.
Спасибо за комментарии. Привод продолжает находиться в стадии доработок. Опыт у меня программирования имеется, правда качественный опыт был лет 8 назад. Было бы очень хорошо, если бы кто-либо смог мне грамотно пояснить как написать данный привод более качественно, и более грамотно с точки зрения программирования.
Сейчас занимаюсь тем, что пытаюсь вставить в привод обработку и отслеживание состояния портфеля. Думаю на неделе будет более полный релиз.
Самый большой вопрос это- а на что же заменить хэндлер? Я взял изначально базу из примера и уже по аналогии делал свое.
Но главное достоинство привода для меня на текущий момент это то, что я перестал платить за qscalp и мне для торгов достаточно своего привода. Хотя он будет очень глобально улучшаться и дорабатываться, был бы очень рад, если бы мне помогали и поясняли как улучшать.
Основная проблема в том, что я не помню или не знаю как работают многие функции - как их вызывать, что они делают , какие параметры принимают и отдают. В итоге приходится писать основываясь только на примерах или тех "урывков" литературы, которые удается найти. Оттого то например и идет такая работа с логами и прочим.
А вообще самая главная цель этого привода, это в дальнейшем прописать робота, который будет сам торговать. Перепробовав ТСлаб (который оказался слишком ограничен в возможностях) роботлабы, кучу другого софта для написания роботов (везде сталикивался с невозможностью каких либо действий) кроме того параллельно с этим на Си велась разработка робота другого, но в основном не мной, а "подконтрольным" мне программистом. В какой то момент я уже перестал сам разбираться в проекте и дорабатывать его мог только программист.... Сейчас у этого программиста стало очень тяжело со временем и возможностью работать (он из Украины из Донецка... Я думаю понятно всё...) и теперь рассчитывать на то, что он все таки доведет робота, почти бесполезно....
Потому решил писать с нуля и своего... Lua был выбран так как судя по описанию возможностей, на этом языке нет глобальных ограничений, он хорошо взаимодействует с квик (на сколько это возможно ((текущие роботы у меня вообще по dde работают))) и вот для того чтобы написать робота, я решил начать с "простого"- написанию торгового привода. В дальнейшем буду писать робота... И вот тут мне понадобится еще больше помощи... Очень надеюсь что смогу её получить от вас )))
Swerg, большое спасибо за подробное пояснение того, как работать с файлами в данном случае.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
QUIK -> DDE → Готовые роботы → Пробую писать привод.
Форум работает на PunBB, при поддержке Informer Technologies, Inc