Блог им. Albus

Робот по скользяшкам

Написал для всех желающих робота-советника. Он автоматически анализирует множество акций по следующим индикаторам:
Мувинг с долгим периодом.
Мувинг с коротким периодом.
Робот по скользяшкам
Робот не торгует, только анализирует рынок.
В КВИКе он выглядит так:
Робот по скользяшкам

Столбец «Sila|Slabost»
Если акция торгуется выше длинного мувинга, она получает значок «Sila». Это означает, что на данном участке графика покупателей было больше чем продавцов. 
Если акция торгуется ниже длинного мувинга, она получает значок «Slabost». Это означает, что на данном участке графика продавцов было больше чем покупателей.
Столбец «Trend Bolshoy»
Показывает куда идёт большой мувинг: вверх или вниз.
Если большой мувинг растёт, значит тренд бычий. 
Если большой мувинг падает, значит тренд медвежий. 
Столбец «Trend Malenkiy»
Показывает куда идёт маленький мувинг: вверх или вниз.
Если он растёт, значит малый тренд бычий
Если он падает, значит малый тренд медвежий.

У вас есть основания верить в рост акции, если у неё:
1. Sila
2. Большой Trend UP
3. Малый Trend UP

У вас есть основания верить в падение акции, если у неё:
1. Slabost
2. Большой Trend DOWN
3. Малый Trend DOWN

Важное предостережение!
Этот робот задуман как первоначальный (!!!) анализ для тех, кто смотрит на мувинги. Здесь нет фильтра боковика (пилы), нет анализа перекупленности-перепроданности, нет анализа силы тренда.
В нынешнем виде он НЕ САМОСТОЯТЕЛЕН!
Поэтому не возлагайте на этого робота больших надежд. Не забудьте использовать другие индикаторы, для удачной торговли одних этих идей вам не хватит! 

Робот состоит из двух файлов:
Moving Bot.lua  — это сам робот, который надо запускать. В КВИКе это делается так: Сервисы->Lua скрипты->Добавить
Indikator Moving Average.lua  — это файл с расчётом индикатора Moving Average. Его надо положить в ту же папку, где вы положили Moving Bot.luaЗапускать его в КВИКе не нужно, он сам подтянется в работу.
----------
Скачать робота:
yadi.sk/d/2OGT9LkR3MXzMZ
----------
По умолчанию в коде стоят такие настройки (их можно менять).
Период — недельный.
Длинный мувинг=52 (в году 52 недели, поэтому большой мувинг показывает среднюю цену за год)
Короткий мувинг=13 (в квартале 13 недель, поэтому малый мувинг показывает среднюю цену за квартал)
Это продуманное решение дать по умолчанию крупный тайм-фрейм, потому что чем старше тайм-фрейм, тем лучше работает теханализ. Периоды выбраны тоже осознанно, согласно календарным периодам. 
Список акций, таймфрейм и периоды мувингов задаются здесь:
Робот по скользяшкам
Если вы сочтёте этого робота полезным и захотите, чтобы в нём появились дополнительные аналитические элементы, пишите в комментах. Я планирую его дорабатывать и сделать мощным инструментом с большими возможностями.

Примечание.
Растущий тренд идентифицируется так: текущее значение мувинга выше предыдущего и предыдущее выше поза-предыдущего.
Падающий тренд: текущее значение мувинга ниже предыдущего и предыдущее ниже поза-предыдущего.
В противном случае будет «NO TREND». Это когда мувинг ни растёт, ни падает.
★78
36 комментариев
Фьючерсы показывает? Ртс?
avatar
SAVas2005, нет. Только акции. На валютах и фьючерсах не заработает.
Albus,  почему?
avatar
Чужой, перебор акций и фьючерсов делается в коде слегка по разному.
Например вот эта строчка:
for sec in string.gmatch(ticker_list,"%a+") do
(это перебор акций из списка одна за другой)
на фьючерсах будет слегка иной. Поэтому надо или код усложнять, или выкладывать две редакции робота: одна на акции, другая на фьючи.
Albus, фьючи рулят))
avatar
У фьючей недельный тайм фрейм бесполезно брать. Там ликвидность всего то пару месяцев до экспирации
avatar
Робот то покупает акции или вручную надо?
Настройка стопов?
avatar
vadim ri, только анализирует. Торгового блока нет.
Какой же это тогда робот? Это индикатор
avatar
vadim ri, советник)

