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

по

lua quik

Добрый день. Вопрос для программистов на lua. Я начал разбираться с написанием робота. Сам робот на простой ma10. Вход при пробитии закрытия свечи ma(закрытием снизу вверх — лонг, сверху в них — шорт). Выход по стопам, при этом после стопа входить в противоположную сторону по открытию следующего часа. И выход по пробитию закрытия свечи и ma.
1)Не могу понять в какую часть когда записать следующее условие: нужно что бы робот выходил при пробитии закрытия свечи ma и делал переворот.
2)Как прописать условие переворота, по открытию следующего часа, переворота при выбивании стопа.
3)Как прописать перенос сделок через ноч.



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

Quik: отлавливаем заявки на скорость с помощью Lua и колбэков

    • 08 октября 2021, 22:15
    • |
    • FatCat
  • Еще

Строя автоматизированную торговлю на базе Квик, нет-нет да и столкнёшься с ситуацией, когда отправленная заявка исполняется совсем не так быстро как хотелось бы. Удивляться тут нечему, производительность квиковских серверов брокера не резиновая, на всплесках нагрузки могут изрядно подтупливать. Что с этим делать?
Запилить торговую систему через прямое подключение к бирже задача совсем другого уровня сложности по сравнению с демократичным Квиком со встроенным языком Lua. Что же, будем выкручиваться с имеющимся инструментарием.

Для получения информации о выставлении или перестановке заявки можно использовать колбэки OnTransReply (со значением поля status = 3) или OnOrder. Сильно ли они отличаются между собой по скорости? Для ответа на этот вопрос я прикрутил логгирование задержек срабатывания этих колбэков от момента вызова функции отправки заявки на сервер до срабатывания соответствующего колбэка. Логгирование выполнялось на дельтахеджере и опционном котировщике. Данные собирались в течение месяца не первом сервере в Открывашке, сам Квик работал на VDS-хостинге.



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

Шаблон торговой системы на 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()
В результате получили:

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

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

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

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

(повторно) Про применимость ТВиМС к зарабатыванию прибыли на рынках

Доброй ночи, коллеги!

(на берегу — ТВиМС — это теория вероятностей и математическая статистика)

В связи с 2-мя обстоятельствами
1. Повышенная активности обсуждения вопросов ТВиМС со стороны Аллирог/Аллихвост/Аллихто
2. Неприятие данного (вполне научного) подхода со стороны большинства резидентов СЛ

Хочу возобновить старую дискуссию.

Итак
1. У нас есть формула для эквити (2 варианта — при торговле маркетными и при торговле лимитными ордерами)
2. Обе эти формулы однозначно выписываются в зависимости от входного массива данных в формате OHLC (хоть на тиках, но там скорее bid/ask)
3. Задача оптимизации эквити (получение максимального результата, оптимизация МО/ДД) никак не зависит от вероятностных характеристик процесса, в т.ч. от распределения приращений цен и от АКФ.

ВОПРОС:

А зачем нам вообще нужен подход ТВиМС для зарабатывания денег на рынке?

С уважением

Ох, уж, эти выбросы.

    • 04 сентября 2021, 00:24
    • |
    • 3Qu
  • Еще
При анализе рыночных данных оч мешают выбросы. Гэпы всякие, которые зашкаливают за все нормальные диапазоны, и в течение длительного времени забивают все индикаторы и весь анализ. Вот такие, например:
Ох, уж, эти выбросы.
Здесь бы до 1.5 -1.7 все ограничить, и нормально бы было.
Для этого обычно применяются всяческие ограничители, типа сигмоидов и им подобных:
Ох, уж, эти выбросы.

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

Как платить налоги по совместному брокерскому счету?

Добрый день, друзья.

Пишу о совместном брокерском счете, потому что поступает много вопросов по правилам уплаты налога по таким счетам. И я решила все в одну краткую статью собрать.

Как мы знаем, совместный счет – это брокерский счет, который совместно используется двумя или более физическими лицами. Это могут родственники, супруги или друзья, иными словами, люди, которым вы доверяете.

Владельцы такого счета имеют равный доступ к своим активам и несут равную ответственность за уплату сборов и комиссий брокера.

Все вроде понятно, но как быть с налогом, кому надо сдавать декларацию 3-НДФЛ?

Как все происходит на практике?

Давайте представим себе такой пример – супруги открыли в мае 2021 года совместный брокерский счет в Interactive Brokers LLC (США). И пускай наши супруги за этот год совершат прибыльные сделки, получат дивиденды.

Что надо сделать?

1. Каждый из владельцев счета (и муж, и жена) обязаны представить в налоговый орган по месту своей прописки уведомление об открытии зарубежного брокерского счета в течение месяца со дня открытия. В этом уведомлении есть специальная ячейка для указания «индивидуальный счет» или «совместный».



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

Проектирование ТС. 3. Базовые принципы.

    • 28 августа 2021, 16:55
    • |
    • 3Qu
  • Еще
Собственно, все стратегии основаны на принципе: покупай дешево — продавай дорого. Вопрос только в определении понятий — дорого/дешево.
Основной принцип на графике:
Проектирование ТС. 3. Базовые принципы.
Это фьючерс Сбера, 1 м график, по х — минуты. Дешево внизу, дорого вверху. Средняя прибыль ~40 п за сделку.
Я не боюсь, что кто-то что-то украдет, в смысле идей, да, они, собственно, и без меня очевидны. Один из наших коллег на СЛ уже «украл» — работает с этим уже три или 4 года — результат околонулевой. Ну, вы наверное знаете товарисча.)
Вот с этим я сейчас и работаю. Система совершенно другая — старая почти изжила себя — на графике все можно увидеть. Раньше ходы цены были несколько другими.  Сейчас требуются другие подходы к снаряду. Сеточники — не хочу, не нравится мне это, хотя bohemian rhapsody...
Вот, пока, чего не пойму, так это стратегию Мальчика BuyBuy. Может, вообще бы все переделал, если бы понял.))
А вообще, не скрою, я сюда, на СЛ, за идеями пришел. Варясь в собственном соку новые мысли не появятся.



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