Michael Bulychev пишет: добрый день. в присланном файле только это:
Код
require "iuplua"
При этом:
Цитата
Дмитрий Минеев пишет: Добавьте маску c \путь\\?.dll в package.cpath Это уже сделано
Где-то не сходится.
Если Вы копируете библиотеки в папку со скриптом, то: package.cpath = getScriptpath() .. "\\?.dll;".. package.cpath Либо вместо getScriptpath добавьте правильный путь к библиотекам
Никто не обратил внимание на мое решение, а напрасно. Зачем отсылать что-то на сторонний сервер, почему не поставить этот сервер на своем компе и забирать эти сообщения у своего сервера? Быстро, безопасно и бесплатно. Подумайте на досуге.
полагаю, что серверу брокера это делать очень накладно, поскольку он тогда должен обрабатывать все ордера на бирже. ------------------------------- При этом получится что все брокеры будут считать одно и тоже для всех сделок биржи. Это вообще бессмысленно. --------------------------------------- Поэтому это делает сервер биржи, так как он может определить направление при урегулировании сделки и выставить его в поток обезличенных сделок.
Михаил Филимонов пишет: Потому что с Trans2quik нельзя получать текущую рыночную информвцию
Естесственно. Trans2quik - механизм подачи транзакций Текущая рыночная информация отлично приезжает по DDE
А почесать левой ногой правое ухо?
Я Вас правильно понял, что Вы успешно и долго и много зарабатываете на опционах, а сюда пришил потому-что хотите свою торговлю на опционах автоматизировать? ----------------------------------- Если так, тогда понятно. ----------------------------------- Как я понял , вы не только много и долго зарабатываете на бирже на опционах, но еще и много и долго разрабатывали софт. --------------------------------------- Если так, то тогда понятно Ваше негодование плохим бесплатным софтом. ---------------------------------- Но позвольте вопрос? -------------------------- Если Вы много и долго, то может вам заказать софт и не тратить время на треп на данном форуме?
Михаил Филимонов пишет: Если Вы зарабатываете столько, что не можете оплатить работу через шлюз, то тогда, конечно, - "костыли"! Но,я, прежде чем работать через шлюз, хочу воспользоваться более простым способом (к сожалению в MetaTrader нет опционов) для проверки торговой системы.
Полагаю,что Вы хотели сказать, что мечтаете зарабатывать на бирже много. ---------------------------------------------------- Если же Вы зарабатываете на другом месте, а на биржу приносите свои деньги, то Вы сольете их и без шлюза и со шлюзом. ----------------------------------------------------------------- Молодым солдатам всегда думается, что его пуля еще не отлита.
Все "языки", прилагаемые к платформам для торговли на Бирже (Lua, MQL5 и прочие) - это прилаживание костылей. Должно быть полнофункциональное API, чтобы программист (на удобном для него языке) мог написать и отладить ЛЮБОГО робота! В качестве примера приведу CGate API Московской биржи.
Попробуйте посчитать стоимость системы, работающей через шлюз. (можно просто почитать цены на сервер квик или расценки разработчиков S#) Возможно тогда и костылям будете рады.
что такое инструмент? На фондовом рынке под этим понятием понимают акции, фьючерсы и опционы см для примера здесь: http://moex.com/ru/derivatives/contracts.aspx?p=act ------------------------------------- А инструментом вилы называются на сенокосе. ----------------------------------- Поэтому Вилы Эндрюса - это скорее индикатор. ------------------------------------- Если нужен индикатор - пишите на почту.
Есть ли какое приложение для экспорта в эксель необходимых значений любого индикатора технического анализа из графика?, Хочу экспортировать уже готовые значения индикатора та в эксель через ДДЕ, также как из таблицы котировок экспортирую данные.
Если хотите сами заняться конструированием роботов и исследовать их на истории, то возьмите амиброкер. В нем есть все индикаторы КВИК и даже больше. Есть оптимизация многопоточное исполнение Есть проблемы, но до них Вы дойдете не очень скоро.
нужен робот аналитик на луа(без выставления заявок, только уведомление в квике и в мэйл при срабатывании индикатора), сколько это будет стоить, есть набор из 15 инструментов, для каждого инструмента 4 периода - мес, нед, ден, час, и 3-4 стандартных индикатора квика условия срабатывания которых надо проверять и оповещать при срабатывании.
Отвечу на поставленный в блоке вопрос. такой робот будет стоить по меркам тусующихся на форуме дорого. ------------------------------------------------------- чтобы ответить точно сколько, надо подробно разработать тех задание. ------------------------------------------------------ Чтобы был более понятен мой ответ приведу аналогию. ----------------------------------------------------- Попробуйте ответить однозначно на вопрос: Сколько будет стоить автомобиль? После этого начните спрашивать из чего делается руль и какой он формы. ---------------------------------------------------
Николай Камынин пишет: Почему игрушка? Потому, что он не может самостоятельно торговать.
Смотря что подразумевать под словом торговать. Если торговать=зарабатывать, то да не может. Если торговать= открыть позицию на опционах, то может. Далее можно дорабатывать до бесконечности. К тому же используется бесплатная платформа https://github.com/hacktrade/hacktrade За аналогичную некоторые деньги просят http://www.kamynin.ru/archives/6145 Прошу прощения, что порчу бизнес.
Извинения принимаю. Но Вы ничего не портите, даже наоборот. Хочу заметить, что бесплатно работаю лишь рабы. ------------------------- Выставить заявку - это отправить транзакцию. торговать - это определить, когда это выгодно сделать . Но это уже другая история. Опционный робот - это самый сложный робот , это мое мнение, но Вы можете торговать и бесплатным. Дороже будет.
Ну что, похвально и такой робот-игрушка имеет место быть. --------------------------- Почему игрушка? Потому, что он не может самостоятельно торговать. -------------------------------------- Поэтому повторю вновь - робота на опционах написать сложно любителю игры на бирже. --------------------------------------- Вот пример робота, который не игрушка http://lowrisk.ru/option_blog/robot_panda-v-dejstvii/ -----------------------------------
IndiQUIX является также и конструктором торговых роботов, так как используя встроенный математический и логический аппарат Excel можно создавать любые торговые алгоритмы и запускать их в торговлю через Quik. Программа может работать вместе с торговым роботом SuperADX и терминалом Quik или с другим роботом, читающим текстовые файлы.
Можно купить там же робота, который считывает значения 1, -1, 0 из ячеек Excel и открывает позиции в квик. Опций там много, управление капиталом, автостоп, частичные выходы из позиций по тейк-профиту, оповещения и др. В общем, кому надо, тот поймет. Другие пусть пилят велосипеды...
В том то и дело, что Вы предлагаете купить одно потом из этого что-то попадет в другое потом купить еще одно которое из файлов читает сигналы потом освоить первое второе и третье и еще написать на excel (сомневаюсь что бмногие умеют программировать в ехсель. Потом все это запустить получить ошибку и послать все это дальше. Чтобы не быть голословным, напишите последовательность действий для приведенного выше примера и покажите картинку робота. Примеры роботов на моей платформе можно посмотреть на моем сайте. www.kamynin.ru При этом, ничего кроме qUIK его индикаторов и платформы на луа я не использую, а пример программы я написал выше.
знаю QLUA и MQL5 Особых тонкостей в QLUA нет. скорее есть особенности LUA и QUIK (относительно MT5) Вы быстро сами их пройдете, так как разрабатывали любой сложности задачи на MQL5 А вот делать робота на опционы, если это не робот-игрушка, - это сложная задача За "так" никто не сделает.
можно , написав скрипт, который выполнит действия по запуску квика, открытию таблицы со скриптами луа и запуску скрипта. для этого можно использовать AvtoIt (когда то так делал управление параметрами графиков и перебор инструментов)
Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
Gridmer пишет: На упомянутой странице IndiQUIX есть видео с примерами, там и пересечение индикаторов, и пробои уровней, и торговля по нескольким таймфреймам, и пирамида, и слежение за крупными заявками. Я не понимаю зачем городить велосипед, когда есть все готовое, удобное и стоит копейки. В этих тактиках нет макросов, все можно написать формулами.
Пока Вы на своей платформе будете создавать все требуемое вручную, пройдет много времени, еще и тестировать надо будет. Доля скоростных роботов невелика, и, поверьте, лучше тогда изучить луа или C++.
Полагаю, что Вы согласитесь со мною в том, что если кто-то чего-то не понимает, то это его проблема. Поэтому я все же попробую Вам объяснить 1) Читаем про IndiQUIX -Утилита для импорта графиков из QUIK в Excel - IndiQUIX – это программа, позволяющая экспортировать любые графики, в том числе индикаторы и осцилляторы из Quik в Excel. Как Вы это понимаете? Я -так - это программа, которая позволяет скопировать графики из QUIK в Excel. После такого копирования Вы можете что-то считать в экселе используя числовые данные этих графиков. И ВСЕ Вопрос при чем здесь роботы? Робот - это программа которая может автоматически совершать торговые и вспомогательные действия на рынке. Вопрос Какие действия торговые совершает IndiQUIX или Excel Ответ - никакие ---------------------------------------- Возьмем пример из предыдущего ответа BUY: fastMA[1] < slowMA[1] and fastMA[0] > slowMA[0] and r[1]<50 and r[0]>50 SELL: fastMA[1] > slowMA[1] and fastMA[0] < slowMA[0] and r[1]>50 and r[0]<50
Здесь используются три графика для автоматической отправки на биржу(через брокера) торговых заявок для покупки и продажи активов при наступлении указанных условий. Они никуда из QUIK не копируются, т е время тратить не надо. Да и смотреть на них тоже смысла нет, так как заявки отправляются автоматом. --------------------------------------- А в Вашем вариант: Будите руками тыкать в квик глядя в excel? флаг Вам в руки. Но роботы здесь не причем.
Фёдор Сухов пишет: а вот, если надо вот такой немножко посложней: ------------------------------------------------------------------
Код
PLOT: fastMA=EMA(5,close)
PLOT: slowMA=EMA(21,close)
PLOT: r=RSI(14,close)
BUY: fastMA[1] < slowMA[1] and fastMA[0] > slowMA[0] and while ( r[1]<50 and r[0]>50 )
SELL: fastMA[1] > slowMA[1] and fastMA[0] < slowMA[0] and while ( r[1]>50 and r[0]<50 )
http://strategy4you.ru/prostaya-strategiya-foreks/strategy-forex-metod-bagovino.html Если можно так как я описал, то, возможно я Вам клиента нашёл
первая часть формул будет почти такой же: ------------------------------------ 1) fastMA(1)< slowMA(1) & fastMA(0) > slowMA(0) --------------------------------------------------------------- 2) fastMA(1) > slowMA(1) & fastMA(0) < slowMA(0) -------------------------------------------------------------------- только формулы для BUY и для SELL помещаются в отдельные файлы. Т е Вы создаете библиотеки сигналов BUY и sELL и STOP и TAKE и SHORT и COVER а потом просто указываете в роботе какие сигналы вы хотите использовать. ----------------------------------- Вообще-то я не понял на каком Вы языке написали. могу лишь догадываться, что это дедушка метасток. ------------------------------- Откровенно сказать я его уже забыл основательно . ---------------------------- поэтому поясните , что Вы хотите сделать этой записью: ------------------------------- and while (r[1]<50 and r[0]>50 ) -------------------------------------------
Я знал, что вы об этом спросите, но дело не в языке Метасток или Омега Ресёрч. Я просто хотел реализовать ожидание пересечения уровня "50" индикатором RSI? после пересечения средних, т.е. пересекли и ждём сигнала от RSI, хотя, может быть и одновременное пересечение со средними.
Ожидание пересечения уровня запишется так же как и индикаторов т е в итоге получим запись: BUY: fastMA[1] < slowMA[1] and fastMA[0] > slowMA[0] and r[1]<50 and r[0]>50 SELL: fastMA[1] > slowMA[1] and fastMA[0] < slowMA[0] and r[1]>50 and r[0]<50 скобки можно и квадратные.
Фёдор Сухов пишет: а вот, если надо вот такой немножко посложней: ------------------------------------------------------------------
Код
PLOT: fastMA=EMA(5,close)
PLOT: slowMA=EMA(21,close)
PLOT: r=RSI(14,close)
BUY: fastMA[1] < slowMA[1] and fastMA[0] > slowMA[0] and while ( r[1]<50 and r[0]>50 )
SELL: fastMA[1] > slowMA[1] and fastMA[0] < slowMA[0] and while ( r[1]>50 and r[0]<50 )
http://strategy4you.ru/prostaya-strategiya-foreks/strategy-forex-metod-bagovino.html Если можно так как я описал, то, возможно я Вам клиента нашёл
еще хотел заметить. А каким образом Вы заявки отправляете на биржу в Вашем случае. В моей системе это делается автоматом . Ничего не надо программировать. Надо лишь указать сколько денег тратить. А как в вашем случае?
Gridmer пишет: Ну, сравнение с лыжами и вертолетом несколько лукавое. Для большинства индикаторных роботов задержка в несколько секунд не критична, а вот мощь и простота Excel - это хорошая помощь. В Вашей технологии, что будет еще для написания формул, кроме операций сравнения чисел?
Excel - хорошая вещь но не для реальной работы Чтобы предметно обсудить проблему, назовите конкретно какие формулы вы используете в роботе из Excel и я их создам в платформе. Могу даже сделать доступ в R систему. -------------------------------------------- Так какие же формулы Вы используете в роботах?
Фёдор Сухов пишет: а вот, если надо вот такой немножко посложней: ------------------------------------------------------------------
Код
PLOT: fastMA=EMA(5,close)
PLOT: slowMA=EMA(21,close)
PLOT: r=RSI(14,close)
BUY: fastMA[1] < slowMA[1] and fastMA[0] > slowMA[0] and while ( r[1]<50 and r[0]>50 )
SELL: fastMA[1] > slowMA[1] and fastMA[0] < slowMA[0] and while ( r[1]>50 and r[0]<50 )
http://strategy4you.ru/prostaya-strategiya-foreks/strategy-forex-metod-bagovino.html Если можно так как я описал, то, возможно я Вам клиента нашёл
первая часть формул будет почти такой же: ------------------------------------ 1) fastMA(1)< slowMA(1) & fastMA(0) > slowMA(0) --------------------------------------------------------------- 2) fastMA(1) > slowMA(1) & fastMA(0) < slowMA(0) -------------------------------------------------------------------- только формулы для BUY и для SELL помещаются в отдельные файлы. Т е Вы создаете библиотеки сигналов BUY и sELL и STOP и TAKE и SHORT и COVER а потом просто указываете в роботе какие сигналы вы хотите использовать. ----------------------------------- Вообще-то я не понял на каком Вы языке написали. могу лишь догадываться, что это дедушка метасток. ------------------------------- Откровенно сказать я его уже забыл основательно . ---------------------------- поэтому поясните , что Вы хотите сделать этой записью: ------------------------------- and while (r[1]<50 and r[0]>50 ) -------------------------------------------
ну, если образно сравнить, то это как бежать в гору на лыжах ( IndiQUIX) или на вертолете (моя платформа - KAMNIK) ---------------------------------------------------------------- если конкретно, то в KAMNIK нет никакого экспорта, работаем в QUIK. ---------------------------- скорость QLUA+CИ (Excel - скорость желает быть) не надо знать языки программирования и кучи особенностей обращения к функциям транзакций хранилищ колбеков и прочих премудростей программистов. (в Excel - надо знать как минимум бейсик) -------------------------------------------- Надо знать рынок и свою мечту.
Добрый день, изучаю потребность в следующей разработанной мною платформе для создания роботов для qUIK ---------------------------------- Достоинство - не надо изучать премудрости LUA,QLUA,QPILE,C,C# и т д. Просто пишем свой любимый алгоритм на привычном и понятном языке. ----------------------- Пример: хотим купить, когда индикатор X пересекает индикатор Y снизу вверх. пишем:
BUY: X>Y
хотим продать , когда обратно Y>X пишем
SELL: Y>X
т е робот будет состоять из 2 строк. Вы запускаете его как скрипт луа и он торгует. Роботов можно печь как пирожки по десятку в день. --------------------------------------------------- Желающие приобрести подобную платформу просьба обращаться на мою почту, которую можно найти на моем сайте www.kamynin.ru, либо на форуме.
OnCalculate вызывается на каждую обезличенную сделку, а getParamEx читает из срезов ТТП , ТТП обновляется илшь при изменении и если данные еще не устарели в пришедшем срезе Т е расчет по OnCalculate и по getParamEx скорее будут не совпадать, а иногда совпадать.
Пардон, действительно, нет надобности обновлять историю которая уже есть в терминале. Было бы хорошо, если бы история в терминале в начале сессии не обновлялась, а добавлялась.
попробую добавить свою ложку в вашу бочку. ------------------------------------- Полагаю, что речь идет о реальном времени. Т е рассмотрим реальную торговлю, а иначе нет смысла вообще в этой дискуссии. ---------------------------------------------------- Обмен сообщениями сервера и терминалов осуществляется асинхронно. Свечи идут от сервера синхронно с неопределенность в одну сделку и один тайм. Свечи формирует сервер на основе двух условий - тайма и события(сделки внутри тайма). Следовательно какая очередная свеча должна быть, мы знаем и без сервера (если время у нас точное) ------------------------------------------------ Если свечи нет, то либо время не то, либо нет событий. Свечи - это нелинейное сжатие данных задним числом. Т е свеча всегда есть , когда пройдут все события включаемые в нее и завершиться тайм. ------------------------- Поэтому на стороне терминала невозможно знать точно текущее состояние на сервере(т е на бирже) Запрашивать сервер о количестве свечей не имеет смысла, так как мы это знаем с точностью до последней свечи (последнего тайма и последней сделки)
Николай Камынин пишет: Если надо работать с очередями с 5000 элементов, то надо просто написать спец модуль такой очереди для луа на СИ. ------------------------------------------------- Я делаю именно так для обработки больших массивов, очередей, списков, пулов, ну и т д --------------------------------- Полагаю, что если чел смело берется за потоки с очередями в 5000 элементов, то создать спец модуль очереди для него - раз плюнуть.
Мне кажется что различные очереди в скрипте как раз проще делать на Lua.
Если важно ПРОЩЕ, то, безусловно, Луа, но если важно БЫСТРО то , безусловно, СИ Но для очередей в 5000 элементов - важно быстро, так как иначе - нет смысла .
Deserf пишет: Насколько я понимаю, платформа Quik в скрипте QLua не в состоянии отследить ВСЕ выполненные сделки? Если сделка одна по одной цене, тогда еще хорошо, но по двум-трем ценам, то скрипт опускает хобот, поймав только одну цену, ее лоты и цену
Нет, скрипт поднимает заднюю ногу и писает на своего создателя.
стакан - это отображение очереди заявок. очередь заявок формирует сервер биржи. Он же производит исполнение сделок. Так вот, когда приходит заявка на покупку по цене выше лучшей цены продажи, то она в стакане должна встать выше лучшей цены продажи. Но она туда не ставится а производится совершение сделок и удаление из очереди заявок на продажу которые удовлетворяют данную заявку на покупку. Вот эти состояния очереди и не передает брокерам сервер биржи. т е такие не уравновешенные стаканы клиенты брокеров не видят. ----------------------------------- Как правило, сервер брокера транслирует клиентам не стакан а лишь изменения в стакане (про квик не знаю, но так делает транзак). Т е в терминале клиента тоже возникают момент удаления, перемещения и замещения записей. Если состояние изменяющегося На терминале стакана доступно клиенту, то будем видеть переменное число записей в стакане. Таким образом, те состояния стакана, которые видим в терминале - могут содержать переходные состояния с переменным числом элементов. Такой вид стакана - это не реальное состояние очереди, а техническое состояние таблицы на стороне терминала. Т е на сленге можно назвать это мусором. Показ такого мусора никто не регламентирует.
еще раз повторю для любителей справочника: float -действительное 4 байта. точность 7 значащих цифр. double -действительное число с двойной точностью 8байт точность 15 значащих цифр, так как мантисса хранится в нормализованном виде long double- длинное действительное 10 байт. точность 19 значащих цифр. ---------------------------------- Дополню. проблема скорее всего у Вас будет не с точностью(погрешностью), а с тем что перевод из десятичной формы в двоичную и обратно очень часто не может быть выполнен точно. Поэтому давным давно для финансовых операций фирма IBM предложила и долго использовали двоично-десятичную математику в которой финансовые операции ( а на бирже лишь такие) всегда вычисляются точно. Но это в прошлом.
user пишет: Ту информацию, что ближе к спреду надо бы обновлять более приоритетно.
При чём тут приоритетное обновление?! Есть правила торгов, согласно которым исполняются ордера. Согласно этим правилам, ордера всегда исполняются последовательно (пусть даже по несколько штук в единицу времени) в порядке очереди. Исполнение ордеров приводит к изменению стакана таким же образом в строгой последовательности. Если соблюдать эту последовательность изменений при отображении "стакана", то никогда даже при частичном обновлении "ценовых уровней" не возникнет пересечения котировок. Отсюда вытекает вывод, что в QUIK эта последовательность изменений строк в "стаканах" нарушается.
Предположу, что не совсем так. Просто сервер биржи не транслирует стакана, пока не урегулирует очередь. Но обновление очереди на сервере QUIK или в терминале может проходить без запрета и мы видим промежуточное состояние стакана. Но это состояние уже прошло, как и много других до того как мы это увидели. Кроме того, право разработчика сделать так как он считает нужным, поскольку нигде не регламентируется работа КВИК с очередями.
Попробуйте так: ------------------------------ local t=getSecurityInfo('',left.name) if t~=nil then local ClassCode=t.class_code if ClassCode~=nil and type(ClassCode~="table") and ClassCode~="" then Subscribe_Level_II_Quotes (ClssCode, left.name) end end
Рекомендую 1) поставить на комп луа со SciTE. 2) без квика на луа сделать простые примеры с таблицами, с циклами, с печатью c фалами. 3)После того, как будет все понятно и просто, переходите к чтению документации по QLua и делайте простые примеры но на квике с таблицами циклами файлами. 4) После того, как будет все понятно и просто, переходите без луа и без квика к написанию своего алгоритма. 5) После того, как будет все понятно и просто с алгоритмом, переходите в QUIK и пишите на луа то о чем мечтаете. Успехов в обучении
Deserf пишет: А как же тогда замену информации провернуть, тем более я раньше это делал?
Проще это делать так: ----------------------------- 1) создаете таблицу 2) читает в нее все из файла 3) меняете в таблице все, что хотите 4) пишите таблицу в файл (режим "w") ----------------------------- и будет Вам счастье
можно и так local file = io.open(ImyaCFGFaila, "w+") file:write("22") file:flush() file:close() ------------------ file:seek("set", 15) - смещает на 15 байт - вот эти байты вы и видите в редакторе.