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

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

Страницы: Пред. 1 ... 3 4 5 6 7 8 9 10 11 12 13 ... 41 След.
В чём преимущество OnInit
 
nikolz, Да с чем угодно. НЕТ у этого говна никаких преимуществ. Нет, И БЫТЬ НЕ МОЖЕТ. Это идеологический кретинизм. Я знаю, что Вы чайник в программировании, но даже Вам не следует тупо делать как рекомендуют разработчики КВИК - они, мягко говоря, не боги. Тем более, что они как раз меньше всех заинтересованы в качестве софта.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Поможет, поможет - не нужно читать рынок, нужно его писать. Не знаю, как там и за каким хреном "рынки ходят за ликвидностью" - моему алгоритму на неё плевать. А если у меня бабла до мамы, я и сам большой дяденька.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Ну, покопайтесь в моих комментах, если интересно - мне лень. Было это давно. Может, год назад или больше. Навскидку: если у меня бабла до мамы, а я хочу обрушить рынок, то ставлю в стакан две-три лонговые плиты и держу цену на какой-то из них, время от времени меняя, чтобы не скучно было. А когда рынок поверит, что курс вниз не пустят и отодвинет его вверх от моих плит, вываливаю накопленные бумаги.

Скрипт пишу я, а работает он сам. И можете посмотреть в архиве, что я говорил про ИИ и Маршака.
В чём преимущество OnInit
 
VPM, На заборе тоже много чего написано. Особенно про событийную модель.  
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Ха-ха-ха! Я когда-то рассказывал здесь набросок алгоритма, по которому ни одна собака в жисть не догадается, что это крупная сделка. А можно и наоборот: ПОКАЗАТЬ, что это крупная сделка и развернуть рынок в обратную сторону. И мне плевать, что там считалось классикой жанра торговали в начале 20 века. И плевать, что там хорошо торгуется, а что нет - это проблемы моего скрипта, а не мои.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM,  ТОС - это Таблица Обезличенных Сделок. То самое говно, в котором Вы ковыряетесь. А свечи - МОИ свечи, а не это японское говно - просто среднее арифметическое значений курса за период. Их я считаю сам по... ща скажу... по восьми таймфремам, от 10-секундных до часовых. Ни за чем не слежу, включаю скрипт в 9-10 утра и выключаю ближе к полуночи. А на рынке не просто нет ликвидности - самого рынка нет. А вот у капиталистов - есть.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Вот я и балуюсь на фьючерсах. А мой любимый долларовый рынок арестовали - и деньги, и бумаги.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Нет, ТОС мне вообще не интересна - она годится лишь для того, чтобы засрать память и процессор.

А что есть "статистически значимое событие"? Свечи для того и придуманы, что "большое видится на расстоянии". Ну так это свечи, а не дурацкая ТОС.

Сегодня Валютный рынок резко рванул вверх, потом вниз, потом опять вверх, сейчас опять вниз - зарабатывай, не хочу. А у меня сейчас фьючерс на юань именно "против шерсти". И ничего, чуток заработал...
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Да и Вам таблица всех сделок нафиг не нужна. А если бы и была нужна, код для работы с нею наверняка копеечный. Это УЖЕ СОВЕРШЁННЫЕ сделки, это ПРОЙДЕННЫЙ этап, дела давно минувших дней. За каким хреном кому-то нужен этот мусор?

У меня скрипт ОДИН на все случаи жизни, выполняет ВСЕ операции до единой: считает свечи, ведёт логи, выводит состояние текущих торгов (или НЕ выводит в спящем режиме - эта операция довольно затратная), поддерживает какой-никакой диалог - в частности, три вида контекстных меню по тикерам, принимает решения о подаче заявок, обрабатывает данные о сделках, отслеживает состояние портфеля и кошелька, умеет работать как на фондовом, так и на срочном рынке (фьючерсы, акции, депозитарные расписки) в любом из трёх режимов: боевой, тестовый и по историческим данным, количество тикеров и их ликвидность почти по барабану. Наконец, как я уже говорил, весьма заметная часть кода предназначена для компенсации глюков системного софта Квика. А всё потому, что он делает только то, что ДЕЙСТВИТЕЛЬНО нужно делать, а не занимается разной хернёй вроде коллбеков, двойных очередей или ТОС.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Круть невероятная. В код, естественно, даже не заглядывал, но объём последнего коммента 12542 байта, объём ВСЕГО моего рабочего скрипта - 36596 байт. :smile:  
В чём преимущество OnInit
 
