ЛуаСкрипт (Все сообщения пользователя)

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

Страницы: 1
Примеры простого торгового робота на Lua и Python от разработчиков QUIK, Примеры простого торгового робота на Lua и Python от разработчиков QUIK
 
Цитата
Anton написал:
Цитата
ЛуаСкрипт написал:
Не думаю что у разработчиков написание такого робота заняло бы более 1 го дня.
Оптимистичненько. Не более 1 года, так реальней звучит.
https://quikluacsharp.ru/quik-qlua/prostoj-ma-robot-qlua-s-vystavleniem-tejk-profit-i-stop-limit/ - Вот уже готовый торговый  робот с комментариями - если кому нужен
Актуальная документация по QUIK, последние найденные версии 2013 года
 
Цитата
Anton написал:
Цитата
ЛуаСкрипт написал:
на сайте ничего нет!!
 Ну, что-то все же есть
Большое человеческое спасибо!!
Актуальная документация по QUIK, последние найденные версии 2013 года
 
Где брать актуальную документацию?  Последние доступные PDF документы:
  1. Создание индикаторов технического анализа с помощью скриптов Lua Инструкция © ARQA Technologies, октябрь 2013
  2. Интерпретатор языка Lua Руководство пользователя Версия 2.2
Есть ещё CHM файлы QLUA.CHM  и INFO.CHM которые идут с QUIK и всё ... на сайте ничего нет!!
Русские имена переменных и функций в QLua
 
Цитата
Anton написал:
Цитата
ЛуаСкрипт написал:
расчёт стоимости актива методом ДДП, всё логично понятно, ничего запоминать не нужно
Ну это кому как. Вас не запарывает постоянно раскладку переключать?
Это по моему очень сильная профессиональная деформация .. из за некоторого неудобства в переключении раскладки пожертвовать проницаемостью кода :) Эдак можно дойти и до удаления комментариев с целью сокращения размера файлов... :)

Мелкие неудобства с лихвой перекрываются улучшением понимаемости алгоритма. Именно алгоритма и логики приложения, а не кода. Я бы даже сказал осознанности ... если вы занимались медитацией... поёмете что эт такое... когда у Вас весь код, понятия по русски, то как бы фокус мышления смещается с  заднего на передний план. с деталей на общее видение. Это как в кино камера меняет фокус, вы перестаёте видеть далёкий лес с веточками и листочками и прочими деталями, и замечаете лес речку деревню ,едущий грузовик на общем плане.

попробуйте например отрефакторить пару своих библиотек и поменять всё что можно на русский (особенно прикольно менять имена функций, объектов и методов), только замены  д.б. не вида

LogFile -> Файл1 или какой либо стёб типа "рукопись/ грамота", а соответствующие логике алгоритма, придумывание русских аналогов само по себе бывает весьма занятно
LogFile -> ЖурналДействий
LogFileDB1 -> ЛогФайлБазыДанныхЗаказов
LogFileAcsses -> ЖурналДоступа

Когда всё поменяно, имена объектов и методов продуманны...понимание алгоритма переходит немного на иной уровень. На хабре лет 5 назад кто то рекомендовал, чтобы  растормошить мозг, работать мышкой 1 день в неделю левой рукой :)
Это посильней будет.
Русские имена переменных и функций в QLua
 
есть даже интерпретатор 1С - OneScript  https://oscript.io/   который оторвали от 1C и который теперь можно использовать отдельно, без 1С.
Русские имена переменных и функций в QLua
 
