Избранное трейдера Anest

по

Qlua: размещаем таблицу в скрипте, остановка скрипта при удалении таблицы, работа с цветом. Пишем своего советника (начало).

Продолжаем изучение qlua, cегодня:
Интегрируем таблицы в структуру скрипта qlua.
Удаляем таблицы через DestroyTable.
Останавливаем скрипт через IsWindowClosed.
Обработка события закрытия таблицы через коллбэк.
Работа с цветом SetColor, Highlight, SetSelectedRow.
Пишем простого советника.

В прошлый раз мы рассмотрели как с помощью qlua создать таблицу в торговом терминале и заполнить её информацией из таблицы текущих торгов. Но это была статичная табличка, чтобы её «оживить» нужно разместить операции с нашей таблицей внутри структуры скрипта в функции main.

Саму таблицу мы можем создать до цикла while и внести неизменяемые данные (в нашем случае тикер и наименование бумаги), а уже заполнить цифрами и обновлять внутри цикла. Пока будет работать скрипт таблица будет обновляться.

function OnInit()
  tikers = {"GAZP", "SBER", "VKCO"}
  progname = "mytable :"
  timeout = 5000
end

function OnStop()
  do_it = false
  message(progname.." Финиш.")
end

function main() 
  message(progname.


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

Пишем торгового бота для акций

Перед прочтением этой статьи — ВАЖНО следующее: основная цель данной статьи заключается в том, чтобы показать как просто можно создать торгового робота, который может торговать российскими акциями или зарубежными акциями. Важно понимать, что создавая бота, вы лично несете ответственность за принимаемые им решения, инвестиционные операции и связанные с ними риски. Я не несу ответственности за решения, которые вы можете принять после прочтения этого материала. И я не даю никаких инвестиционных рекомендаций или советов. Не забывайте, что боты способны принести большие убытки, поэтому используйте их с осторожностью.

Пару слов обо мне

Программирование для меня это хобби и любимое дело. А так я сертифицированный системный архитектор. Поэтому прошу не особо ругать за код:‑)

Выбор брокера и библиотек

Как вы знаете, брокеров много))) но нам нужны те, у которых есть API — программный интерфейс через который наш торговый робот сможет отправлять заявки на покупку и продажу акций.



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

Как сделать торгового робота для Binance

Пару слов обо мне

Программирование для меня это хобби и любимое дело. А так я сертифицированный системный архитектор. Поэтому прошу не особо ругать за код :-)

В настоящее время я увлекаюсь написанием торговых роботов. Постепенно изучаю нейросети для их применения к анализу цен/объемов акций/фьючерсов.

Обычно я писал торговых роботов для работы с Брокерами и делал авто-торговлю Акциями или Фьючерсами, но вдруг возникла мысль.

- А что, если уже готовый код можно применять и на других активах??? Например на крипто активах для Биткоина или Эфира или других?

Уже изучив много библиотек и примеров за долгое время написания своих торговых роботов, решил сделать небольшую библиотеку backtrader_binance для интеграции API Binance и библиотеки тестирования торговых стратегий Backtrader.

Вот с помощью backtrader_binance, сейчас и создадим алго-робота для торговли BTC и ETH.

Подготовка окружения
  1. Устанавливаем последнюю версию Python 3.11

  2. Устанавливаем среду разработки PyCharm Community 2023.1



( Читать дальше )
  • обсудить на форуме:
  • Binance

Хакатон «Финама» по созданию торговых систем. Призовой фонд 450.000 рублей!

Хакатон «Финама» по созданию торговых систем. Призовой фонд 450.000 рублей!

Примите участие в  хакатоне «Финам Trade API» — соревновании по созданию торговых систем на основе открытого API «Финама». Призовой фонд конкурса — 450 000 рублей.

К участию приглашаются все, кто заинтересован в разработке финтех-продуктов — алготрейдеры, практикующие разработчики и студенты профильных ВУЗов.

В конкурсе представлено две категории: «Алгоритмические торговые системы (торговые роботы)» и «Неторговые разработки на основе Trade API». 

В рамках каждой категории участникам предстоит создать ПО для компьютера или мобильного устройства, способное выполнять торговые и неторговые функции.

В каждой категории по две номинации: «Лучший пример самописного ПО для ПК» и «Лучший пример самописного ПО для мобильных устройств». 

Приз за победу в номинациях — 100 000 рублей. Также предусмотрено вознаграждение за самое оригинальное использование Trade API — 50 000 рублей.


Заявки и решения принимаются с 10 апреля по 10 мая 2023 года. 


Узнать больше о хакатоне «Финама» и принять участие


Способы построения дивергенции на Pine Script

Ниже представлен код двух способов построения дивергенции. Один с помощью функции корреляции, другой с помощью функции пивот.

Построение дивергенции с помощью функции корреляции

ta.correlation()  — Коэффициент корреляции. Описывает степень, на которую две серии стремятся отклониться от своих ta.sma значений.

Код построения бычьей и медвежьей дивергенций с помощью функции correlation

7  — передаем значение встроенной функции ta.rsi в переменную rsi

8  — задаем коэффициент корреляции, на который будет реагировать индикатор

9 - задаем расчетный период корреляции

11  — переносим значение встроенной функции корреляции ta.correlation в переменную correlation

14  — задаем цвет направления корреляции, изначально бесцветный

