Владимир (Все сообщения пользователя)

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

Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14 ... 41 След.
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Юрий,
if (flag & 4) {
   -- сделка на продажу
} else {
   -- сделка на покупку
}
Как получить графу Прибыль/Убыток из getPortfolioInfoEx, часть возвращаемой таблицы пустая, хотя в визуальной таблице QUIK данные есть.
 
awkozlov, Ядро здесь тоже чуть ли не эталон непрофессионализма.  :smile:  Как, прочем, и у Вас: прописывать эти "константы" в коде означает требование менять код на каждый чих, а уж то, что в "константы" попали даже CLASSCODE и CURRENCY... мой скрипт прекрасно работает как с одним, так и с тысячей тикеров разных классов и разных валют на разных счетах разных клиентов и всё это без малейшего изменения кода. И уж собственную Прибыль/Убыток он знает в миллион раз лучще любого getPortfolioInfoEx.
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Юрий, А Вы не подозревайте - Вы ответьте. Этот коллбек возвращает структуру данных, и если Вы их имеете, то аналог убожеству bit.band в Си - оператор &
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Юрий,  Здрассьте. А OnTrade Вы как получаете?
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Юрий, Так я же показал: в прерывании анализируется этот флаг, а в стек заносится либо "B" (покупка) либо "S" (продажа).
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Юрий, Вот как делаю я (упрощённый код, мой скрипт может работать в боевом и тестовом режимах, а также по историческим данным через файл - всё это я убрал).

function OnTrade(n)
local i;
i=a[0]+1;
a[0]=i;
a[i]={};
a[i][0]=n.trans_id;
a[i][1]=n.order_num;
a[i][2]=n.trade_num;
a[i][3]=n.sec_code;
a[i][4]="B";
if bit.band(n.flags,4)~=0 then a[i][4]="S";end;
a[i][5]=tonumber(n.qty);
a[i][6]=tonumber(n.price);
end;

Смысл: a - стек прерываний, в нулевом элементе хранится текущий размер стека. По приходу прерывания забираем оттуда все необходимые данные и уматываем, чтобы не столкнуться со следующим. А сами данные выбираем из этого стека уже в спокойной обстановке - я делаю это по таймеру раз в полсекунды: выбираю очередной элемент и уже здесь разбираюсь, кто там дубль, кто nil, а кто реальные данные. Именно это, как я понимаю, Вам и нужно куда-то передавать и анализировать по Вашей "текущей временной табличке в памяти".
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
nikolz, Полагаю, что я ничего не путаю. Я ни разу в жизни не пользовался обезличенными сделками и колбеком onAllTrade. Меня интересует ТОЛЬКО мои сделки и ТОЛЬКО OnTrade, на onOrder мне тоже насрать, я этим говном тоже ни разу не пользовался. ЗА КАКИМ ХЕРОМ мне передавать параметры между процессами, если это тупейшая ПРИКЛАДНАЯ задача? Мой скрипт ТОРГУЕТ, а не занимается онанизмом с процессами. Я в своё время потратил недели три на перемещение всей арифметики в поток мейна, и с тех пор забыл про все технические проблемы с торговлей. Меряться пиписьками с распальцованным дураком также не имею ни малейшего желания. Мне также нафиг не нужны никакие dll и другие языки - как бы ни был убог Lua, на нём тоже можно организовать торговлю. А как "крутой программист" я писал на трёх разных ассемблерах и на Си действительно серьёзные задачи - сложные базы данных, ОС, низкоуровневые библиотеки, шахматы и т.д.

Ха-ха-ха! Лапуль, Ваши бредни, что я тайно использую dll QLUA меня очень порадовали. Пять баллов! А классы в программировании есть примочка для чайников. Как я писал много лет назад: "Указатель на структуру покрывает все "классовые" потуги Страуструпа как бык овцу".
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Юрий, Вот я и получаю данные ТОЛЬКО через lua скрипт. А с дублями все НЕ просто: сделка по номеру может и совпадать, а вот данные в ней могут и отличаться, и придти эта сделка может иногда через МИНУТЫ, и по "текущей временной табличке" (у меня это стек сделок или, если угодно, стек активных заявок) решения принимать нужно, а это не всегда просто, если заявка реализуется в несколько сделок, и проблема "как получать данные синхронно" не реализована даже на уровне самого Квика и, следовательно, для любых других приложений, и все эти проблемы решаются за счёт юзера - разработчикам на глюки, по большому счёту, насрать - для них это лишь повод выпустить очередную версию Квика, то бишь продемонстрировать собственную востребованность - им эти глюки НУЖНЫ и потому будут ВСЕГДА. А nikolz постоянно советует всякую херню потому как сам он в программировании никто и звать его никак. А мой совет, к которому я пришёл практически мгновенно - писать всё на Lua и забыть даже про мой любимый С, не говоря уже про другие языки.

