Избранное трейдера Евгений Шибаев

по

Крылья? Ноги? Главное - хвост! (с)

    • 28 ноября 2022, 11:46
    • |
    • tashik
  • Еще
Дошли руки перевести еще один материал Марка Джеймисона, на этот раз о «толстых хвостах» распределения, и оформить его в виде Jupyter notebook наглядно и практично. 

Угощайтесь!

Чтобы менять что-то в коде, нужно сохранить копию блокнота себе на Google Drive.

Вокруг да около дельтахеджирования (перевод в виде Jupyter Notebook, части 2 и 3)

    • 17 июля 2022, 21:25
    • |
    • tashik
  • Еще
Закончила перевод еще двух серий статьи Марка Джеймисона «Как дельтахеджировать опционы»

Часть 2 (у автора часть 4): Погрешность хеджирования и частота рехеджей

Часть 3 (у автора часть 5): По какой волатильности считать дельту для рехеджа (по мотивам статьи П.Вилмотта про «Бесплатный обед», ссылка на мой перевод которой есть у меня в блоге) 

В конце последней части обещана еще одна, где постоянная волатильность будет заменена на стохастическую, но эта часть пока не публиковалась.

Марк Джеймисон в оригинале на Medium

Вокруг да около дельтахеджирования (перевод в виде Jupyter Notebook)

    • 16 июля 2022, 14:45
    • |
    • tashik
  • Еще
Рада всех приветствовать в этот субботний день. Вернулась к торговле, но как-то скучно и пустовато стало в опционных стаканах. И вот — так совпало © — встретился мне прекрасный вдумчивый автор со статьями на тему дельта-хеджирования, и решила я перевести его статью и зашить в блокнотик Jupyter, чем и делюсь с сообществом. Статья состоит из пяти частей. Первые две части я в силу очевидности изложенного в них опустила. Начала перевод с части 3. Так что будут еще два блокнота по части 4 (про ошибку репликации и частоту хеджа) и 5 (про последствия хеджирования по «неправильной» дельте). Не переключайте канал

Марк Джеймисон «Как дельтахеджировать опционы» Блокнот № 1

Может быть лучик просвещения даст сомневающимся последний ключик для начала торговли!

Чтобы утащить блокнот себе, жмите Файл — Сохранить копию на Диске — и сохраняйте у себя на диске. Сохраненная копия будет редактируемой.

Всем добра и профитов

Практическое использование нейросетей на рынке 2. На примере трансформеров.

  Таки собрался дописать вторую часть своих результатов применения трансформеров для предсказания на российском фондовом рынке. Может и хорошо что не спешил, так как пафос первой части о трансформерах дающих какие то уникальные результаты по сравнению с другими архитектурами нейросетей, оказался несколько преувеличенным, по крайней мере LSTM дал вполне сравнимый результат с трансформерами. Потом я попробовал градиентный бустинг, дерево решений и вновь получил схожий результат. Так что подавайте в нейросеть правильные признаки и многие модели покажут положительный результат. Тем не менее, раз я начал с трансформерах, и так как их архитектура хорошо отражает рынкок, о них и продолжу. 
  Для любителей вопросов о «таймфреймах, на чем обучал, какие акции, что в качестве таргета, какие параметры, время удержании позиции» итп итд. Акции МосБиржы, из числа наиболее ликвидных. Данные у меня с 2011 до 2021 (и это увы необходимость, так как именно с 2011 года время работы биржи стало 9 часов). Прогнозы строил следующим образом — выкидывал один год (это out-sample), а из оставшихся делал разбивку на train и test. Таким образом получил 10 одногодичных прогнозов. Для меня важно получить доходность на сделку пусть поменьше, но чтобы прибыльность подтверждалась на как можно большем диапазоне, и на всех акциях. Такое чтобы для каждой акции своя модель — для меня неприемлемо. И само собой никаких убыточных годов, как минимум. Знаю многие меняют системы каждые 3 года и для них это нормально, я предпочитаю вылавливать аномалии которые работают десятилетиями. Тут я никого не учу, рынок сам рассудит.    



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

Анализ лчи-сделок makdi067

Имеется красивейшая эквити:
Анализ лчи-сделок makdi067
Эта эквити интересна не только тем, что у неё высокий шарп, но и тем, что она получена не на копеечном счете.
На стартовые 30 млн заработано 11 млн рублей.

Это опционная торговля, которая велась по трём базовым активам: RI, Si, BR.

Что я сделал для анализа? Скачал все сделки за конкурс и немного подшаманил файлик.
Видимо, там были открытые позиции на начало конкурса ну и остались открытые на момент окончания.
Чтобы всё закрывалось в ноль для финреза, я добавил в начала и в конец файла несколько строк с виртуальными сделками.