VPM, Имнно так задачу и решать - это же МОЯ задача. Да, продавец првильно говорит: соберите и на здоровье ездите. Проблема в том, что педали разломаны, спицы погнуты, а колёса пробиты. А на дискуссии на две страницы я насмотрелся выше крыши. Кстати, что за спецы подключились? Кстати, про SearchItems тоже лучше забыть.
В чём преимущество OnInit
 
Nikolay, Бонусом передается путь до скрипта, если он требуется. ХОСПИДЯ! Из-за этой вот херни ковыряться в кишках QLua?! Создавать себе проблемы, а потом героически их решать? Разгадывать это СТРРРАШНУЮ ТАЙНУ? Что, трудно скинуть все нужные файлы в ту же папку, в которой лежит сам скрипт? У меня изначально так и сделано: в одной папочке лежит скрипт со всеми причендалами для одного брокера, в другой - точно такой же скрипт, но для другого брокера и даже другого Квика, в третьей - для того же самого Квика и брокера, но там я занимался отладкой алгоритмов скрипта в тестовом режиме, без реальных сделок. Во всех трёх случаях код скрипта совершенно одинаковый, и все "проблемы" с файлами решаются автоматически. Для лог-файла, например, код выглядит так:
F=io.open(getScriptPath().."//LOG.TXT","a");
И ВСЁ, БЛИН!

С какого бодуна "чтобы узнать какие callback-функции в скрипте определены - QUIK (да и  вообще Lua) вынужден весь скрипт полностью выполнить"? СЧИТАТЬ,  не выполнить. Скомпилировать, на худой конец. Это же ИНТЕРПРЕТИРУЕМЫЙ код, бумажка с инструкциями! На хрена их ВЫПОЛНЯТЬ?! Какой идиот изобрёл эти "нюансы вызова некоторых функций"? Какая, в жопу, "неизбежность"?!

Вон, даже nikolz проняло, не говоря уже про Nikolay. :smile:  
В чём преимущество OnInit
 
VPM, Я тоже зарегистрировался  на форуме, чтобы помогли разобраться с нюансами нового для меня языка, и мне в этом очень помогли. Потом я сам некоторое время считал своим долгом помогать новичкам. Но никакой наставник не заменит собственного опыта. Мне всю жизнь везло на учителей, но вот конкретно по программированию в институте был один семестр, да ещё и с зачётом, а не с экзаменом. Короче, знаний не было ваапще. И только после института, и даже после армии я увлёкся программированием - фактически самоучка. Нет, наставники были, и даже очень мощные, но все они были коллегами, мы вместе РАБОТАЛИ, и только это могло дать настоящий опыт. Да и чему тогда могли учить? Проминь-2, Минск-32, БЭСМ-6, Фортран, Алгол, Бейсик, ассемблеры разных видов, ничтожные по современным меркам память и быстродействие. Потом появились первые персоналки, не сразу Интеловские, появился гениальный язык С, любовь на всю жизнь. Вот это и была совершенно потрясающая Школа, когда наставники учились вместе со своими подопечными. Сейчас этого и близко нет. В школы вроде как ввели информатику, но достаточно бегло полистать любой учебник, чтобы понять: ЭТО способно только навсегда убить желание заниматься программированием. Потом уже я сам пару раз был руководителем диплома у выпускников-программистов. Один потрясающе талантливый, у него уже диплом представлял собой серьёзную разработку - что называется, программист от Бога. Второй... нет, диплом он защитил, и даже на отлично, но сразу было видно, что это не его сфера деятельности, сколько бы его ни наставляли. В общем, программисты вымерли. Как мамонты.
В чём преимущество OnInit
 
VPM, Опыт может быть только у каждого свой собственный, пока свои шишки не набьются - ничего не поможет. Просто нужно заниматься СВОЕЙ конкретной задачей, проблемы решать по мере их возникновения и ничего не делать на всякий случай. Зачем МНЕ нужет OnInit, зачем МНЕ нужна пассивная заявка, зачем МНЕ нужны свечи, зачем МНЕ нужны потоки, зачем МНЕ нужны коллбеки и т.д. И тогда вдруг окажется, что 99% проблем исчезнут, так и не возникнув.
В чём преимущество OnInit
 