nikolz, Лапуль, повторная сделка не только не всегда приходит следом за первой сделкой, они ещё и приходят "крест-накрест собачьим шагом", особенно красиво это выглядит, если заявка реализуется в десяток-другой сделок. Но это не Ваш уровень - я уже задолбался советовать Вам заняться чем-нибудь кроме программирования - вдруг Вы в какой-то области деятельности и в самом деле что-то соображаете.
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Юрий, Ишь, как уверенно: "с дублями я разберусь".  :smile: Арка годами не может разобраться, хотя просьба сделать так, чтобы не приходило несколько прерываний на одно событие одна из самых популярных, а Вы... Я, впрочем, разобрался, но для этого мне пришлось завести аж три стека: заявок, сделок и прерываний. А механизм получения данных в стороннем приложении очевиден: либо через файл, либо через ОЗУ двойного доступа, третьего не дано. Оба способа, мягко говоря, неудобные. Поэтому лично я написал ОДИН скрипт на ВСЕ случаи жизни на ЧИСТОМ LUA. И ничего никуда не передаю. Мне ндравицца...
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Юрий, Мало того, что они могут прилетать в функцию OnTrade по несколько штук в секунду (точнее, функция может вызываться столько раз) - они ещё и прилетают по несколько штук на одно событие, а могут и минут через десять после события прилетать. И с неверными данными могут. Не занимайтесь фигнёй, пишите на чистом Lua - это самый надёжный, самый быстрый, да и самый простой способ. Язык - говно, но остальные варианты ещё хуже.
Как в стакане акцептовать уже существующую заявку?
 
nikolz, Да я и не собираюсь ничего понимать - я давно всё сказал: быдло в принципе неспособно оценить гения. И вообще форум называется Программирование на языке Lua.  
Как в стакане акцептовать уже существующую заявку?
 
nikolz, К 1769 году Ломоносов уже умер.
Как в стакане акцептовать уже существующую заявку?
 
nikolz, Ну да, ну да, Демокрит брякнул спьяну, что "всё сущее зернисто", а через пару тысяч лет до стада дошло: это же, блин, атомистическая теория. Глядишь, попозже дойдёт, что это кварковая модель материи.

Вот именно: "увидел лишь Ломоносов" - бараны способны только смотреть, а гении - видеть.
Как в стакане акцептовать уже существующую заявку?
 
nikolz, А разве быдло способно оценить гения? Стадо способно лишь радостно визжать, когда пастух ему покажет: вот гений. Как Перельман, например: пока не сказали стаду, что он решил задачу тысячелетия и заработал на этом миллион долларов, то был придурком, потом гением, а когда он от этого миллиона отказался, и тем, и другим. Ломоносов гений уже потому, что его, наряду с Карамзиным и Пушкиным, считают отцом русского языка. Примерно то же самое можно сказать почти о любой другой отрасли знаний, которой он занимался. И Моцарт жил и умер в нищете, и за Пушкина долги выплачивал Николай. Так что хороший гений - это мёртвый гений, а для быдла понятия "гений" и "дебил" всегда были синонимами.
Как в стакане акцептовать уже существующую заявку?
 
nikolz, А при чём тут Ломоносов? Ломоносов, Моцарт, Пушкин - они не умные, они гении. Умным людям деньги действительно не нужны, а у дураков-то они откуда? Заработать они не в состоянии - только воровать.

Да, за растрату сраных 8 тысяч сраных рублей могли и посадить. Воровать нужно миллиардами, и не деревянных. И с каких это пор глубинное население России стало экспертом в финансовых вопросах?
Как в стакане акцептовать уже существующую заявку?
 
nikolz, У дураков деньги не задерживаются. Хотя меня действительно иногда удивляет: сколько же дураков с деньгами! А сочувствие здесь каким боком? У меня всё хорошо...
Как в стакане акцептовать уже существующую заявку?
 
