Постов с тегом "lua": 325

lua


Тестирование торговых стратегий в QUIK

    • 09 февраля 2015, 09:11
    • |
    • XXM
  • Еще
Программ, в которых можно тестировать торговые стратегии, много. Как специализированных, так и общих.
Покажу, как это священнодействие можно проделать в QUIK, на примере реверсной системы на двух EMA.

1. Копируем 2 скрипта: Test2emaSignal.lua, Test2emaEquity.lua в каталог LuaIndicators вашего нашего рабочего QUIK;
2. На график выбранного инструмента добавляем в окно 1 индикатор 2emaSignal, в окно 2 - 2emaEquity;
3. Настраиваем дату начала тестов, периоды EMA.
4. На выходе: график + файл Test2emay.csv (в каталоге QUIK-а) с результатами теста.

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

Тестирование торговых стратегий в QUIK

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

Camarilla Equation. Индикатор для QUIK. Часть 2.

    • 29 декабря 2014, 17:11
    • |
    • XXM
  • Еще
Первая часть: Camarilla Equation. Индикатор для QUIK. 26.12.2014г.
В обновленном варианте индикатора появилась возможность выбора расчета недельных уровней: 
Настройки индикатора:
вкладка «Общие» — «Пользовательские настройки» — period: D/W

 
Camarilla Equation (Daily/Weekly)

Скачать: там же.

Camarilla Equation. Индикатор для QUIK.

    • 26 декабря 2014, 14:44
    • |
    • XXM
  • Еще
Цитата из smart-lab.ru:

Я никогда раньше не торговал по Camarilla Equation, и совсем недавно только прочитал про эти уровни. Перед открытием торгов, начертил уровни H3 L3, было любопытно посмотреть как будет цена себя вести относительно них.
...
Поставил заявку по Камарилла, и через некоторое время был удивлён, как точно цена сходила!
Результат: на 300п. профит больше. Приятно. Жаль только, что всего 10 лотами зашёл… Сегодня буду изучать Camarilla Equation :)
P.S. — спасибо Gugenot!

Рисунок ниже — из запасников smart-lab.ru

Camarilla Equation. Индикатор для QUIK.

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

Номера минутных свеч внутри 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
Время проведения договорное.

Вопросы-ответы: [email protected] 

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

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

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

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

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

Вопросы-ответы: [email protected] 


Macd.lua

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

------------------------------------------------------------------------
— Macd.lua, © [email protected], 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

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