Да просто задолбали эти криворукие своими вонючими потоками. Шибка вумные, ручонки чешутся впендюрить какую-нибудь херню, в результате простейшая, тривиальнейшая прикладная задача начинает глючить так, что и в кошмарном сне не приснится. Нет у меня никакого OnInit  и не будет - это говно тупо нафиг никому не нужно. И коллбеки нафиг не нужны - тем более, что все они глючат со страшной силой. Единственный коллбек, который использую я - OnTrade, некоторые работают даже без него. А если уж припёрло использовать какую-то хрень, которая аж до мейна начинает срабатывать, так пусть флаг поставят, анализируют его, и пока он не установлен, сразу из этого коллбека вылетают. А где надо, установят его в МОЖНО. И нет проблем даже с такими маразматическими коллбеками. Уровень подавляющего большинства посетителей форума близок к абсолютному нулю, а туде же - потоки им подавай. НА ХРЕНА ОНИ ВАМ?! С переменными та же хрень: мой скрипт может обслуживать несколько тысяч тикеров, так что переменных там, возможно, миллион - и нет проблем. Вы СВОИ задачи решайте, торговые, а не занимайтесь разной хернёй с потоками,, коллбеками, библиотеками и прочим онанизмом.
В чём преимущество OnInit
 
VPM, Что почему? Идиотизм? Потому, что фиксированное имя main для того и придумано, чтобы указать место, с которого начинает работать программа. Кого-то из криворуких бездарей это не устроило, и они изобрели ВТОРОЕ фиксированное имя, чтобы указать... правильно: место, с которого начинает работать программа.
В чём преимущество OnInit
 
OnInit по определению нужен лишь затем, чтобы что-то сделать до main. То есть это идеологический идиотизм.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Я имею в виду, что я работаю ТОЛЬКО с Квиком - что там творится на бирже, у брокера или по дороге к ним, мне насрать. И никакой аналитики давно не делаю: запустил скрипт - и пусть канает. Я ему не советчик: как против моей же шахматной программы у меня нет никаких шансов, так и против моего же скрипта.
В чём преимущество OnInit
 
Ziveleos, Я же спросил: ДЛЯ ТОРГОВЛИ на кой эта хрень нужна? ЗА КАКИМ ХРЕНОМ кому-то "до зарезу необходимо сделать что-то до начала работы коллбэков"? И кому нужно такое говно как Луа, КРОМЕ организации торговле на бирже?
В чём преимущество OnInit
 
Ziveleos, Ну на кой кому всё это надо? Кого интересуют эти несчастные переменные окружения? Заняться больше нечем?
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Да при чём тут биржа? Для меня биржей является сам Квик - именно ему я отправляю заявки, именно от него я получаю данные о сделках, всё остальное - не мои проблемы. Допустим, сам брокер замкнул пару встречных заявок друг на друга, вообще не обращаясь к бирже - какая мне разница? А версии я меняю В ИСКЛЮЧИТЕЛЬНЫХ случаях, просто боюсь этих долбаных нововведений - и без них математика на ладан дышит. Язык я и не ругаю - да, полное говно, но и его возможностей вполне достаточно для организации нормальной торговли. А торговые алгоритмы я применяю только свои. И они меня устраивают - настолько, что я уже несколько месяцев вообще не прикасался к коду. Да, там можно кое-что подрихтовать, но лень - алгоритм и так торгует намного лучше меня.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Я знаю, что системная математика здесь безобразная - чуть ли не четверть моего кода посвящена компенсации всяких глюков, что язык полное говно, что реальная работа делается вне форума, что она многодневная и что мне лично ваапще ничего из торговых алгоритмов не нужно. Скрипт можно запустить, а можно выключить. А можно и не выключать. Вот и весь необходимый набор действий.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Нафиг, нафиг! Я тут пару раз хотел организовать ветки по отладке основных утилит для торговли, вплоть до кода - там же в принципе нет ничего секретного. Такого насмотрелся - больше не хочу. С алгоритмами визгу будет на пару порядков больше. Да и не интересуют меня чужие алгоритмы - я и сам алгоритмист, причём очень хороший. По крайней мере, был таким в молодости.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Кнопка ИМЯ справа в конце каждого коммента.