nikolz, Это дураки ставят айсберги. Были бы у меня на них деньги - написал бы функцию, которая принимает количество, покупка это или продажа и желаемую цену. И чтобы выставляла случайным образом заявки небольшими порциями в небольшом диапазоне цен в одном направлении, а треть или половину - в другом. Ещё и заработать можно чисто на этой операции. И ни одна собака в жисть не догадается, что это айсберг. Написать эту хрень можно за полчаса.
Как в стакане акцептовать уже существующую заявку?
 
Vitalii Savinov,  Ну и я обычно ставлю количество в 1. На срочном рынке и вообше ТОЛЬКО 1 и не вижу смысла эту величину менять. На фондовом величина ставки зависит от цены лота - там может быть и сто, и тысяча, но во всех случаях мне по барабану, что там наставили боты и наставили ли вообще чего.
Как в стакане акцептовать уже существующую заявку?
 
Vitalii Savinov, Я имел в виду, какая разница, бот или не бот. А заявку вполне можете сгенерить и Вы сами - это даже выгоднее, комиссия не берётся.

Да пусть боты бегают куда хотят - это ИХ проблемы. А я выставляю заявки по цене, которая устраивает МЕНЯ.

Так ФОРМИРУЙТЕ свою позицию за правильную цену - и дело с концом. Никто Вам не предлагает с ботами в подкидного дурака играть. Тем более, что боты - точно такие же участники торгов, как и Вы. А для того, чтобы заявка исполнилась нужно найти того дурака, которого устроит встречное предложение, и бот это или не бот - дело стопятидесятое.
Как в стакане акцептовать уже существующую заявку?
 
Vitalii Savinov, Какая разница, кто сгенерил заявку? Мне вот АБСОЛЮТНО до фонаря. А если "мне нужно 100 (или даже 1000)", так я и ставлю заявку на нужное количество лотов, и мне плевать, за одну она сделку выполнится или за сто. А уж на ботов и их "соревнования" тем более плевать - в стакан я вообще никогда не заглядываю. На айсберги у меня денег нет, но при желании спрятать айсберг так, чтобы ни одна собака не догадалась, проблемы не представляет.  
Как в стакане акцептовать уже существующую заявку?
 
Vitalii Savinov, Вы выкупаете те лоты, которые стоят первыми в очереди по указанной цене предложения. Иногда это действительно может быть одна заявка, а может сотня совершенно разных заявок. Программно Вы тоже можете подать лимитную заявку по указанной цене. Если она нарывается на более раннее предложение, она исполнится. Если заявка по рыночной цене, она исполнится наверняка.
Как в стакане акцептовать уже существующую заявку?
 
Vitalii Savinov, Руками акцептовать чужую заявку Вы не можете. Программно, соответственно, тоже.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Alexander, Во-первых, курс всегда ходит с приключениями. Во-вторых, даже если он пойдёт без них, ничего страшного не случится. В-третьих, на фондовом рынке можно пересидеть и месяцы, и годы, а на срочном этот номер не пройдёт. В-четвёртых, за месяцы болтанки можно отыграть чуть ли не любое неудачное движение. В-пятых, диверсификация портфеля по тикерам спасает почти от любых случайностей. В-шестых, да, какой бы ни был робот, он идеальным быть не может. Кроме моего.  :smile:

Я говорил о других потоках. Алгоритмические потоки, конечно, можно реализовать, но не нужно. У меня вот один поток контролирует все тикеры и все уровни.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Alexander, Не может. Мой робот не может попасть в такую ситуацию. Он ничего не предполагает, он подаёт заявку на закрывающую сделку тогда, когда цена его устраивает. Он сам подстраивается под цену, а не цена под него. Ожидания могут уйти в бесконечность, но только в том случае, если курс стоит. А такого не бывает.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Alexander, Я довольно много времени потратил на борьбу с этой идиотской динамической типизацией и не менее идиотским разделением на потоки. Перенеся всё, что только можно, в поток мейна, я давно уже забыл про зависания, хотя до сих пор скрипт каждые две минуты сбрасывает дамп текущего состояния на диск. Куда сложнее было воевать с приходом нескольких прерываний на одно событие и с рассогласованиями портфеля с данными брокера - тем более, что функция, специально созданная для сверки портфелей "просто не работала". Нет, и сверку портфелей я теперь делаю разве что раз в месяц, по настроению, и до сих пор боюсь новых версий Квика, где слишком уж часто перестаёт работать даже то, что ранее работало. Ах, да - никаких условных заявок сроду не выставлял.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Alexander, Менял я его довольно долго - пару лет. Фондовый рынок не меняю уже несколько месяцев - устраивает буквально всё, а срочный, относительно новый для меня, последний раз менял где-то неделю назад. Пока что тоже всё устраивает. Ну и, поскольку вручную я давно уже не торгую, алгоритм получился очень даже универсальным.  :smile:  
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Alexander, Ну, во-первых, принципов там гораздо больше одного. Срабатывает он по разным причинам. В частности, работа на срочном и на фондовом рынке весьма заметно отличается. Поведение алгоритма зависит не только от текущего поведения рынка, но и от состояния портфеля и кошелька. Один из критериев базируется на предположении, что рынок обладает инерцией (стоящий курс нелегко разогнать, движущийся нелегко остановить), другой на том, что сороконожка более устойчива, и тикеров в портфеле должно быть уж никак не меньше десяти. Третий - что поведение рынка на разных таймфреймах может заметно отличаться - он может торговать сразу на нескольких. Четвёртый - что любые индикаторы с предсказаниями движения курса время от времени врут, в т.ч. с точностью до наоборот, поэтому гаданиями на кофейной гуще заниматься не следует. Пятый учитывает ликвидность тикера, шестой - волатильность, седьмой - дороговизну (затраты на покупку одного лота), восьмой - отклонение текущего значения курса от последней свечи таймфрейма, девятый - скорость движения курса (разность последней и предпоследней свечи), десятый...
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Alexander, Индикаторы, может, и рисуют графики по стаканам - никогда не пользовался ни тем, ни другим, ни третьим. Как, кстати, и поддержкой с сопротивлением. А все решения на покупки-продажи принимаются только роботом. Когда-то я пытался с ним соревноваться, но позорно проиграл. Да, и скрипт один-единственный на все случаи жизни.
Мало кто об этом знает.
 
nikolz,Угадайте, как с этим бороться? Хернёй не страдать. Заявки не подавать километровыми пачками и по таблице заявок не бегать.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
nikolz, А моё мнение следующее:
Никакая история нафиг не нужна для прогноза будущего поведения.
На нейронные сети могут надеяться лишь те, у кого напрочь ампутированы собственные мозги.
Наблюдаемое прошлое не имеет никакого отношения к будущему поведению.
Суходрочка в стакане и вообще HFT является лучшим доказательством отсутствия нормального алгоритма торговли.
Кривые шибки в QLua
 
nikolz,А если учитывать, то это лучшее доказательство, что алгоритм есть полное и абсолютное дерьмо.
ошибка в использовании io, вопрос по синтаксису
 
Eldar, Ну вот у меня сейчас, как и всегда, работают три запущенных копии скрипта: два боевых у разных брокеров и один тестовый, который реальных сделок не делает - хочу погонять пару месяцев и посмотреть, как работает алгоритм на больших интервалах. Иногда запускаю четвёртый, по историческим данным. НУ НИ РАЗУ не было ни малейших проблем.
ошибка в использовании io, вопрос по синтаксису
 
Eldar, У меня все тикеры обслуживает один скрипт. Как акции, так и фьючерсы.
ошибка в использовании io, вопрос по синтаксису
 
Eldar, Ни с файлом лога проблем нет - он у меня открывается в режиме дописывания и работает месяцами, ни с файлом портфеля - он перезаписывается каждую пару минут на случай падения, никаких проблем нет. А в режиме работы по историческим данным ещё и третий файл используется. Только вот во время работы скриптов я в эти файлы не лезу, по крайней мере, в режиме записи. Думаю, именно поэтому скрипт и падает. Если, конечно, он работал в момент редактирования файла. Вот все операторы с этой функцией в моём скрипте - все работают как часы тыщу лет, и ни разу не правились:
F=io.open(getScriptPath().."//IN.TXT","r");
k=io.open(getScriptPath().."//OUT.TXT","w");
F=io.open(getScriptPath().."//LOG.TXT","a");
FF=io.open(getScriptPath().."//DATA.TXT","r");
ошибка в использовании io, вопрос по синтаксису
 
