Блог им. 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