Избранное трейдера Роман Давыдов

по

Раздаю КАЧАЙТЕ!!! Более 300 книг по трейдингу.

АЙбишник Витька Бавин здесь пару дней показал 10 книг.
Берите больше.
Выкладывал данный материал пару лет назад. Да не новое, а что поменялось? Да все тоже самое, свечи по другому выглядеть не стали.
Сейчас убрал лишний мусор. Да и народу с того времени прибавилось достаточно на сайте так что думаю многим будет актуально.
Сейчас же все инвесторы. На пенсию в 35. 25млн счетов уже.
Читать не перечитать.
Читайте просвещайтесь. Может и найдете грааль между строк.
Базовые знания тоже самое что и на курсах  но только за деньги))))
Так же материал по опционам если вы до сих пор сливаете на них прочитав может перестанете.
Но это не точно)))
Раздаю КАЧАЙТЕ!!! Более 300 книг по трейдингу.
Раздаю КАЧАЙТЕ!!! Более 300 книг по трейдингу.

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

Как быстро оценить свой портфель

Привет всем. Чтобы не изобретать велосипеды #софты для просмотра структуры портфеля#.

Скачиваем R, RStduio. В RStudio устанавливаем библиотеки: rusquant, PerformanceAnalytics, PerformanceAnalytics.
Добавляем следующий код в RStudio.

Подключаем библиотеки:

library(rusquant)
library(PerformanceAnalytics)
library(PortfolioAnalytics)

Задаем тикеры, веса, начальную дату и просто переменную куда вытянем цены.

tickers <- c("FXGD","IRAO")
weights <- c(.5,.5)
start_data <- "2014-01-01"
PortPrices <- NULL

Вытягиваем данные с финама, есть и другие источники mfd,alor(вроде)

for(curr in tickers) {
               PortPrices <- cbind(PortPrices, getSymbols(curr, src = 'Finam', auto.assign = FALSE)[,4])
}

Тянем значения индекса, очищаем от пропущенных значения, считаем дневную доходность.

benchmark <- getSymbols("MICEX", src = "Finam", auto.assign = FALSE)[,4]
benchmarkRet <- na.omit(ROC(benchmark))
Тоже самое для портфеля акций, плюс считаем портфель и включаем ребалансировку каждый месяц.

PortReturn <- na.omit(ROC(PortPrices))
PortRet <- Return.portfolio(PortReturn, weights = weights, rebalance_on = "month")
PortCum <- cumsum(PortRet)
Micex <- cumsum(benchmarkRet)


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

Алгоритм анализа облигаций

Приветствую! Напишу о том, как найти облигации, какие выбрать, как анализировать и купить.

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

Многие просили написать про облигации. Я полностью согласен с тем, что облигации в текущих условиях оптимальный вариант инвестирования свободных денег. Поэтому по этим просьбам решил написать об этом инструменте.

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

Проще говоря, когда рынок растет, я увеличиваю резерв из облигаций и покупаю акции на минимум. Когда рынок падает, я увеличиваю покупки акций и сокращаю облигационный резерв.



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

Все, что есть по OptionVictory (OptionFVV) в одном посте

    • 26 сентября 2021, 16:22
    • |
    • tashik
  • Еще
Сайт программы https://tashik.github.io/OptionVictory/

Канал на Youtube с уже тремя сериями видеоруководства, и продолжение будет — Плейлист видеоруководств

Telegram-канал, где публикуются объявления о релизах https://t.me/optionvictory

Сегодня вышел новый небольшой релиз с обновленнным и отлаженным выпадающим списком стратегий и доработанным калькулятором. Инструкции по обновлению прочтите на сайте.

Шаблон торговой системы на Python (backtrader, quantstats)

    • 22 сентября 2021, 21:54
    • |
    • Diamond
  • Еще
Сначала я пытался бэктестить системы в TradingView и этого было достаточно для быстрой оценки торговых гипотез, но оказалось, что мало просто знать, где купить и где продать. Не менее важно понимать, сколько купить или продать и для этого нужны другие инструменты.

Зачем Python?

Лично мне он показался удобнее. Например, можно быстро подключить telebot и система начнёт отправлять сигналы прямо в телегу на все девайсы. Работать со скриптами можно даже на айпаде где-нибудь в дороге, тоже плюс.

Самая простая система, которую можно потестить это пересечение двух скользящих средних: если быстрая SMA пересекает медленную вверх, то покупаем, а если вниз, то закрываем открытую позицию, шортить рынок не будем. Комиссии, проскальзывание и прочие расходы пока не учитываем, нужно начать с какой-то основы.

