Постов с тегом "Lua": 342

Lua


Номера минутных свеч внутри 20 минутной свечи.

    • 25 декабря 2014, 12:15
    • |
    • XXM
  • Еще
Есть стратегии, по которым длинные позиции могут быть открыты только с пятой по десятую минутную свечи внутри двадцатиминутки.
Могут быть другие моменты, в которых следует учитывать номер бара меньшего тайм-фрейма внутри бóльшего тайм-фрейма. В помощь приходят индикаторы на LUA.
В качестве иллюстрации привожу пример нумерования минуток внутри 20-минуток. 
Номера минутных свеч внутри 20 минутной свечи.

Скачать: http://www.xsharp.ru/indikators

QuikSharp - интерфейс Quik Lua полностью в .NET

Представляю вашему вниманию библиотеку для работы с Quik из C#/F#/.NET — QuikSharp.

Последняя неделя показала, что мне нельзя торговать руками на такой волатильности, и заставила задуматься о более серьезном подходе к автоматизации. В итоге — пока нет доступа к Plaza, Fix и другим нормальным API — я набросал эту библиотеку.

Главная идея библиотеки — всё, что написано в руководстве к Луа работает из .NET без изменений интерфейса. Quik и Lua — недружественная территория по сравнению с .NET, хочется свести их использование к абсолютному минимуму.

Реализован и протестирован механизм обмена данными на основе TCP sockets. Ping/Pong roundtrip с Квиком занимает 190 микросекунд на моем компьютере. Также реализованы сервисные функции и несколько функций обратного вызова.

Установить библиотеку в свой .NET проект можно из NuGet. В проекте будет создана папка lua, из которой нужно запускать в Квике скрипт QuikSharp.lua.

( Читать дальше )

QUIK+LUA - от чайника до гуру.

    • 17 декабря 2014, 10:56
    • |
    • Egorax
  • Еще
Наверно многие хотели бы научиться писать биржевых роботов или автоматизировать некоторые свои биржевые операции, но пугаются самого процесса программирования, считая его сложным. Но как говориться – было бы желание…



На сегодняшний день язык LUA самый удобный и доступный способ для программирования в ИТС QUIK для начинающих программистов. Lua достаточно мощный язык для быстрого написания от простых до сложных программ. Возможность писать скрипт на самом «низком» уровне позволяет очень гибко и тонко настраивать вашего робота под вашу стратегию.

Вы решили изучить программирование?
Предлагаю индивидуальный курс по изучению языка LUA и программированию под ИТС QUIK.
Курс рассчитан на 10 занятий по 2 часа и  охватывает практически все вопросы:
— основы языка LUA
— применение языка в QUIK
— на занятиях программируем робота.
Занятия проходят дистанционно — Skype + TeamViewer
Время проведения договорное.

Вопросы-ответы: egorax@gmail.com 

QUIK+LUA - от чайника до гуру.

    • 10 декабря 2014, 12:16
    • |
    • Egorax
  • Еще

Наверно многие хотели бы научиться писать биржевых роботов или автоматизировать некоторые свои биржевые операции, но пугаются самого процесса программирования, считая его сложным. Но как говориться – было бы желание…

На сегодняшний день язык LUA самый удобный и доступный способ для программирования в ИТС QUIK для начинающих программистов. Lua достаточно мощный язык для быстрого написания от простых до сложных программ. Возможность писать скрипт на самом «низком» уровне позволяет очень гибко и тонко настраивать вашего робота под вашу стратегию.

Вы решили изучить программирование?
Предлагаю индивидуальный курс по изучению языка LUA и программированию под ИТС QUIK.
Курс рассчитан на 10 занятий по 2 часа и  охватывает практически все вопросы:
— основы языка LUA
— применение языка в QUIK
— на занятиях программируем робота.
Занятия проходят дистанционно — Skype + TeamViewer
Время проведения договорное.

Вопросы-ответы: egorax@gmail.com 


