Блог им. 3Qu |Очень кратко про длинные хвосты.

    • 30 января 2023, 16:39
    • |
    • 3Qu
  • Еще
Вот, говорят, что у рыночных распределений длинные хвосты. Ну, допустим.
Распределение строится относительно некой средней линии, и его вид, естественно, будет сильно зависеть от того, как вы провели эту среднюю. Способов — тьма. Первый и самый плохой -МА, любая.
Если у вас эта средняя гуляет сама по себе, то у распределения неминуемо появятся хвосты. Просто мысленно представьте себе этот процесс.
Если мы более правильно построим среднюю (не хочу перечислять методы — это не для топика на СЛ), хвосты существенно уменьшатся. Наверное позднее могу даже показать это на паре разных средних.
Это уже гипотеза. Если сделать идеальную среднюю, то хвосты, может, вовсе пропадут?)

Блог им. 3Qu |О возможности заработка на рынке.

    • 20 декабря 2021, 18:16
    • |
    • 3Qu
  • Еще
В топике не будет готовых рецептов заработка, не будет никаких ТА, ФА и прочих рецептов. Речь идет только о возможности заработка.

Итак, вариант №1 — рынок случаен. Что ж, мы можем сразу сворачивать удочки, ибо никакой заработок на таком рынке невозможен.
Однако, это уже изначально неправильно, зарабатывать можно практически на любом случайном процессе с более-менее стабильными характеристиками. Есть исключения — нельзя зарабатывать? скажем, на процессе, в котором P+x(t+n) = P-x(t+n) =0.5 при произвольном n. Не будем углубляться в арифметику. Факт, что на других случайных процессах зарабатывать можно. Вам только остается выяснить и посчитать параметры случайного процесса. Имхо, вроде, сложности не составляет.

Вариант №2 — рынок неслучаен и управляется внешними (относительно рынка) силами. Например, коллективным мнением участников рынка и, разумеется, их финансовым вкладом в поддержку движения рынка в какую-либо сторону.
В этом случае вообще никаких проблем не возникает- такие движения обнаруживаются и сопровождаются практически любой следящей системой. Есть там какие-либо шумы или нет — значения не имеет.

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

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

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

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

Блог им. 3Qu |Новое увлечение - Arduino и STM32.

    • 12 июля 2021, 21:50
    • |
    • 3Qu
  • Еще
Тема, возможно, и оффтоп, но почему про покупку машины можно, а про Arduinку низзя?
Так получилось, что уже взрослый сын решил реализовать свою идею на Arduino — хошь не хошь, а помогай.  Я слышал об Arduino раньше, но, контроллер  и контроллер с весьма хилыми возможностями, однако не знал, что там целая экосистема с огромным количеством модулей. Для начинающих все оч здорово, и, я бы сказал, оч круто.
Поначалу был в восторге и даже уже чуть было не заказал себе несколько компонентов для реализации несложного проекта, но за неск дней разобравшись, понял — хотя компоненты и недорогие, но переплачиваем за них в 2-3 раза. Да и чего посложнее сделать на Arduino никак нельзя.
Ну, уж коли увлекся, начал смотреть более продвинутые альтернативы, среди которых выбрал STM32 и взял платку с микроконтроллером STM32F401. И это оказалось много дешевле Arduino. Точнее, примерно те-же деньги, но 64 KB RAM, 256 KB EEPROM, 32-бит архитектура, тактовая 84 МГц и еще масса всяких плюшек,  включая каналы DMA, часы реального времени и много чего прочего  - и все это за 240 р.)) В Ардуино все это надо купить отдельно — за копейки, конечно (часы — 65 р), но это сравнимо со стоимостью самой Arduino платы. Для сравнения, у простой Ардуинки всего-то 2КB RAM и 8 KB EEPROM, и это тоже 240-300 р. — чудные дела твои господи.

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

Блог им. 3Qu |Сегодня че-то много о нейросетях (НС)

    • 09 марта 2021, 16:04
    • |
    • 3Qu
  • Еще
Основной вопрос — может ли НС, и вообще методы МО, прогнозировать рынок?
Зададим более простой вопрос — можно ли НС обучить выполнять оператор if()… else? Ответ очевиден — конечно можно.
А обучить выполнению группы таких операторов? — Не вопрос, конечно можно.
Т.е., НС можно обучить практически любой логике. Вроде, сомнений не вызывает.

Теперь у нас есть заведомо работоспособная прибыльная торговая система (ТС), принимающая решения о покупке/продаже на основе некоторых данных, констант и логики. Решение — это своего рода прогноз. Решение: покупать — это прогноз роста цены актива, продавать — прогноз падения цены.

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


Блог им. 3Qu |О стационарности рынка.

    • 12 сентября 2020, 17:59
    • |
    • 3Qu
  • Еще
Все, включая нашего главного теоретика АГ (как не бросить камень)), годами говорят и повторяют, что рынок нестационарен. Основывают все это на анализе распределения истории цен на рынке. С этим не буду спорить, временные ряды цены возможно и нестационарны, хотя и это вопрос спорный. Но не буду. Пусть будет так, это непринципиально.
Однако рынок это не временной ряд цен, который является всего лишь реакцией рынка на внешние воздействия, а внешние воздействия могут быть какими угодно. С какого бодуна реакция системы на нестационарный процесс вдруг станет стационарным процессом? Наверное, чтобы делать заключение о рынке нужно изучать не реакцию, а сам рынок как систему.
А рынок, это всего навсего совокупность действий большого количества участников с разными капиталами, горизонтами, интересами и пр., и пр. Ну, и сама биржа, как сумматор этих интересов — это не сложно. Т.е., для понимания рынка нам нужно изучать поведение совокупности участников торгов.
И вот тогда выяснится, что состав участников меняется достаточно медленно, дни, недели и месяцы большой роли не играют, и реакция участников на внешние раздражители вполне стационарна и со временем изменяется незначительно. Кроме того, все это оч похоже на нормальное распределение.

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

Блог им. 3Qu |Не надо бежать впереди паровоза.

    • 24 июня 2020, 17:37
    • |
    • 3Qu
  • Еще
Сметет, и не заметит.
Собственно, это все. Но поясню.
Уровень поддержки такой, уровень сопротивления сякой, цели у рынка такие, рынок должен пойти туда, рынок должен пойти сюда, и т.д.
Запомните, рынок вам ничего не должен. Кстати, и вы ему ничего не должны. Это единственное что надо знать о рынке.

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