Избранное трейдера Старик Рамуальдыч
Есть формула расчета индекса RVI.
Что такое дельта Кi?
Отмечено стрелкой.
В описании написано, что это шаг страйка. Но шаг страйка у нас const. Причем здесь тогда индекс i ?
Или имеется в виду, что это модуль разности между К0 и Кi,
то есть Abs(K0 — Ki).
Понятно что под знаком суммы весовые коэффициенты для Price(Ki).
Но что же все таки принимать в качестве дельта Ki ?
Методика расчета: fs.moex.com/files/6756/
Update: сам нашел ответ в Интернете. В описании на VIX
Торговый робот должен (условно) удовлетворять следующим условиям:
Безусловно, эти требования ничего не гарантируют, хоть и несколько увеличивают доверие к потенциальным возможностям робота.
По мотивам невинно убиенных топиков 30% годовых без рисков и просадок на продаже покрытых опционов Си зафиксирую итоги прошедших двух недель (хотя это и не совсем правильно делать постфактум, тем не менее).
Посыл был такой: заводим на счет 1000 usd + рублевый эквивалент (сейчас уже 79000 руб), каждую неделю в четверг продаем стрэдл на центральном страйке из недельных опционов Si, ничего не делаем, в конце недели подсчитываем прибыль/убыток с учетом изменения курса USD.
На отдельный субсчет завел 1000 usd + 25000 руб (пожадничал). Вместо ничего не делать, решил при движении Si на 500 пп продавать еще один стрэдл уже на новом ЦС.
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()И вот результат прогнозирования: