Viacheslav Merten

Читают

User-icon
53

Записи

28

Телеграм-бот для анализа акций

Приветствую, коллеги!
Хочу представить вам свою «игрушку» — телеграм бота, который делает анализ исторических данных акций и выдает сигнал к действию: ПОКУПАТЬ, ПРОДАВАТЬ, ДЕРЖАТЬ. Что бы было проще рассказать о том, что за инфу выдает бот, ниже картинка сигнала и собственно сам сигнал:
Телеграм-бот для анализа акций

СРЕДНЕСРОЧНЫЙ СИГНАЛ

Дата: 2022-09-21
Тикер: AAPL
Позиция: SHORT
Сигнал: ПРОДАВАТЬ
Цена входа: 153.72
Целевая цена: 142.66
Прогноз прибыли: 7.19%
Прогноз даты: 2023-03-19
Объем сделки: 5%
Уровень риска: СРЕДНИЙ
Точность сигнала: 63.64%

Начнем с картинки.

Над графиком информация о последней завершенной торговой сессии: тикер, дата, цена закрытия и изменения цены по отношению к предыдущему закрытию. Далее, график. Красная (или зеленая, если это «лонговый» сигнал) линия — это исторические данные, а светло-красная(или светло-зеленая, для «лонгового» сигнала) линия — это одно из множества возможных движений цены в рамках данного сигнала.



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

Нужен компилятор Lua для Квика 8

Добрый день, коллеги!

Такой вопросик. Нужно скомпелировать бота под квик 8. Компилятор который работал под семеркой не «канает». Подскажите решение программисты?
  • обсудить на форуме:
  • Quik Lua

BullBearBot испытание. День 4

Доброе утро, коллеги!

Вчера был четвертый день испытания бота на профпригодность. Опять у меня получился разрыв в днях тестирования, причиной этому послужило то, что в понедельник бот отработал на «тройку с жирным минусом»! Во вторник и среду, я экспериментировал с вариантами объемов открываемых позиций, их наращиванием и сокращением, а так же пробовал различные условия для «переворотов». В итоге, уже на «вечерке» среды у меня сложилась нужная композиция и вчера я запустил бота в штатном режиме. Результат меня поразил! С учетом того, что вчера я не увидел «ярких» движений в «Сишке», бот умудрился наторговать на +3.11%. Сделки, которые он совершал, были четкими и продуманными. Складывалось ощущение, что торгует «профессионал высшего разряда», а не бездумная самодельная машина)). Что же я такого сделал, что изменил? Во-первых, в основе все так же лежат две функции, которые я выделил в виде индикатора «BullBearPower» и отдал на всеобщее пользование, здесь без изменений! Второе, вернул методику хеджирования убыточных позиций — суть, вместо закрытия с убытком, открывается противоположная позиция, но изменил учет прибыли/убытка по сделкам закрытия позиций, если в момент закрытия позы открыта встречная поза! Да… написал, так написал, сам ничего не понял, ладно, поясню на примере. Предположим, что у нас есть открытый Long, рынок выдает нам сигнал на то, что сейчас нужно совершать продажу, т. е. закрывать Long. Но если мы закроем нашу позу по цене сигнала, то зафиксируем убыток, поэтому вместо закрытия Long, мы открываем Short. Фактически мы закрыли позу, но бот у нас ведет раздельный учет Long и Short позиций и поэтому у него в памяти остаются две не закрытые позы Long и Short, и что самое интересное — цена, по которой они были открыты! В бота я заложил условие, что бы он закрывал только прибыльные позиции, а убыточные хеджировал открытием «встречки». Теперь, переходим к моменту закрытия открытых поз. У нас две позы Long, который «минусит» и Short, который «плюсует», наступает момент закрытия Short позы, если цена сигнала ниже цены открытия «шорта», то бот закрывает позу, а полученную прибыль «кладет не в карман», а направляет на улучшение открытой «лонговой» позиции, т. е. фактически уменьшая ее стоимость. Что получается в итоге? После ряда сделок открытия, закрытия и хэджирования бот выходит на уровень цен, когда рыночная цена становится больше открытых хеджевых «лонгов» и ниже хеджевых «шортов», и  боту всего лишь остается закрыть все позы с плюсом, что собственно и заложено в его алгоритм. Получается фактически, что совершая сделки по открытию хедж-поз и дальнейшему их закрытию, бот создает спрэд между ценами «лонг» и «шорт» до тех пор, пока рыночная цена не попадет в этот спрэд! Именно такие операции можно увидеть на графике equity за вчерашний день. «Синяя» линия это прибыль/убыток зафиксированный + в открытых позах, «красная» — зафиксированная прибыль! Почти 4 часа бот не закрывал позиции, а занимался только хэджированием и уже после обеда, когда рынок попал в спрэд-ловушку, бот начал фиксировать прибыль!

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

BullBearBot испытание. День 3