Цитата
s_mike@rambler.ru написал:
Цитата
ЛуаСкрипт написал:
1. В версии Lua 5.1 ещё можно было использовать кириллические  имена функций и переменных, потом эту возможность убрали. Qlua насколько я знаю основана на версии Lua-5.1. Можно ли вернуть эту возможность в Qlua - Вы я так понимаю её  всё равно модифицируете для  адаптации к QUIK.
Т.к. QUIK и Qlua - рассчитана только на русскоязычных пользователей и её использование не русскоязычными пользователями как я понимаю не планируется, то отсутствие этой возможности вызывает недоумение. Все современные языки программирования  это позволяют ... и проблем это не вызывает. Очень неудобно писать латинскими буквами названия  облигаций и финансовых операций... это приводит к ошибкам и затемняет смысл и логику программы ...
2. Какая версия Lua используется  Quik 8 ?  
напишите элементарную программу. Она заменяет все кириллические лексемы во входном файле на их представление, скажем, в формате base64. Таким образом, с некоторыми ограничениями вы сможете писать названия функций и переменных кириллицей, а после прогона через эту программку получите допустимый луа текст.
Так всё же из коробки работало ... даже дописали синхронные функции - sinsert и sremuv , зачем убрали ... если кому то не нужно ... использовать же никто не заставляет ... тем более в финансах 1С широко используется...
Русские имена переменных и функций в QLua
 
Вод код на Python - расчёт стоимости актива методом ДДП, всё логично понятно, ничего запоминать не нужно, стильно модно, молодёжно . Русские имена не мешают поддерживать самодокументирование и последние PEP ...

В оригинальном Lua 5.1 ведь была поддержка не латинских символов, убрали только потому что надо много скриптов таскать между разными локалями... Зачем убрали QLua ? В продукте который рассчитан на русскоязычного пользователя, да и ещё в таком приложении где небольшая ошибка в логике скрипта может привести к сливу депозита !
Код
import datetime as Дата
""" Финансовые операции расчёт доходности облигаций и акций методом ДДП """
# Формулы (Лямбда-функции)
ДохаГод = lambda Год, СтавкаДДП, Деньги : Деньги/(1+СтавкаДДП/100)**Год
ЦенаАкции = lambda Дивиденды : Дивиденды * 10 # Грубая  оценка - Цена равна суммарным дивидендам за 10 лет
в_руб = lambda цена : round(цена, 2) # Округление до 2-х знаков
Купон = lambda Номинал, Доходность, КупоновВГод : Номинал/100*Доходность/КупоновВГод # Размер Купона облигации в рублях

def фСуммарныйДоход(Лет, Ставка, Дивиденды):
    """ Суммарный доход с учётом ДДП без/с учётом конечной стоимости актива """
    Цена = 0
    for год in range(1, Лет+1):
        Денег = ДохаГод(год, Ставка, Дивиденды)
        Цена = Цена + Денег
        строка = "Год: %s Доход: %s руб. Итого: %s руб. <- Дивиденды с учётом ДДП"
        # print(строка % (год, round(Денег,2), round(Цена,2)))
    return Цена + ЦенаАкции(Дивиденды) # + стоимость акции примерно равная размеру дивидендов за 10 лет

def ОблигацияДоход(Номинал, Доходность, КупоновВгод, ДатаПокупки, ДатаПогашения):
        """ Расчёт доходности облигации, Доходность в процентах """
    # return Купон
""" Вычисления """
Ставка_ДДП = 5
Лет = 15
print("Ставка ДДП =", Ставка_ДДП, "Лет = ", Лет)
Цена = фСуммарныйДоход(Лет, Ставка_ДДП, 22)
print("Итого доход от МТС Сейчас = ", в_руб(Цена), "руб.")
Цена = фСуммарныйДоход(Лет, Ставка_ДДП, 28)
print("Итого доход от ГПН Сейчас = ", в_руб(Цена), "руб.")


Вот нашёл люди сделали из Lua 5.3 даже добавили русские синонимы английским операторам, т.е. можно и оригинальные скрипты на Lua использовать и писать бизнес-логику в стиле 1С. Выложено всё на гитхаб.

http://plana.mybb.ru/viewtopic.php?id=576

https://github.com/rst256/luaRu - гитхаб

