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

по

Python. Делаем тестер стратегий и... зарабатываем на случайном блуждании.

    • 19 июня 2020, 16:32
    • |
    • 3Qu
  • Еще

Если вам кто нибудь скажет, что на случайном блуждании (СБ) нельзя зарабатывать, бросьте в него камень. Как говорил Паниковский — это жалкие ничтожные люди. На СБ можно зарабатывать с результатами не хуже, чем на реальном рынке. У СБ, по сравнению с реальным рынком, только один недостаток — за игры с СБ никто деньги платить не будет.
А если бы платили? Никто бы ничего не заметил. По прежнему 95% СБ-трейдеров сливало бы депозиты, а 5% регулярно выигрывало и считало бы себя Гуру. По прежнему на графики наносились бы каббалистические знаки и индикаторы, угадывались бы направления движения, каналы, и линии поддержки/сопротивления. Все так же начинающие трейдеры искали Учителя для обучения, а аналитики предсказывали будущее. И, ровным счетом, абсолютно ничего бы не поменялось. Может только АГ заметил бы подвох, но тоже не сразу, а только через несколько месяцев, а, может, и через год-другой. Но, легко сделать, чтобы и АГ остался в неведении.)

Однако, прежде чем играть на СБ, нам необходима стратегия и тестер. Ими мы и займемся.
Для начала стратегия: нам нужны три функции
— одна для пошагового слежения за рыночными котировками и определения момента входа в сделку — DealEntryAnalysis(i) и пусть на ее выходе будет: 0-если сделки нет, 1 — необходим вход в лонг, и -1 — необходим вход в шорт. i — номер отсчета массива котировок.
— вторая для сопровождения сделки лонг — DealControlL(i), отвечающая за контроль и закрытие сделки.
— и третья, для сопровождения сделки шорт — DealControlS(i).
Теперь у нас все готово для разработки тестера стратегий, а это всего лишь цикл while() последовательно перебирающий котировки.
Вот наша стратегия уже в тестере:

while i < Ie:
    deal_type = DealEntryAnalysis(i)
    if deal_type == 1:
        j, rep = DealControlL(i)
        deals_report.append(rep)
        i = j+1
        continue
    elif deal_type == -1:
        j, rep = DealControlS(i)
        deals_report.append(rep)
        i = j+1
        continue
    i = i+1


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

macd + rsi + ema200 + ema20 + обычный объем + 2 таймфрейма - это необходимо и достаточно. Остальное - уровни и прайс экшен на входы

macd + rsi + ema200 + ema20 + обычный объем + 2 таймфрейма — это  необходимо и достаточно.
Остальное — уровни и прайс экшен на входы.
Ищем входы только когда ema200 + ema20 в одну сторону на старшем ТФ,
уровни — на старшем тф,
входы ищем на младшем — только на отбой.
macd хорошо разделяет периоды.
На rsi — ждем пробоев трендов.
Объм на старшем тф — смотрим на младшем — уточняем важный уровень.
Лучшие входы на ложных пробоях,
но когда пощло движение — работает и пробой петель.


Вместо замысловатых треугольников

Вместо замысловатых треугольников
ну так, добрые люди идейку дали и я выстругал.
Что это — ну кто это торгует у того примерно то же.
Да, извините топорно — зато бесплатно.

Вопрос к знатокам: стохастик на индикатор RSI

    • 13 июня 2020, 23:09
    • |
    • hestra
  • Еще
Доброго времени суток, друзья! Вопрос к знатокам технической стороны дела и мастерам по настройки терминалов. Имеется КВИК и желание построить дериватив от индикатора RSI в виде стокастика, т.е. стокастик строит свою осциляцию по RSI, а не по цене. Кто-нибудь знает, решаема ли такая задача в Квике? Буду признателен за любую подсказку, можно писать здесь или в личку, как удобнее.
  • обсудить на форуме:
  • QUIK

КВИК-->Lua-->Python. Стакан к празднику.