Eldar,  getScriptPath() прекрасно работает - одна из немногих функций, которая ни разу не была замечена в глюках. Скорее всего, ошибка где-то в Вашем коде.
Ошибка attempt to perform arithmetic on a table value, Ошибка attempt to perform arithmetic on a table value - что значит?
 
Дмитрий, Скорее всего, имеется в виду, что Вы обращаетесь не к элементу таблицы, а к самой таблице. Например, если Вы обращаетесь к ячейке не как v[i][j][k], а как v[i][j], когда лишь третий индекс есть элемент.
срочный рынок Московской биржи переходит на новую тарифную модель
 
Игорь М, Да нифига это не поможет сэкономить. Все же умные, все поставили заявки на покупку по Бид, а на продажу по Аск. Спред, допустим, вообще один шаг. И всё, торги остановились.
Ошибка создания заявки. [GW][32] "Цена сделки вне лимита"
 
Даниил Волошин, Я понимаю. Прошу рассматривать мой пост тоже как пожелание, как категорическое несогласие с пожеланием добавления встроенного отладчика.
Ошибка создания заявки. [GW][32] "Цена сделки вне лимита"
 
Вот только встроенного отладчика здесь не хватало.
Остановка и запуск скрипта из другого скрипта
 
Quikos, Изъясяюсь точно: скрипт должен быть ОДИН. Всё остальное - это, в лучшем случае, неумение программировать. Если скрипт ждёт пока восстановится соединение (моему, например, это совершенно по барабану), то пусть начнёт работать ТОТ ЖЕ САМЫЙ скрипт, второй нафиг не нужен. Если стали поступать новые данные, значит соединение восстановлено. Или торги начались. Или тикер начал, наконец, торговаться после паузы.
getMoney - значение полей таблицы
 
Quikos, Самому вести учёт своих бумаг и своих денег. Уж что-что, а это скрипт должен знать лучше любого брокера.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
BlaZed, Я тоже ленивый, но я люблю максимально автоматизировать все что нужно. Да, бывают проблемы у провайдера, но по мне лучше торговать при полной уверенности, что все проблемы решены, а данные не потеряны. Да, лучше пропустить время торговли - велика беда: она и так прерывается на перерывы в сессиях, выходные и праздники. И у моего скрипта нет проблем с удачными моментами для входа. Да и для выхода, пожалуй, тоже. И на месяц свалить на отдых и быть уверенным что скрипт не оставит тебя без штанов из-за каких-то страшных сбоев. Например, было у меня пару раз: включаю комп, а у меня там акций нет, денег нет, куда всё подевалось - непонятно. Потом проходит время - всё восстановилось, можно торговать. В конце концов, можно и удалённо запустить всё, что нужно.

У меня у одного брокера двухфакторная авторизация, а у другого по ключу. Если уж автоматизировать, то лучше без двухфакторной. При моей технике торговли, конечно, почти по барабану, но автоматизировать это дело - нафиг, нафиг. :smile:  
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
BlaZed, А зачем? У меня сейчас торгующий комп вообще выключен, завтра утром включу. У Бориса, насколько я знаю, собственный сервер, и у него скрипт может вообще не выключаться долгое время, но, во-первых, это довольно редко встречается и, во-вторых, зачем автоматизировать потенциально аварийную ситуацию? Не говоря уже про двухфакторную аутентификацию - там ведь и обратную связь нужно иметь, причём по независимому каналу.
Как заполняется размер таблицы исторических свечей ?
 