Ну, я не понимаю азов трейдинга. И понимать не собираюсь. Двигать цену - тем более. Если открыть 1 сделку, на все, то она наверняка проиграет. Серебром никогда не торговал, истории не знаю.
В чём преимущество OnInit
 
VPM, Да плюньте Вы на быстродействие скрипта с локальными и глобальными. И на сборщик мусора тоже. Пусть работают как работают - это ИХ проблемы.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Так же, как и в любом другом языке. Как правило, каждая из этих конструкций имеет некоторые особенности в зависимости от конкретной задачи. В моём скрипте, например, три стека - все разные, хотя техника работы с ними, конечно, одинаковая - LIFO. Очередей не знаю сколько, но тикеры уж точно обрабатываются по очереди. Списков, кажется, нет ни одного.

Мне тоже тяжело судить какай язык - я почти полвека в программировании, любой язык осваиваю за пару часов - мне всё равно на чём писать. А здесь и выбора почти нет - Луа.

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

Нет, я как раз прекрасно знаю, что никакая локализация в луа не нужна, и ничего не засоряется для видимости и быстродействия, если специально этим не заниматься.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Да мало ли кто там чего утверждает. Послушать того же Роберто Иерусалимского, так Луа не полное говно, а лучший представитель плеяды языков программирования. Список, стек, очередь - это азбука, букварь, любой профессионал реализует это на полном автопилоте.

Я не знаю, что там за "Более эффективная реализация использует две индекса, один для первого элемента и один для последнего" - это похоже на указатели головы и хвоста в циклической очереди. А вообще доступ к очереди только "спереди" и никакого "сзади". Что до "Поскольку Lua использует для представления чисел двойную точность, ваша программа может выполняться на протяжении двухсот лет", то это бредни в стиле того же Роберто Иерусалимского. Мой скрипт может работать хоть тысячу лет, хоть миллион, и насрать ему на двойную точность. И обслуживать может несколько тысяч тикеров. И затраты памяти никакие.

Что за "баланс" и на кой он нужен?
В чём преимущество OnInit
 
VPM, А тут не о чем спорить, задача организации торговли настолько проста, что её можно реализовать даже на чистом Луа, даже при полной ущербности системной математики Квика.

Какие могут быть ЛОКАЛЬНЫЕ переменные "перед запуском основного потока main" - то мне неведомо. У меня их... ну, пара десятков, наверное, наберётся. Впрочем, сейчас посчитаю... ого, аж 34 штуки.
В чём преимущество OnInit
 
VPM, НА КОЙ "функция необходима"? Я прекрасно могу инициализировать все необходимые переменные и без этого дерьма, как и без каких-либо библиотек - и перед запуском основного потока main, и после него, и во время него. OnAllTrade также нафиг не нужен.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, Очередь, как и стек, понятия чисто алгоритмические. Но если со стеком всё просто с доступом - обрабатывается всегда  последний элемент, то с очередью всё хуже: обрабатывается первый, а потом первым становится уже второй, и вообще вся очередь сдвигается. Это затратно по времени. Если ничего не сдвигать, то первым элементом всегда будет "условно первый" - доступ мгновенный, как и в случае со стеком, но массив данных постоянно растёт. Это затратно по памяти. Наконец, если данные организовать в виде циклической очереди, как, например, организован буфер событий от клавиатуры, затрат почти нет ни по скорости, ни по памяти, но появляется риск переполнения буфера. Других вариантов, как я понимаю, в природе не существует. Вернее, можно очень эффективно реализовать очередь через список, но, строго говоря, это уже и будет список, т.е. другой тип организации данных. А про все эти insert и remove лучше сразу же забыть, как страшный сон.
В чём преимущество OnInit
 
Ziveleos, Я разве называл вторым потоком? Впрочем, неважно: поток main - он обязательный, так что первый и единственный, а всё остальное - это второй: прорисовка таблиц, коллбеки, и прочая лабуда. Прорисовка у меня вообще отключаемая - так называемый "спящий режим", всех коллбеков один OnTrade, так что в этом "основном потоке QUIK" мой скрипт находится дай бог сотую долю процента.
В чём преимущество OnInit
 