Тогда получилась такая картина.
Финрез по бренту (опционы+БА) порядка 230 долларов.
Финрез по сишке (опционы+БА) порядка 650 тыс рублей.
Финрез по ришке (опционы+БА) порядка 7,5 млн пунктов.
То есть можно сказать, что вся эквити получена на ришке.

Что меня интересовало?
1. Как получено?
2. Насколько устойчиво и насколько масштабируемо?



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

Практическое использование нейросетей на рынке 1.

Я уже писал о попытке применить нейросети, и вердикт был неутешительным, с точки зрения практического трейдинга. Я усердно (более менее) прокачивал свои скилы в машинном обучении, учился программировать, в качестве данных используя котировочки, но особой перспективы не видел. Но я оказался не прав, и в конечном итоге, у меня в нейросеть на фондовом рынке получилось.   
Но давайте не сразу к прогнозированию и зарабатыванию денег, сначала рассмотрим другой вариант практического применения нейросетей. 
Нейросеть как черный ящик.
Допустим есть у вас рабочий алгоритм, который показал свою эффективность на протяжении 10 лет реальной торговли. Вопрос как его продать, не раскрывая секреты трейдерской кухни? А почему бы не использовать неинтерпретируемость нейросетей, превратив ее слабости в ее силу? Эта мысль приходила мне раньше, но реализация подкачала, до ума эту мысль я довел недавно, благо потребность возникла. Схема очень простая, у нас есть сырой ряд, из которого нужно посчитать нужные признаки (признаки это и есть мои трейдерские секретики), эти признаки настолько хороши, что подав их в простенькую модель машинного обучения мы получим хороший результат. Но как скрыть алгоритм расчета признаков? А все просто, мы на вход в нейросеть подаем котировочки, а на выход в качестве таргета — наши секретные признаки, таким образом поставив перед нейросетью задачу калькулятора. Подчеркну, тут мы ничего не прогнозируем, признаки находится внутри временного ряда. Это первый этап. На втором этапе мы занимаемся уже прогнозированием, используя полученные признаки. 

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

Историческая волатильность "по-быстрому" для TradingView

    • 24 ноября 2021, 10:00
    • |
    • tashik
  • Еще
Длинная историческая волатильность по-быстрому Использовать на часовом ТФ или выше (до дневки). Периоды указываются кратно барам. В моем примере 17 на часовике — это 17 часов, одна торговая сессия, суточное окно.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

//@version=4

study("Historical Volatility")

// Настройки окон
HVPeriod1 = input(17, minval=1, title="Окно 1")
HVPeriod2 = input(34, minval=1, title="Окно 2")
HVPeriod3 = input(51, minval=1, title="Окно 3")
HVPeriod4 = input(85, minval=1, title="Окно 4")

// Настройка периода для сглаживания
EMAPeriod = input(17, minval=2, title="Период сглаживания")

// Собственно индикатор

// мультипликатор, для нормирования к году
mul = 252 * 1210 / timeframe.multiplier
//приращение за бар
ch = log(close) - log(close[1]) 

// Историческая волатильность в окнах
HV1 = ema(sqrt(sum(ch * ch, HVPeriod1) * mul / HVPeriod1) * 100, EMAPeriod)
HV2 = ema(sqrt(sum(ch * ch, HVPeriod2) * mul / HVPeriod2) * 100, EMAPeriod)
HV3 = ema(sqrt(sum(ch * ch, HVPeriod3) * mul / HVPeriod3) * 100, EMAPeriod)
HV4 = ema(sqrt(sum(ch * ch, HVPeriod4) * mul / HVPeriod4) * 100, EMAPeriod)