Доброе утро, коллеги!

Продолжаю тестировать бота на основе только индикатора BullBearPower, без дополнительных фильтров и сложных систем управления капиталом и рисками, рабочий инструмент Si. Вчера бота как будто подменили, весь день он провел в отрицательной зоне по прибыли и день закрыл с отметкой в -0.1%. Хотя это и не большой убыток, но все равно немного грустно, хотелось получить «печатный станок», а пока это всего лишь обычный торговый робот без претензий на звание «ГРААЛЬ»! На equity вчерашнего дня смотреть совсем больно:
BullBearBot испытание. День 3
Но не буду отчаиваться и продолжу испытывать бота...


BullBearBot испытание. День 2

Приветствую, коллеги!

Продолжаю «пытать» бота на «торгпригодность»)), начало тут. К сожалению, по семейным делам, всю неделю не было возможности запустить бота на полный рабочий день. Только сегодня бот «отпахал» всю смену. Результат хороший, даже очень +1.83%. Судя по наблюдениям, да и по графику equity, хорошо видно, что бот работает стабильно и качественно, что повышает его шансы стать настоящим скальпер-ботом! Немного внес изменения в логику работы по управлению позицией. После первого дня испытаний, мне не понравилось, что бот очень быстро набирает максимальную позу, а потом просто «пересиживает» не сильно корректируя ее, что очень сильно сказывается на плавности кривой NetProfit (Прибыль/Убыток зафиксированный + П/У в открытых позах) и при заходах в отрицательную зону заставляет нервничать! Раньше бот на одну сделку использовал 10% от капитала, без ограничения по времени. Т. е., если события на рынке развивались быстро, то бот мог в течении очень короткого времени «загрузится по полной», что очень быстро лишало его ресурсов, а значит и возможности управления открытыми позами. Теперь же бот в сделке использует 5%, а в рамках одного тайм-фрэйма (свечи) 20% от капитала и при необходимости, на последующих свечках добавляет в работу по 20%. Как показала сегодняшняя работа бота, такой подход к управлению капиталом вполне пригодный, хотя я боялся, что доходность упадет и упадет сильно. Ниже картинка интерфейса с метками сделок и график equity за сегодня

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

BullBearBot испытание. День 1

Приветствую, коллеги!

Как писал в этом блоге:

«Еще хочу сообщить, что я «набросал» бота, который торгует исключительно по индикатору, единственное, что бот использует не один тайм-фрэйм, как в индикаторе, а комбинирует три: 1H, 15min и 5 min. Так же, в боте, вместо стоп-лосса, я применил систему хеджирования. Если по простому то, вместо закрытия убыточной позиции, бот открывает противоположную, а закрывает позиции, только с прибылью или же при достижения равновесного состояния: LongPos = ShortPos. Предварительные тесты показали положительную динамику, посмотрим, что будет дальше. Результаты буду выкладывать в виде отдельных постов. Может «родится» еще один самостоятельный бот! Вчера были проведены первые испытания без доработок, результат: 0.42%»

Сегодня публикую результаты испытания. От идеи разбивки на 3 тайм-фрэйма отказался — нет нужного эффекта. Оставил один пятиминутный тайм-фрэйм. Мне хочется получить эффективного скальпер-бота с прицелом на среднюю доходность за торговый день в размере 1% или месячную в 20%, без переноса позиций и с очень большой емкостью по капиталу! Итак, что входит в «комплект»? Ну разумеется, что в качестве аналитической части стоит

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

Индикатор BullBearPower как правильно использовать?

Приветствую, коллеги!

После того, как я опубликовал свой индикатор https://smart-lab.ru/blog/634737.php, многие задавали вопрос: «Как правильно его использовать?». На самом деле, с индикатором можно экспериментировать, но я все таки расскажу, как он используется моими ботами. Сразу сделаю оговорку, мои боты помимо индикатора, используют фильтры для определения состояния рынка: LONG, SHORT, FLAT и используют индикатор в зависимости от того в какой фазе находится рынок. Но все же, не зависимо от этого, есть общие правила для совершения сделок:
  • Боты дожидаются, когда цена войдет в зону. Для продажи это зона выше SellPrice. Для покупки ниже BuyPrice.
  • После того, как цена вошла в зону, боты начинают отслеживать изменение силы покупателей и продавцов.
  • Для покупки необходимо, что бы сумма изменений силы покупателей была больше суммы изменений силы продавцов, а так же цена Offer была выше значения BuyPrice
  • Для продажи необходимо, что бы сумма изменений силы продавцов была больше суммы изменений силы покупателей, а цена Bid была ниже значения SellPrice
Собственно это основные условия для сделок покупки и продажи, остальное в работе ботов это дополнительные фильтры, которые улучшают точность входов.

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

Индикатор BullBearPower

Приветствую, коллеги!