nikolz, В ЛЮБОМ случае "нет особой разницы, где Вы устанавливаете и загружаете начальные параметры  скрипта". Я миллион раз запускал скрипт и во время торговли, и когда её нет, и НИ МАЛЕЙШИХ "последствий в зависимости от места , где вы устанавливаете переменные" не наблюдалось.

Ладно уж, "рассмотрим эти варианты":
1) Да, именно "в начале скрипта присваиваем значения". Я лично полагаю, что в этом случае присвоение происходит ПОСЛЕ полной загрузки скрипта, но ДО запуска функции main. Впрочем, допускаю, что и ДО полной загрузки, но это при условии, что системную математику писали клинические дебилы. В любом случае, это примерно одна секунда.

2) Да, "в начале функции main" ТОЖЕ производятся кое-какие присвоения. И в середине тоже. Более того, они могут присваиваться даже из внешних файлов - например, номер счёта, код клиента, состояние портфеля и кошелька. Но мне и в страшном сне не может присниться ни "длительная процедура инициализации переменных, ни, тем более, чтобы в это время могли поступить данные по колбекам, и уж совсем невозможно, чтобы эти данные хоть как-то могли "оказать влияние на установку переменных". Это нужен ТАЛАНТИЩЕ, чтобы такого добиться. Просто программировать нужно уметь, хоть немножко.

3) Установка параметров в колбеке OnInit нафиг не нужна, как и сам OnInit. Лично у меня этого дерьма нет, не было и не будет. Точнее, было в самом начале моего знакомства с Луа в тренировочном скрипте, где я пытался понять, за каким хреном эта бредятина может быть кому-то понадобиться.
В чём преимущество OnInit
 
Ziveleos, Второй поток нафиг не нужен, работа скрипта - это работа интерпретатора. По крайней мере, в нормальной реализации. Я в своё время потратил довольно много времени, чтобы переместить всё, что можно, в поток main, и с тех пор практически забыл про все глюки. Для эмуляции прерываний по таймеру использую sleep, а единственное "настоящее" прерывание - OnTrade.
В чём преимущество OnInit
 
Ziveleos, OnInit нафиг не нужен. Как и весь этот маразм с двумя потоками. Лично я выбросил OnInit если не в первой, то во второй версии своего скрипта. Думаю, это наследие С++ - там тоже какие-то идиотские трепыхания идут ещё до main.
Работа нескольких скриптов с одним файлом, Выдает периодически ошибку при работе нескольких скриптов с одним файлом
 
Дмитрий, Сделайте как у меня: работа одного скрипта с несколькими файлами. НИКАКИХ проблем. :smile:  
Скрипт который выставляет заявку исходя из объема портфеля и предыдущей исполненной заявки, Возникают непонятные проблемы с запросом информации о портфеле и заявке. Постоянно возвращается nil, что бы не спросил.
 
Alexey89, Alexey89, А на кой вообще нужна getPortfolioInfo? Мой скрипт и сам прекрасно всё знает и о своих заявках, и о сделках, и о состоянии портфеля, и обо всём остальном.
Последовательность обработки функций обратного вызова
 
nikolz, За каким хреном кому нужно быстрее, чем у Вас? Ставить и снимать заявки пачками на тестовом сервере - это онанизм. У меня более 90% заявок заканчиваются сделками. Ограничение стоит не более двух заявок в секунду. Всё, что можно, вынесено в поток мейн. Скрипт без напряжения обслуживает тысячу тикеров, а "с напряжением" может и в  несколько раз больше. Всё на чистейшем Луа и нет никаких "но". Использую sleep, но не для идиотского "предотвращения блокировки ядра процессора пустыми циклами", а как таймер. Никаких "событий OC", никаких "пропусков срабатывания колбеков", никаких "задержек в обработке их сигналов в очереди", никакого "пула потоков" и прочего дебилизма.
Последовательность обработки функций обратного вызова
 
Cyber, Если у Вас много лишних денег, ир можете выставлять новую заявку за доли секунды после срабатывания предыдущей. Подобную хрень я даже комментировать не хочу. Ладно, кусочек ликбеза: НЕ БУДЕТ эта очередь выполнятся строго последовательно. Мало того, будет несколько вызовов коллбека на одно событи, и дубли эти тоже приходят как душе угодно, иногда через несколько МИНУТ.
Последовательность обработки функций обратного вызова
 