Всем привет, с наступающим праздником! Который, надеюсь у большинства пройдет, как обычно, в ЖО ЗОЖе (блин, слово-то придумали).
В продолжение топика "КВИК-->Lua-->Python. Трансляция данных из КВИКа в Питон в реальном времени".
В Python-сервер добавлен парсер и визуализатор стакана. Стакан в стиле QSCALP-лайт вариант. Все как обычно в 20 строк кода.

У Тимофея гифки со сторонних сайтов не кажут. Приходится ссылку давать… Или отказываться от главной. Выбрал второе.
КВИК-->Lua-->Python. Стакан к празднику.Чтобы насладиться созерцанием стакана нам нужны следующие ингредиенты:
1. Квик версии 8.5.2 и выше.
2. Lua-скрипт QuikLuaPython.lua (собственно сокет-клиент)
3. Питон (Jupyter Notebook Anaconda 3)
4. Python_QUIK_Server.ipynb (собственно сокет-сервер)
Считаем, что Квик и Питон у вас уже установлены. Чтобы запустить трансляцию, скачайте папку PythonServer в ней вы найдете все необходимое. Файл Python_QUIK_Server.ipynb поместите в папку Питона (чтобы его видел Jupyter Notebook). Затем, содержимое папки

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

Как я переехал на версию Quik 8.5 ничего не перекомпилируя и не переделывая в роботах. Лайфхак для нубов в программировании.

Из за того, что у меня накрылся на прошлой неделе арендуемый физический сервер, я решил его проапгрейдить  заодно установить в ВТБ новый квик.
В ВТБ  в частности постоянно прилетало сообщение, что надо устанавливать новый квик, что то там с нумерацией заявок на срочном рынке, а так же о том, что версия ЛУА, встроенного в квик, тоже проапгрейдится, и возможно скрипты работать не будут.

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

Ну ладно, деваться некуда, тем более, что когда с сайта ВТБ качаешь дистрибутив квика, там сейчас безвариантивно доступна только версия 8.5

Установил запустил. Скрипт, как и следовало ожидать, на первый взгляд, заработал сразу, без всяких «перекомпиляций». Потому что он написан в блокноте, а переводит в машинный код его (если я правильно понимаю, как все устроено) непосредственно встроенный в квике модуль ЛУА. 

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

Индикатор в LUA для Квик

    • 02 июня 2020, 14:31
    • |
    • VladEK
  • Еще
Добрый день.

Решил написать индикатор на LUA. Подскажите, пожалуйста, есть ли уже стандартная функция (или куда можно посмотреть), которая, например, на 15 минутном графике получит данные свечки с дневки.
  • обсудить на форуме:
  • Quik Lua

Тест "Грааля который долго искали" с Python и Pandas

В статье "Грааль, которые вы так долго искали" даётся алгоритм торговли:
  • если клоуз больше предыдущего клоуза, то покупаем (лонг) на закрытии сессии,
  • если клоуз меньше предыдущего клоуза, то продаем (шорт) на закрытии сессии.
Работаем на месячном таймфрейме.

Сейчас изучаю Python и Pandas и хотелось применить знания на каких-то реальных данных. Вот случай подвернулся. 

Выводы

Тестировал на данных по Газпрому (с 3.03.2010 по 20.05.2020) и Сбербанку пр. (с 21.11.2011 по 20.05.2020).
Отношение текущей стоимости портфеля к общей вложенной сумме: у Газпрома — 1,27, у Сбербанка пр. — 2,08.

Предварительные замечания 

Собрал данные для Сбербанк пр из Yahoo Finance (дневки). 
Написал код Pandas + Python. Это пока всё, чем владею на текущих момент, и то владею так себе. 
Pandas для преобразования таблицы с Yahoo Finance и обрезки ненужных столбцов. Python для прогонки алгоритма. 
Дивиденды учитывались в том случае, если на дату отсечки в портфеле были акции, если акций в портфеле не было, то дивиденды не учитывались. Дивиденды учитывались с учётом налога 13%.

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

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