nikolz, Лапуль, где Вы нахватались этих бредней? Циклы в системах реального времени (как и во всех остальных, впрочем) это очень хорошо. А уж относить к ним несчастных торговых роботов просто язык не поворачивается.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
BlaZed, Какое отношение скрипт имеет к авторизации? Это дело Квика, но никак не скрипта - автоматическая авторизация не может быть реализована на любом языке. По крайней мере, НЕ ДОЛЖНА - на то она и авторизация. А скрипту она совершенно по барабану (моему, во всяком случае). Если авторизация не прошла, значит, данные перестали поступать, скрипт работает, но не торгует. Для него это точно такая же ситуация, когда торговая сессия закончилась. А когда данные пошли, скрипт встрепенулся и начал торговать. Авторизация - В ПРИНЦИПЕ не его собачье дело.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
BlaZed, Нет, совершенно серьёзно спрашиваю. У меня тоже четверть, если не треть кода посвящена компенсации глюков системного софта, но это всего лишь объём кода, а не алгоритмические навороты. Концептуально их совсем немного, и практически все их я не раз перечислял. Если их соблюдать, то и кода они требуют не так уж много. У меня вот Ваш пример выполняется так:
a[i][2][0]=tonumber(getParamEx(a[i][0][0],a[i][0][1],"LAST").param_value);
И НИКАКИХ дополнительных проверок не делается - алгоритм торговли достаточно устойчив к тому, что бы там ни пришло. Единственное - в некоторых местах эта падла иногда возвращает nil - алгоритм бы и с этим справился, но при всяких там сравнениях скрипт начинает вылетать, а это совсем уж свинство, так что приходится извращаться вроде:
if n==nil or n.trans_id==nil or n.order_num==nil or n.trade_num==nil or n.sec_code==nil or n.flags==nil or n.qty==nil or n.price==nil then ...
Но это ТОЛЬКО при обращении к библиотечным функциям, которые у меня минимизированы до безобразия - в основном, именно по этой причине. По той же причине и обилию версий я с самого начала постановил: "никаких библиотек - только голый Луа". Потом "никаких потоков - всё делаем в потоке мейна". Потом... я даже дважды пытался создать общими усилиями библиотеку технических утилит для торговли, где все эти нюансы были бы учтены, но поднимавшийся за этим поросячий визг местных "гуру" напрочь отбил это желание. А Квик, бесспорно, говно. Как и Луа. :smile:

Нет, это не Квика "основная беда в том, что нет гарантии что  ты получишь данные, а если получил их, то это еще не значит, что они  будут корректными" - это любой многопроцессорный комплекс с ними сталкивается. В любой системе "клиент-сервер" нет гарантии ни в том, что запрос дойдёт по назначению, ни что ответ прибудет, а если прибудет, то без ошибок. Вот за динамическую типизацию действительно яйца бы пообрывал. Тем не менее, согласен: "скрипт как-то стабильно работает". Сегодня после семи, правда, не было ни одной сделки ни у одного из брокеров, но оба Квика нормально работают. Думаю, это просто конец пятницы тому причиной.

Да, я тоже "всегда обновлялся практически сразу", как только брокер рекомендовал обновить - мне тоже всегда было плевать и на версию Квика и версию языка. Но сначала у моей сестры обновлённый Квик напрочь отказался работать, причём она торгует вручную, без скриптов вообще, потом у меня "девятка" стала какие-то кренделя выписывать, и я просто отмотал взад на восемь, не разбираясь во всём этом дерьме. Пока работает...

А что, собссно, нельзя реализовать на луа? Естественно, я тоже про автоматизацию торговли - сроду не сидел перед монитором постоянно. Да я и торговать-то не умею. :smile:  
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
BlaZed, Ну-ну, шайбу! КАКИЕ ИМЕННО "костыли" позволяют добиться стабильной работы? Я тоже не помню когда в свои скрипты последний раз серьёзные правки вносил, но именно потому, что я давно вылизал всю "техническую" часть и минимизировал общение с Квиком до абсолютно необходимого минимума. Да и к алгоритмам давно претензий нет - по крайней мере, при торговле акциями: меня ВААПЩЕ перестало интересовать, что он там продаёт и что покупает. Вот с фьючерсами (относительно новый для меня рынок) кое-какие шероховатости алгоритмов просматриваются, но и там скрипт торгует сам с утра до вечера, а я только логи просматриваю и кумекаю, нельзя ли что улучшить.

А я этого брокера не только менять не собираюсь, но и не имею к нему ни малейших претензий и желать лучшего не хочу. Второй (исторически первый) брокер похуже, но тоже вполне терпимый. А вот Квик я как раз поменял, с девятой версии снова на восьмую. Десятку даже не пытался ставить, но по здешним отзывам она хуже даже девятки.

Да, "мой робот 100500 инструментов одновременно торгует и зарабатывает". Не 100500, конечно, около сотни, из которых в районе полусотни имеются в портфеле, но когда можно было торговать долларовыми и евровыми акциями, рынок был куда интереснее и полторы-две тысячи тикеров он спокойно отслеживал. И сам я тыщу раз говорил, что "Квик это всего лишь инструмент, но работать на нём можно". И что Луа есть полное дерьмо, но писать нужно именно на нём, тоже говорил.
Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?, Как из скрипта lua узначть что терминал QUIK загрузился полностью и подгрузил данные эккаунта ?
 