avatar
VladMih,  интересно как отнесется автор топика
avatar
Чужой, ок. Пусть будет робот-советник. 
В любом случае спасибо. Но торговый блок надо сделать позднее
avatar
А вообще три столбца мало. Я рисую на своих графиках 5 скользящих для поиска дна и начала тренда
avatar
Хорошая вещь. Акции не торгую, но сразу захотелось сделать вот что: количество недель когда произошло пересечение скользящих. Потому, что в самом начале хорошо бы зайти в начале тренда, а если тренд достаточно долгий — ждать разворота.
avatar
Хм, т.е. это же таблицы квиковские обычные, и на них можно вешать фильтры по значениям полей… это получается можно какой угодно гибкий скринер в квике замутить чтобы отображал инструменты с интересными тебе вещами удобно. Это ж блин красота… одно жалко — нет у меня в планах внутренний язык учить)) — через c# это можно как-то сделать?))
avatar
Replikant_mih, честно говоря не знаю. Я не программист. Луа выучил еле-еле.

Albus, Ну в квике есть фильтры в таблицах, скрыть если в ячейке, например, не содержится текст «ABC» — в этой таблице же можно тоже так сделать? и значения в соответствующих столбцах пересчитываются на каждой свече/тике? 

 

Если оба да — то это суперкруто!)

avatar
Replikant_mih, оба вопроса Да ))
Albus, Аа, забыл 3-й вопрос добавить про то, как оно справляется с большим кол-вом тикеров)), но в любом случае это очень и очень здорово!
avatar
Replikant_mih, я же код выложил :)
Albus, Ну именно в этом советнике мне сама идея внутренняя не айс, а так я язык не знаю.
avatar
 Идея с советнике конечно сомнительной ценности)), но сама возможность крутая))
avatar
Две идеи:
1. Сделайте ещё один столбец ( с последним изменением ( с какого числа такие значения)… что б можно было отсортировать по дате...)
2. Сделайте уведомления когда например совпадут три значения... Sila Большой Trend UP
Малый Trend UP  
3. Добавьте индексы ММВБ РТС Сырьё и валюты…
Преобразуйте текст в ANSI, и тогда можно будет использовать кириллицу для надписей в таблице.



avatar
bestt, спасибо! Попробую
Albus, ошибку нашел у вас
копировали строки кода и не поменяли в условии переменные. исправьте сразу картинка меняется по Алросе, роснефти и сургут-преф
avatar

if mov0>mov1 and mov1>mov2 then
trend_small=«TREND UP»
Highlight(t_id, line_count_table[sec], 3, 32768, 16777215, 10000)
elseif mah0<mah1 and mah1<mah2 then
trend_small=«TREND DOWN»
Highlight(t_id, line_count_table[sec], 3, 255, 16777215, 10000)
else
trend_small=«NO TREND»
end

avatar
vadim ri, спасибо. Перезалил.
Интересная прога.

avatar
Как-то странно ведёт себя бот.
Если запустить без изменений, то стартует и выдаёт ошибку: (Moving Bot.lua:48: attempt to index a nil value (field '?')  ). Выглядит это так

Если уменьшить количество акций до шести, то всё работает.

Очень странно, скорее всего опять арковские разработчики что-то сломали))).
Может вы знаете, в чём проблема и как это можно исправить?
(quik 10.0.1.18)


avatar
Нашёл в чём проблема. Теперь Бот работает.
avatar

теги блога Albus (Игорь Китаев)

....все тэги



UPDONW
Новый дизайн