Я не сильно разбираюсь в компиляторах ... этот Lua 5.3 Ru как-то можно прикрутить к QUIK 8. например скомпилировав и заменив оригинальную DLL lua 5.1 ? Это я так понимаю вопрос к разработчикам ?

Если кто соображает как  это сделать и сделает DDL ку , то я могу взять на себя и переписать учебник, протестировать и переписать все скрипты и индикаторы которые есть в документации на QUIK. Уж больно имена переменных на латинице выглядят стрёмно и убого ... прямо как во времена TurboC 2.0 и Win3.11forWorksgroup (это который был с 32-х разрядным доступом к диску если кто забыл ;-)  )  
Русские имена переменных и функций в QLua
 
1. В версии Lua 5.1 ещё можно было использовать кириллические  имена функций и переменных, потом эту возможность убрали. Qlua насколько я знаю основана на версии Lua-5.1. Можно ли вернуть эту возможность в Qlua - Вы я так понимаю её  всё равно модифицируете для  адаптации к QUIK.
Т.к. QUIK и Qlua - рассчитана только на русскоязычных пользователей и её использование не русскоязычными пользователями как я понимаю не планируется, то отсутствие этой возможности вызывает недоумение. Все современные языки программирования  это позволяют ... и проблем это не вызывает. Очень неудобно писать латинскими буквами названия  облигаций и финансовых операций... это приводит к ошибкам и затемняет смысл и логику программы ...
2. Какая версия Lua используется  Quik 8 ?  
Примеры простого торгового робота на Lua и Python от разработчиков QUIK, Примеры простого торгового робота на Lua и Python от разработчиков QUIK
 
Спасибо за ответ!!
Примеры простого торгового робота на Lua и Python от разработчиков QUIK, Примеры простого торгового робота на Lua и Python от разработчиков QUIK
 
Вышла версия QUIK версии 8. В сопроводительной документации есть примеры торговых индикаторов написанных на Lua для старых версий.
Пользователи пытаются писать торговых роботов на Lua. Возникают проблемы с производительностью, стабильностью работы роботов и самого QUIK. По этой теме полно сообщений на этом форуме. Наличие  эталонных гарантированно работающих и правильно написанных примеров торговых роботов на кторых можно будет протестировать куски своего кода изменит ситуацию к лучшему.
1. Проблема - нет эталонного торгового робота от разработчиков - все пишут код кто во что горазд... с ошибками и косяками.
Хотелось бы чтобы разработчики написали ОБРАЗЕЦ самого простого торгового робота на Lua с комментариями, с правильной структурой, с Вашей точки зрения.
Ничего сложного просто получение данных по 1 инструменту (облигации), покупка на 10 т.р., если дёшево (пролив), затем продажа если цена выросла, затем покупка если цена опять упала. + обработка ошибок и запись их хотя бы в лог файл.
Не думаю что у разработчиков написание такого робота заняло бы более 1 го дня.
2. проблема - нет типового способа получения данных их QUIK и передачу заявок обратно, кто то пытается передавать данные через DDE, кто то через файл на виртуальном  диске и прочие извращения ...
хотелось бы чтобы разработчики написали пример как передавать данные из QUIK в EXCEL и / или Python и передавать торговые получения обратно (+ принимающий кода на VBA для MS Excell и Python), а также самый простой контроль выполнения заявок и запись логов.
Очень желательно чтобы алгоритм роботов на VBA Excell и Python был такой же как и у торгового робота на Lua. Это позволит сравнивать адекватность работы  скриптов и  разделить баги платформ и собственно самих скриптов.
3. Если вы сделаете штатный способ прикрутить Python 3 к QUIK - вообще будет супер!!

Выполнение 1,2 пунктов наверное не займёт много времени от разработчиков и не потребует вносить изменения в код QUIK и Документацию.
PS Примеры наверное можно разместить на GitHub или чёмто подобном.
Страницы: 1
Наверх