Macd.lua

    • 23 ноября 2014, 14:48
    • |
    • XXM
  • Еще
                                                       
                                                       Воскресное чтиво.
                                                       В образовательных целях.

------------------------------------------------------------------------
— Macd.lua, © hismatullin.h@gmail.com, 23.11.2014
— Короткий период: period1
— Длинный период: period2
— Количество периодов сигнальной скользящей средней: period3
— метод усреднения линий: Exponential
------------------------------------------------------------------------
Settings =
     {
          Name = «Macd»,
          period1 = 12, period2 = 26, period3 = 9,
          line=
               {
                    {Name = «Macd», Color = 8404992, Type = 1, Width = 2},
                    {Name = «Sign», Color = 32768, Type = 1, Width = 2}
               }
     }
-------------------------------
function Init()
     Macd = cached_Macd()
     return 2
end
-------------------------------
function OnCalculate(index)
     return Macd(index, Settings.period1, Settings.period2, Settings.period3)
end
-------------------------------
function average(_start, _end)
     local sum=0
     for i = _start, _end do
          sum=sum+C(i)
     end
     return sum/(_end-_start+1)
end
-------------------------------
function cached_Macd()
     local cache_EMA_long={}
     local cache_EMA_short={}
     local cache_MACD={}
     local cache_Sign={}
     return function(ind, _p01, _p02, _p03)
          local n_ema_short = 0 --теущий EMA короткий
          local p_ema_short = 0 --предыдущий EMA короткий
          local n_sign = 0 --теущий sign
          local p_sign = 0 --предыдущий sign
          local period_short = _p01
          local period_long = _p02
          local period_sign = _p03
          local index = ind
          local k_short = 2/(period_short+1)
          local k_long = 2/(period_long+1)
          local k_sign = 2/(period_sign+1)
          if index == 1 then
               cache_EMA_long = {}
               cache_EMA_short = {}
               cache_MACD = {}
               cache_Sign={}
          end
          -----------------------------------------------
          if index < period_long then
               cache_EMA_long[index] = average(1,index)
               return nil
          end
          p_ema_long = cache_EMA_long[index-1] or C(index)
          n_ema_long = k_long*C(index)+(1-k_long)*p_ema_long
          cache_EMA_long[index] = n_ema_long
          -----------------------------------------------
          if index < period_short then
               cache_EMA_short[index] = average(1,index)
               return nil
          end
          p_ema_short = cache_EMA_short[index-1] or C(index)
          n_ema_short = k_short*C(index)+(1-k_short)*p_ema_short
          cache_EMA_short[index] = n_ema_short
          -----------------------------------------------
          --считаем сигнальную
          cache_MACD[index] = n_ema_short-n_ema_long
          p_sign = cache_Sign[index-1] or cache_MACD[index]
          n_sign = k_sign*cache_MACD[index]+(1-k_sign)*p_sign
          cache_Sign[index] = n_sign
          -----------------------------------------------
          return n_ema_short-n_ema_long, n_sign
     end
end
------------------------------------------------------------------------ 

SuperScalp. Первая звезда на погонах.

    • 17 ноября 2014, 13:27
    • |
    • XXM
  • Еще