Не думал, что будет такой интерес к моему посту https://smart-lab.ru/blog/634217.php , а точнее к индикатору, о котором в нем написано. Много сообщений в личку, не успеваю. Поэтому просто выкладываю код индикатора. Написан в QLua. Копируйте, вставляйте, запускайте и пользуйтесь! ВАЖНО: Для нормальной работы индикатора нужно, что бы была открыта таблица обезличенных сделок и шел поток данных по вашему инструменту!!!

p_CLASSCODE = «SPBFUT» --Код класса
p_SECCODE = «SiU0» --Код инструмента

function OnInit()

frame_60min = CreateDataSource (p_CLASSCODE, p_SECCODE, INTERVAL_H1)
frame_5min = CreateDataSource (p_CLASSCODE, p_SECCODE, INTERVAL_M5)

Index_60min = nil
Index_5min = nil

LastPrice = nil

IsRun = true

end

function main()

CreateTable()

while IsRun do

if Index_60min ~= frame_60min:Size() then

Index_60min = frame_60min:Size()

end

if Index_5min ~= frame_5min:Size() then

Index_5min = frame_5min:Size()

Transaq = 0
BuyWay = 0
SellWay = 0

end

if LastPrice ~= frame_60min:C(Index_60min) then

LastPrice = frame_60min:C(Index_60min)

BuySignal(frame_60min, Index_60min)
SellSignal(frame_60min, Index_60min)

if BuySpeed ~= nil and SellSpeed ~= nil then

if LastPrice < BuyPrice and BuySpeed > SellSpeed then

SetCell(t_id, 1, 4, «Buy»)

elseif LastPrice > SellPrice and SellSpeed > BuySpeed then

SetCell(t_id, 1, 4, «Sell»)

else

SetCell(t_id, 1, 4, «None»)

end

end

end

sleep(10)

end



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

Делюсь наработками

Приветствую, коллеги!

Скучно! Боты торгуют — я отдыхаю! Но мой мозг требует «пищи», поэтому решил доработать индикатор, который я описывал в этом блоге https://smart-lab.ru/blog/633889.php Добавил к нему еще один элемент из своих ботов. Это так называемый индикатор лучшей локальной цены покупки и продажи. Данный индикатор рассчитывает вероятный минимум по заданному тайм-фрэйму, другими словами минимум текущей свечи. Причем он динамичный и изменяет свое значение в зависимости от текущего изменения цены. Что показывает индикатор:

Делюсь наработками
  • BullPower — сила с которой совершают сделки покупатели
  • BearPower — сила с которой совершают свои сделки продавцы
  • BuyPrice — расчетная цена покупки
  • SellPrice — расчетная цена продажи
  • Recommendation — рекомендация покупать или продавать
Данный индикатор предназначен для открытия и закрытия позиции по наиболее лучшей цене в оптимальный момент времени. Где и как можно использовать данный индикатор? К примеру, вам нужно войти или выйти из рынка и вы приблизительно знаете по какой цене. Дожидаетесь соответствующего сигнала индикатора «Buy» или «Sell» и совершаете сделку. Или же можно использовать так. Дождались нужного сигнала и установили стоп-ордер на уровень BuyPrice или SellPrice. Почему так? Потому что рынок может пойти ниже/выше и значение BuyPrice/SellPrice будет меняться. И что бы получить лучшую цену, нужно использовать, что то типа трейлинг стопа. Появилось значение Buy — поставили стоп ордер на покупку, нет рекомендации, рынок пошел ниже — сняли. Опять появилась рекомендация, опять поставили и т. д. Что касается эффективности по торговле с помощью стоп ордеров, то я сделал небольшой бэк тест по контракту Si (период с 15 июня по вчерашний день) вот что получилось:

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

Индикатор MARKET POWER

Приветствую, коллеги!

Давненько я тут ничего не писал. То времени нет, то желания. Сегодня хочу представить вам индикатор собственного производства MARKET POWER (Сила рынка). Довольно громкое название)), не судите строго, очень долго он вообще был без названия и имел статус аналитической функции в моем роботе. Но сегодня я его «освободил», написал небольшой код и теперь он может увидеть свет в виде полноценного помощника для трейдера.

Что делает данный индикатор? А для чего вообще нужны индикаторы? Верно! Для того что бы подсказать трейдеру, по какой цене нужно покупать, а по какой продавать! Именно это он и делает — на графике ставит метку: «Здесь нужно купить» и пишет текущая позиция LONG по цене такой-то и  все точно так же для противоположной позиции. С чем работает индикатор? Сразу скажу, что никаких «машек», «макдашек» и прочего «джентельменского набора» в нем нет! Работает он со «стаканом», сделками, объемами, частотой сделок, скоростью сделок и прочей «малозначимой» статистикой. Все «педантично» сортирует, фильтрует, анализирует и выдает результат в виде сигнала к действию: «покупать» или «продавать»!

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

теги блога Viacheslav Merten

....все тэги



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