// Рисуем красивое
plot(HV1, color=#cccccc)
plot(HV2, color=#ffcccc)
plot(HV3, color=#ff9999)
plot(HV4, color=#ff0000)
Чтобы использовать, копируем, в TradingView открываем Редактор Pine, создаем там новый индикатор (Открыть -> Новый индикатор), удаляем все что там в скрипте по умолчанию и вставляем этот код. Жмем Сохранить. Дальше скрипт будет доступен в выпадающем списке над графиком под кнопкой Индикаторы во вкладке Мои скрипты. Модно, быстро и удобно )

Держим опционный строй даже когда на море качка!


TesterDashboard - эффективное привлечение эволюционной интеллектуальной машины к поиску закономерностей.

    • 14 октября 2021, 02:30
    • |
    • fxsaber
  • Еще

Идея не нова, вопрос был только в реализации.

Платформа MetaTrader 5 обладает возможностями автоматизации Тестера. Расчет огромного количества данных на истории реальных тиков — обыденность.

Проверка адаптивности ТС — аналогично.


Обработка расчетов.


Однако, при большом количестве уже проведенных вычислений требуется разобрать эту кучу данных и найти в ней что-то, действительно, интересное.

Это можно делать двумя способами:

  1. Создать автоматический критерий, который отфильтрует что-то стОящее от вычислительной шелухи.
  2. Перебрать руками каждый кусочек цифровой кучи, доверяя фильтрацию мощной интеллектуальной машине — головному мозгу человека.


В первом случае получается быстро, но можно легко что-то упустить, действительно, важное.

Во втором случае все гораздо тщательнее, но очень много времени на это уходит. Элементарно утомить природную машину настолько, что больше никогда не захочется к этому возвращаться.



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

Хотите попрогнозировать рыночные котировки? Нет проблем - вот код.

    • 14 сентября 2021, 22:46
    • |
    • 3Qu
  • Еще
Итак, код обучения и прогнозирования нейросетью рыночных котировок на 5 минут.
import sqlite3 as sql
from scipy.stats import logistic
import math
import numpy as np
import numpy.random as rnd
import matplotlib.pyplot as plt
from sklearn.neural_network import MLPRegressor

sdata =[]
sql1= "select ticker, date, open, high, low, close, vol \
    from Hist_1m where ticker_id=1 order by Date;"
con=sql.connect('C:/Users/ubase/Documents/StockDB/StockDB21.sqlite')
cur=con.cursor()
cur.execute(sql1)
sdata=cur.fetchall()
con.commit()
con.close()

Ldata = len(sdata)
N = 8000 # Количество сделок
ld = 5 #Продолжительность сделки
NNinterval = 20 # Количество входов NN

# Генерация случайных чисел
rng = rnd.default_rng()
rm=rng.integers(0, Ldata, N )

class Candle:
    tr = 0
    dt = 1
    o = 2
    h = 3
    l = 4
    c = 5
    v = 6
    
cl = Candle
DataC =[sdata[i][cl.c] for i in range(0,Ldata)]

# sigmoid линейность до 0.5
def sigmoidnorm(x, alfa = 0.9, xmin = -1.3, xmax = 1.3):
    return (xmax - xmin)*((1 / (1 + math.exp(-x*2.0*alfa))) - 1.0) + xmax

x = [0.002 * i - 3 for i in range(0,3000)]
y = [sigmoidnorm(x[i]) for i in range(len(x))]


plt.plot(x,y)
plt.grid()
plt.show()

# формируем сделки.
def DealsGenL(rm,ld):
   #Lm = len(rm)
   ix = []
   x = []
   pr = []
   
   for i in range(0,N):
        if rm[i] + ld < Ldata and rm[i] - NNinterval - 1 > 0:
            delta = (sdata[rm[i]+ld][cl.c] - sdata[rm[i]][cl.c])/sdata[rm[i]+ld][cl.c]*100
            x0 = [sigmoidnorm((sdata[rm[i] - j][cl.c] - sdata[rm[i]][cl.c])/sdata[rm[i]][cl.c]*100) \
                 for j in range(0, NNinterval)]
            ix.append(rm[i])
            x.append(x0)
            pr.append(delta)
   return ix, x, pr


Ix, X, Pr = DealsGenL(rm,ld)



Ib = 0
Ie = 100

plt.plot(X)
plt.legend()
plt.grid()
plt.show()


plt.plot(Pr, label = 'Prof')
plt.legend()
plt.grid()
plt.show()


regr = MLPRegressor(hidden_layer_sizes = [30,20,15,10,5], \
                    max_iter=500, activation = 'tanh')

regr.fit(X, Pr)
Out = regr.predict(X)

plt.plot(Pr, Out, '.')
plt.grid()
plt.show()
И вот результат прогнозирования:

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

Вестник Волопаса;)

    • 28 июля 2021, 14:52
    • |
    • tashik
  • Еще
Открыла в телеге экспериментальный канал, ориентирующий по внутридневной волатильности и дающий «пульс рынка» таким, каким видит его моя считалка реализуемой волатильности. Присоединяйтесь. Монетизироваться не будет. Рекламы не будет. Услуга предоставляется как есть. Все принимаемые Вами торговые решения — как и любые решения по жизни — как всегда на Вашей ответственности. Дискуссий не будет и флуда не будет — голые цифры в разрезе справедливая IV + справедливая цена связки на ЦС.
Данные обновляются три раза в день: в районе 9-00, в районе 15-00 и в районе 21-00. Стараюсь делать это регулярно и как можно ближе к означенным часам, но не всегда получается точно попасть во время.

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

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

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