Рустем, Здесь ни в чём нельзя быть уверенным наверняка, и никакие костыли от этого не спасут. Я уже приводил пример, что данные портфеля ЧАСАМИ могут лежать неправильными. И причин этому рассогласованию может быть великое множество. В Вашем случае, например, нельзя положить один контракт в портфель "навечно", ибо у фьючерсов нет ничего "вечного", а правильный ответ по контролируемому параметру вовсе не гарантирует, что уже подгрузились данные по портфелю - может, подгрузились только эти, которые проверяются, а остальных ещё ждать и ждать. У меня и вообще был восхитительный случай, я о нём писал: специально написанная для этой цели библиотечная функция (getDepoEx) в какой-то момент просто перестала работать. А техподдержка просто и нагло забанила ту ветку. Короче: спасение утопающих дело рук самих утопающих. Так что следует как можно меньше обращаться к любому системному софту, только в случае КРАЙНЕЙ необходимости.
Запрос данных после разрыва соединения
 
Quikos, Из ТТТ я беру ВСЁ :smile:

Я: Как получить свечи без этого идиотского CreateDataSource - я уже предлагал тупо запихнуть их прямо в ТТТ, где им самое место.
Roman Azarov: Никак. Свечи текущей торговой сессии генерируются терминалом на основании потока обезличенных сделок (исторические данные же поступают в терминал с сервера в виде архивов), к потоку текущих параметров (таблица текущих торгов) они не имеют никакого отношения. При желании/необходимости, Вы также можете самостоятельно создавать свечи из потока обезличенных сделок в своем скрипте.
Я: Как это "никак", если на любом сайте, связанном с торговлей, этих свечей как собак нерезаных, всех мастей и размеров, и хранятся они там годами, если не десятилетиями? И при чём тут "свечи текущей торговой сессии"? А недельные? Месячные? А к ТТТ они имеют самое прямое отношение: перечень тикеров, интересующих юзера, настраивается именно в ТТТ, а Квик всё время ведёт весьма интенсивный обмен данными с сервером. И что, трудно заодно и свечки прихватить? В плане траффика это вообще ничего не стоит!
Roman Azarov: Прихватить что и откуда? ТТТ транслируется биржей, свечки строит терминал из обезличенных сделок.
Я: А что, ваш CreateDataSource тоже получает свечи, сгенерённые терминалом на основании потока обезличенных сделок"? Я и так сам считаю свечи, до часовых включительно. Но более тяжёлые (а лучше и менее, начиная с M15 и кончая месячными) лучше получать непосредственно от биржи - это надёжнее и не критично к обрывам связи, выключению электричества и т.п.
Roman Azarov: Все верно. Биржа не рассылает свечи, биржа рассылает обезличенные сделки.
Я: Ох, ни хрена себе! Так свечи считаются НА КЛИЕНТЕ?! И месячные тоже?! Да как же такое возможно? А если даже так - тем более: если вы сами считаете свечи, так и засуньте их в какую-нибудь таблицу! Это же ужас какой-то, доставать свечи из графика!
https://forum.quik.ru/messages/forum10/message57611/topic6614/#message57611
Запрос данных после разрыва соединения
 
Quikos, Я?! Да я КАТЕГОРИЧЕСКИ против использования ТОС! :smile:

Да, я когда-то хотел иметь дневные, недельные, месячные свечи, но давно отказался от этого - в первую очередь из-за поистине ЧУДОВИЩНОГО сервиса для их получения и, кроме того, они оказались не нужны: эффективность торговли на тяжёлых таймфреймах оказалась значительно ниже, чем на более скоростных. В настоящее время я торгую не дальше, чем на двухминутных свечах, и влияние этой торговли на порядок ниже, чем торговля на 10-секундных. Остальные таймфреймы справочные, для дополнительной информации, и для этой цели часовых свечей вполне достаточно. Раньше считал и более тяжёлые, но потом отменил.

Какая разница, таблица это или те же данные, полученные каким-то иным способом? ТОС и есть ТИКОВЫЙ источник данных.
Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14 ... 41 След.
Наверх