Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1138
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Según mis observaciones, afilar más de 1 no ha funcionado todavía. Sí, y las cuentas de otras personas / gráficos con un gran índice no ha visto. Todavía no lo sé.
En la descripción de la fórmula no queda claro cómo comprobarla, por ejemplo, ¿cómo se calculala "media aritmética de los beneficios a lo largo del tiempo de mantener una posición"?
¿Tal vez se trate de una pequeña expectativa matemática?
De todos modos, me he dado cuenta de que cuanto más alto sea este índice, mejor, y esto no es poco, y el informe principal se escribe en el archivo con esos índices que yo entiendo.
Bueno, qué puedo decirles estimados caballeros...
Son efectos secundarios de la utilización de cajas negras, bibliotecas ajenas, etc.
Solo puedo ofrecerte publicar la equidad en CSV de tu investigación y te diré cual es el Sharp Ratio correcto de tus modelos, puedes calcular tu mismo el código adjunto (python)
import random
import csv
import matplotlib
import matplotlib.pyplot as plt
def rndWalk(length, start, var):
rndwalk = []
curent = start
for _ in range(length):
curent*= 1 + random.gauss(0,3) * var
rndwalk.append(curent)
return rndwalk
def ParseCsv(path, columnName):
tab = csv.DictReader(open(path))
price = []
for row in tab: price.append(float(row[columnName]))
return price
def diff(ts):
return [ts[n] - ts[n - 1] for n in range(1, len(ts))]
def SharpRatio(PnL):
ret = sum(PnL) / len(PnL)
var = ((sum([(x - ret) ** 2 for x in PnL]) / len(PnL))) ** 0.5
return len(PnL) ** 0.5 * ret / var
rw = rndWalk(10000,100,0.001)
sr = SharpRatio(diff(rw))
print(sr)
plt.plot(rw)
plt.show()
El código de SharpRatio sólo tiene 3 líneas
def SharpRatio(PnL):
ret = suma(PnL) / len(PnL)
var = ((suma([(x - ret) ** 2 para x en PnL]) / len(PnL)) ** 0.5
return len(PnL) ** 0.5 * ret / var
Si me envías la equidad o el PnL, intentaré averiguar cuál es el problema. Puedo adivinar que el PnL se utiliza "descargado", es decir, con huecos entre las operaciones (lo que, por supuesto, no es correcto), y de ahí el escalamiento. Apostaría 100 dólares a que éste es el problema.
Qué puedo decirles señores...
Estos son los efectos secundarios del uso de cajas negras, bibliotecas alienígenas, etc.
Sólo puedo ofrecerte que publiques la equidad en CSV de tu investigación y te diré cuál es el Sharp Ratio correcto de tus modelos, puedes calcular tú mismo el código adjunto (python)
¿Cómo darle el Sharp Ratio, por hora y por minuto?
¿Cómo se da la equidad, por hora y por minuto?
No importa, que sean ambos
Por cierto, uno de los signos de que el cálculo de Sharp es erróneo es cuando la equidad en diferentes escalas da números significativamente diferentes de Sharp Ratio mientras que normalmente deberían estar muy cercaNo importa, hagamos las dos cosas.
Por cierto, uno de los signos de un cálculo erróneo de la baraja es cuando la equidad en diferentes escalas da números significativamente diferentes de las proporciones de la baraja mientras que normalmente deberían estar muy cercaDe acuerdo, pero un poco más tarde - ahora mismo todas las máquinas están jadeando por un ajuste de la historia :)
No importa, hagamos las dos cosas.
Por cierto, uno de los signos de una estimación errónea de Sharp es que las acciones en diferentes escalas dan números esencialmente diferentes de Sharp Ratio mientras que normalmente deberían estar muy cerca.Doy la variante por minuto, y adjunto el informe de operaciones del probador.
Es cierto que he mejorado un poco los indicadores.
El ratio de Sharpe es ahora de 0,29.
Doy una variante por minuto, y adjunto el informe de operaciones del probador.
Pero he mejorado un poco los indicadores.
El ratio de agudeza es ahora de 0,29.
Relación real de Sharp = ~3,79
El error de los que intentaron calcular sus cifras es evidente. Simplemente se olvidaron de escalar la relación entre el retorno y la variación por la raíz cuadrada de la longitud de la serie
def SharpRatio(PnL):
PnL = [x para x en PnL si abs(x) > 0]
ret = suma(PnL) / len(PnL)
var = ((suma([(x - ret) ** 2 para x en PnL]) / len(PnL)) ** 0.5
return len(PnL) ** 0.5 * ret / var
PS: SR=3.79 es muy optimista, por supuesto si no es un taller de explotación y probado correctamente
ratio Sharp real = ~3,79
El error de los que hicieron el algoritmo para calcular tus números es evidente. Se olvidaron estúpidamente de escalar la relación entre el retornado y la variación por la raíz cuadrada de la longitud de la serie
def SharpRatio(PnL):
PnL = [x para x en PnL si abs(x) > 0]
ret = suma(PnL) / len(PnL)
var = ((suma([(x - ret) ** 2 para x en PnL]) / len(PnL)) ** 0.5
return len(PnL) ** 0.5 * ret / var
PS: SR=3.79 es muy optimista, por supuesto si no es un sudor (hasta cierto punto) y probado correctamente
Gracias por el recuento.
Si realmente es un error, tal vez valga la pena reportarlo en un hilo especial, ya que es un error global en la terminal?
En cuanto a la adaptación, tengo mi propio enfoque de MO, recojo las hojas de los árboles y luego miro su rendimiento en la historia en términos de muestra entrenada y desconocida, donde hubo un efecto positivo en ambas muestras pasan al siguiente grupo para la selección y el análisis detallado. Esto es en parte un ajuste, pero con ajustes por el hecho de que tal "hoja" funcionó antes y funciona ahora, y lo que pasará después - nadie lo sabe.
Gracias por el recuento.
Si realmente es un error, tal vez deberías reportarlo en un hilo especial, ya que es un error global en la terminal?
Sí, definitivamente es un error, debe ser reportado, ¿te importa si uso tu reporte como ejemplo?
Aleksey Vyazmikin:
En cuanto a la adaptación, tengo mi propio enfoque de MO, recojo las hojas de los árboles y luego miro su rendimiento en la historia en términos de muestra entrenada y desconocida, donde hubo un efecto positivo en ambas muestras pasan al siguiente grupo para la selección y el análisis detallado. Esto es en parte adecuado, pero con el ajuste de que tal "hoja" funcionaba antes y funciona ahora, y que nadie sabe lo que va a pasar después.
El ajuste está en todas partes, se mire como se mire, la cuestión es cómo reducirlo a un nivel aceptable.
El ajuste está en todas partes, se mire como se mire, la cuestión es cómo reducirlo a un nivel aceptable.
No se puede. Cualquier optimización, cualquier puesta a punto, cualquier entrenamiento es un ajuste. Hay que aceptarlo como algo inevitable y trabajar con ello.
La cuestión debe plantearse de otra manera en este caso. Desgraciadamente, probablemente no haya recetas generales, y la propia formulación puede ser diferente para los distintos sistemas.
No se puede. Cualquier optimización, cualquier puesta a punto, cualquier entrenamiento es un ajuste.
Aquí hay que plantear la cuestión de otra manera. Desgraciadamente, probablemente no haya recetas generales, y la propia formulación puede ser diferente para los distintos sistemas.
Ver
No utilice números que necesiten ser ajustados