Станислав, Именно так. Вот полный код моего OnTrade:

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

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

Да, лучше по возможности максимально все в main переносить. Техника двух потоков идиотская и глючная. Я в своё время, нахлебавшись этого всего, потратил две недели на перенос всего, что можно, в поток мейна, и с тех пор не припомню ни одного сбоя в работе скрипта.
Робот-сканер нескольких инструментов в Quik Lua
 
Алексей А., Как и любой другой цикл: for или while, можно даже goto, хотя это уже извращение.
GetCell жрет память
 
kbrobot.ru, Здесь тоже ничего не течёт.
GetCell жрет память
 
kbrobot.ru, Господи, заведите невидимый нулевой столбец и запихните туда код бумаги в таблице. Именно так я и сделал, именно этот код и считывает тот самый единственный GetCell с моём скрипте.
GetCell жрет память
 
kbrobot.ru, Во-первых, зачем вообще нужен GetCell? В моём скрипте он используется только один раз, только в основной таблице и только для того, чтобы определить "настоящую" айдишку кликнутой строки, поскольку её порядковый номер в таблице может меняться - например, при выполненной сортировке по какому-либо столбцу, или при изменении видимого количества строк. Скрипт прорисовывает таблицу сам и прекрасно знает, что и в какой ячейке у него лежит.

Во-вторых, у Вас не определены ни i, ни j, ни id, ни value, ни на кой Вам вообще нужен GetCell. В-третьих, результат вызова GetCell присваивается одной и той же переменной. откуда здесь вообще "жор памяти"? Кто кого сожрал?
Как получить графу Прибыль/Убыток из getPortfolioInfoEx, часть возвращаемой таблицы пустая, хотя в визуальной таблице QUIK данные есть.
 
awkozlov, А я вообще не определяю максимально возможный лот. На кой? На срочном рынке у меня всегда как раз МИНИМАЛЬНО возможный, а на фондовом определяется по желаемому размеру ставки которая указывается скрипту в конфигурационном файле для каждой валюты. А что он там can_buy, скрипт и сам знает лучше любого брокера - пусть заполняют что хотят - их расчёты нас не интересуют.
Отладка кодов индикаторов, Отладка кодов индикаторов
 
Nikolay, А какие проблемы отлаживать в реальном времени? Во-первых, никакой print debug не позволит найти ошибки в алгоритмах торговли. Во-вторых, мой скрипт прекрасно работает как по историческим данным, так и в режиме отладки по реальным данным, а также в боевом режиме - достаточно установить флаг режима в нужное значение, т.е. поменять один символ в коде. Просто в режиме отладки по реальным данным вызывается аналог OnTrade (предполагается, что все поданные заявки немедленно исполняются), а все остальное модули работают одинаково во всех режимах. Всё прекрасно работает, очень удобно - я, например, отлаживал в этом режиме работу алгоритма как при избытке, так и при недостатке свободных денег и смотрел, как он расширяет портфель в первом случае и сжимает при втором. Да и масса других алгоритмов были отлажены именно в этом режиме.
Как получить графу Прибыль/Убыток из getPortfolioInfoEx, часть возвращаемой таблицы пустая, хотя в визуальной таблице QUIK данные есть.
 
awkozlov, Именно так. Портфель, кошелёк и даже свечи скрипт считает сам. На долю Квика остаётся getParamEx, sendTransaction, работа с файлами, да прорисовка таблиц.

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

Или:
Данный тип торговли относится к высокорискованной (т.к. в случае сильного безоткатного движения против нашей сетки произойдёт полная потеря депозита)

Или:
В нём реализована такая важная переменная, как запрет установки нового рыночного ордера ближе чем на N количество пунктов к уже имеющемуся рыночному ордеру, в одном направлении.

Ну, хоть что-то соображают. ОЙ!
Сделано это прежде всего для того, чтобы во время длительного флэта, либо когда нет активности на рынке советник не устанавливал ордера на одном уровне и в одном направлении.

ВОТ ЭТО, что ли, Вам нужно?
Страницы: Пред. 1 ... 3 4 5 6 7 8 9 10 11 12 13 ... 41 След.
Наверх