SuperScalp, версия 1.1. (начало здесь: http://smart-lab.ru/blog/207666.php)
 
SuperScalp. Первая звезда на погонах.

1. написан на QLUA, для ФОРТС, с исходным кодом, приправлен комментариями;
2. бесплатен, без ограничения сроков, «Free software». 
3. без графики и хоткеев всяких.

Настройки — в строках кода:

function getInitParameter()
       account = 'SPBFUT00995'
       classCode = 'SPBFUT'
       secCode = 'SRZ4'
       workSize = 10
       OpenSlippage = 50
       Frequency = 500
end


Скачать: SuperScalp.lua

Каждому трейдеру - свой Грааль!

    • 16 ноября 2014, 10:53
    • |
    • XXM
  • Еще
Каждому трейдеру - свой Грааль!

Как-то Lafert  спрашивал:
а треугольнички на графике- покупки и продажи? Если да, то у Вас Грааль
 
 
Даю более подробный ответ:

— LowHigh.lua © xsharp.ru, 03.10.2014
Settings = {
     Name = 'LowHigh',
     line = {
          {Name = 'Low',
          Color = 16711680,
          Type = 10,
          Width = 2},
          {Name = 'High',
          Color = 32768,
          Type = 11,
          Width = 2}}}
function Init()
     return 2
end
function OnCalculate(i)
     return L(i),H(i)
end

On-Line получение данных из Quik в Java и не только

    • 14 ноября 2014, 23:51
    • |
    • П М
  • Еще
Как говорится, делай добро и бросай его в воду.
Выношу на свет плоды своих трудов. Трудов не одного дня. На текущий момент это же решение уже работает у меня в составе робота.
Проверено.

Что это такое: с помощью скрипта QApi.lua на стороне Quik организуется сервер, который умеет принимать команды с клиента и отдавать ему результаты выполнения этих команд.

какие команды и данные может выдавать скрипт
— получение стакана по заданной бумаге (class, security)
— получение последних N свечей по заданной бумаге   (class, security, interval, count)
— получение времени сервера
— получение торговой даты
— получение статуса квика — подключен он к серверу или нет

Зачем это надо: работает достаточно быстро — десятые доли секунды, стакан отдаётся с разной скоростью, т.к. скрипт для начала ждёт чтобы стакан изменился (гарантированно последние данные), не требует на стороне квика никаких настроек и открытых графиков. всё что надо — запустить скрипт.

( Читать дальше )

Немного про приказы WLD4 и еще меньше саморекламы.

    • 05 октября 2014, 18:30
    • |
    • XXM
  • Еще
Основные приказы WLD4 состоят из комбинаций двух групп слов:
1. Buy, Sell, Short, Cover;
2. AtMarket, AtClose, AtStop, AtLimit.
и дополнительно двух команд: Sell- и CoverAtTrailingStop.
Всего их — 18.
Немного про приказы WLD4 и еще меньше саморекламы. 
BuyAtMarket — Вход в длинную позицию на открытии Бара.
BuyAtClose — Вход в длинную позицию на закрытии Бара.
BuyAtStop — Вход в длинную позицию, если цена достигает указанного StopPrice. Позиция будет открыта, если цена пересечет, или превысит указанный StopPrice.
BuyAtLimit — Вход в длинную позицию, если цена достигает указанного LimitPrice. Позиция будет открыта, если цена пересечет, или снизится до уровня LimitPrice.


( Читать дальше )

SuperScalp - новобранец полка приводов для QUIK.

    • 03 октября 2014, 09:11
    • |
    • XXM
  • Еще
Приводов для быстрого ввода заявок так много, что времени нет для их рассмотрения.
Несть числа им, да и обзоров море:
1. smart-lab:  Статья: анализ скальперских приводов
2. smart-lab:  Супер список приводов для торговли на бирже!!!
3. 2stocks  :  На выбор скальперу — обзор 14 приводов
4. quik        :  Полезные ссылки
А вот простого, как «три аккорда», незатейливого — не было.
Теперь он есть:
SuperScalp - новобранец полка приводов для QUIK.

1. написан на LUA, с исходным кодом, приправлен комментариями;
2. бесплатен, без ограничения сроков, «Free software».
3. без графики и хоткеев всяких.
Настройки — в строках кода:
  • account = 'SPBFUT00R86' — код торгового счета
  • classCode = 'SPBFUT' — код класса
  • secCode = 'SRZ4' — код бумаги
  • WorkSize = 10 — рабочий размер
  • OpenSlippage = 50 — проскальзывание
  • FREQUENCY = 500 — частота привода (в миллисекундах)
Скачать: SuperScalp.lua
UPD 04.10.2014г. Привод написан для FORTS.
 
 
 

....все тэги
UPDONW
Новый дизайн