Что потребуется?

— backtrader для логики торговой системы

— quantstats для формирования отчёта

— Jupyter Notebook, если нужно удобнее редактировать код

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

Анализ и визуализация данных в финансах — анализ ETF с использованием Python

    • 18 сентября 2021, 00:55
    • |
    • Aleks
  • Еще
С проникновением аналитики во многие сферы нашей жизни она не могла обойти стороной финансы. В этой статье рассмотрим ее применение для анализа ETF с целью их анализа, в том числе и с применением визуализиции.

1. О данных

Для анализа будем использовать данные ETF c базовой валютой USD: FXCN, FXRL, FXIT, FXUS и FXRU. Временной ряд рассмотрим за три года с 2018 по 2020 года. Само исследование проведем в Google Colaboratory.

Как обычно в начале импортируем все необходимые библиотеки для дальнейшей работы.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from google.colab import files
import warnings
warnings.filterwarnings("ignore")
Сначала необходимо получить данные. Есть несколько способов. Мы воспользовались — взяли их с Finam в формате csv. Дальше написал функцию для обработки полученных данных и при помощи concat свел их в один датафрейм.

def changeDF(df):
  df['date'] = pd.to_datetime(df['<DATE>'].astype(str), dayfirst=True)
  name =[x for x in globals() if globals()[x] is df][0]
  df = df.drop(['<DATE>','<TIME>', '<OPEN>', '<HIGH>', '<LOW>'], axis=1)
  df = df.set_index(['date'])
  df.columns = [name+'_cl', name + '_vol']
  return df

fxgd_change = changeDF(fxgd)
fxrl_change = changeDF(fxrl)
fxit_change = changeDF(fxit)
fxus_change = changeDF(fxus)
fxru_change = changeDF(fxru)
fxcn_change = changeDF(fxcn)

etf = pd.concat([fxgd_change, fxrl_change, fxit_change, fxus_change, fxru_change, fxcn_change], axis=1)

etf.head()
В результате получили:

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

Автоматический бактестинг стратегии в TradingView с сохранением результатов в CSV

    • 17 сентября 2021, 11:52
    • |
    • akumidv
  • Еще

Если вы используете стратегии в трейдингвью, например чтобы быстро накидать прототип идеи из какого нибудь источника и посмотреть её, то у вас наверняка также появлялся вопрос поиска приемлемых параметров и проверка как они влияют на стратегию. Делать это вручную крайне трудозатратно. Простейшая стратегия двух скользящих средних может давать 400 и более вариантов параметров. А любое увеличение кол-ва параметров и диапазона их значений приводит к необходимости перебора значений растущих в геометрической прогрессии. Например стратегия из 5 параметров по 15 значений дает 15 ^ 5 = 759 375 вариантов. Подобрать их руками, когда один вариант вычисляется пару секунд не реально.

А можно ли автоматизировать этот процесс? Ниже описание решения через расширение для браузера на основе Chrome.
Автоматический бактестинг стратегии в TradingView с сохранением результатов в CSV

В прошлый раз я публиковал статью, в которой говорил об ассистенте для



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

Алгоритмический трейдинг для профессионалов. Е.Малыхин (отзыв о книге)

Свежая книга по алготрейдингу российского автора Евдокима Малыхина.
Поскольку на рынке наблюдается дефицит отечественных книг по теме алготорговли, то каждая выходящая книга читается на одном дыхании с нескрываемым интересом.
Малыхин Евдоким Михайлович серьезный практик, кандидат физико-математических наук и эксперт в области разработки программного обеспечения. И этот факт ощущается уже с чтения первых строк книги. В книге нет никаких кодов торговых роботов или готовых алгоритмов. Она немного о другом — а именно об инженерном подходе к построению алгоритмов и программ. Книга не для новичков, для ее чтения требуется определенный собственный опыт разработки роботов и шишки от граблей.
В ней описано:
— назначение и функции роботов;
— как архитектурировать программы;
— как создавать, аудировать, и развивать свою алгоритмическую систему;
— виды обрабатываемых данных и их особенности;
— масштабируемость и жизненный цикл роботов;
— управление рисками в алготрейдинге (в т.ч. описываются риски программного кода, железа, средств связи, методы вскрытия ошибок до выхода программы в эксплуатацию); 

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

Опционы Ч.2. LIVEInvestingGroup

Всем привет!

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

Представляем базовый набор таких конструкций. 

Опционы Ч.2. LIVEInvestingGroup

Опционы Ч.2. LIVEInvestingGroup

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

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

    • 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()
И вот результат прогнозирования:

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

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