15  — с помощью тернарного оператора задаем два условия дивергенции типа Strong. Первое условие медвежьей дивергенции, цвет будет красный, второе — бычьей и цвет зеленый. В случае не выполнения обоих условий цвет будет серый.



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

Как задать диапазон времени в Pine Script с помощью timestamp и time?

В этой статье расскажу как с помощью функции timestamp, а также переменной time и time_close можно задать диапазон времени от какой-либо заданной даты до текущей даты и как задать диапазон времени между двумя заданными датами.

Используемые в коде встроенные функции и переменные

time  — встроенная переменная, содержащая время текущего бара в UNIX формате. Это количество миллисекунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года.

time_close  — время закрытия текущего бара в UNIX формате. Это количество миллисекунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года. На графиках, основанных на цене, значение этой переменной равно na.

timestamp() - встроенная функция, возвращает UNIX-время для указанной даты и времени.

Диапазон времени от одной заданной точки времени до другой

Диапазон времени, код (часть 1)

В этой части кода задаем точки времени point of time через timestamp(), указав год, месяц, день, час и минуты для каждой из них.



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

Ошибка «Не хватило памяти под объекты» (Quik)

Всем привет)

Может кому пригодиться.
Вот столкнулся сейчас с этой проблемкой… да… это не ново, такое уже когда-то бывало у меня… давно… так что, ничего страшного, никакой паники или растерянности.
Но сейчас был интересный нюанс)
Поэтому напишу обо всем, возможно кому и пригодится.

Вообще, когда вылетает такая табличка и Квик не хочет открываться, как правило это означает вовсе не то, что у Вас слабый компьютер и действительно не хватает оперативной памяти. В большинстве случаев — это просто программный сбой в Квике.
Что нужно делать в такой ситуации?
И что сейчас сделал я?

Во-первых, я, конечно, по классике этого случая, сперва удалил все файлы «*.log» и «*.dat» ( вообще пишут, что при этом не надо удалять файл «metastock.dat», но у меня его и не было...)
Заодно удалил и все файлы «wnd» из папки «WNDSAV», кроме последнего.
(естественно и очистил папку «archive» от файлов «dat»)

Уже этого может быть достаточно для того, чтобы Квик запустился...

Запускаю — программа открылась, ввожу пароль… есть соединение… приходит СМС… ввожу СМС… и бац — снова вылетела эта табличка. Облом…

( Читать дальше )
  • обсудить на форуме:
  • QUIK

Как самому проверить брокера

Сегодня появилась новость, что мошенники под видом «проверки» брокера собирают информацию и потом при помощи социальной инженерии воруют деньги.
Проверить брокера, а также банк, страховую и любую финансовую организацию можно легко самому. Есть несколько видов проверки.

1. Проверка лицензии на сайте ЦБ РФ. Этот вид проверки даст вам информацию имеет ли вообще брокер право оказывать услуги в России. Обычно у брокера есть несколько лицензий: брокерская, дилерская, депозитарная и на право доверительного управления. ЦБ РФ ведет реестр всех финансовых организаций и бесплатно предоставляет информацию о них через сервис «Справочник финансовых организаций»  Там в сможете узнать обо всех  лицензиях и реквизитах брокера.
2. Вторая проверка касается наличия в отношении брокера различных проверок, привлечения его к ответственности за нарушения законодательства и т.п. Эта информация также содержится на сайте ЦБ РФ

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

Утренний сон алготрейдера


После введения утренней торговой сессии проблема автоматического запуска торгового ПО стала особенно актуальна.
Хорошее решение предложил Евгений Логунов  в своей статье «Простой автологин за 5 минут».  Мы предложим аналогичное решение для КВИК на С++.

Задача очень простая — в 7:00 пробудить ПК с помощью планировщика заданий Windows, запустить несколько терминалов QUIK, и в каждом из них запустить торговых роботов, чтобы полностью освободить владельца всего этого счастья от физических и психических нагрузок, плохо влияющих на питание и здоровый образ жизни.


Итак, первое, что нам необходимо будет сделать это Автологин. Штука достаточно простая, учитывая то, что после запуска терминала он автоматически выдает окно приветствия. Нам нужно только дождаться появления этого окна, получить первое вводное поле (логин), второе вводное поле (пароль), вбить туда нужные значения и нажать на первую дочернюю кнопку этого окна: «Вход».

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

Индикатор с фиксированным таймфреймом в TradingView

В TradingView есть интересная возможность задавать таймфрейм индикатора вручную. Рассмотрим эту фичу на простом примере:

Существует простая логика, по которой средняя цена акции за 200 дней может выступать в качестве глобального ориентира для более мелких таймфреймов и если цена ушла за эту среднюю, то дальше возможен большой тренд. Но в обычном терминале это работает только в том случае, если 200-дневная средняя рендерится на таймфрейме D1 и тогда чтобы более точно открыть позицию, нужно искать локальную точку входа ещё на одном отдельном графике. Допустим, вы торгуете GMKN по этой логике, пытаетесь открыть позицию внутри дня с помощью двух графиков D1 и H1 — выбираете нужную свечу слева и ищете свой часовой маркер справа, получается не очень удобно:

Индикатор с фиксированным таймфреймом в TradingView

А вместо этого можно сделать так:

Индикатор с фиксированным таймфреймом в TradingView

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

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