Actualidad de sistemas e indicadores para #NinjaTrader http://t.co/3eiMVMVn #NinjaTrader
Programar criterio de Optimización.
20 mensajes
• Página 2 de 2 • 1, 2
Re: Programar criterio de Optimización.OK. Estupendo..!
Yo proponía la pendiente (o estimación lineal) por que tiene valores bastante parecidos a los del R2, y haciendo un ratio con estos dos podemos buscar unas curvas de equity muy deseables, como se puede ver haciendo pruebas con el excel que colgué. Además se obtiene de los mismos valore X Y que el coeficiente R2, y como estos ya están en el código, supongo que “solo” abria que aplicar la formula de la estimación lineal… Un saludo.
Re: Programar criterio de Optimización.Hola,
Creo que el criterio que pretendes optimizar es el que aparece en el libro de kestner "Estrategias de trading cuantitativo" (me parece que es este el libro aunque no estoy seguro del todo). El autor lo llama el K-ratio y tiene en cuenta la pendiente, el error tipico y el numero de operaciones. Lo invento el para tratar de paliar los "defectos" del Ratio Sharpe. Trabajo fuera de casa y hasta el finde no vuelvo. Intentare el sabado poner la formula con algun ejemplo y seguro que se ve mas claro. Saludos
Re: Programar criterio de Optimización.Hola a todos, muy buen hilo este.
Yo uso el SQN, que es casi imposible que falle, si hay 2 curvas de beneficio y A tiene SQN mas alto que B, entonces a simple vista la curva de A es o bien de mas pendiente, o bien mas suave. Casi nunca falla, sin embargo como ya sabéis sharpe, profit factor y similares si que fallan. Lo que busco ahora es una formula que partiendo de la ganancia promedio, desviación estándar de resultados, y similares, me diga el capital necesario para que en el futuro tenga 1 posibilidad entre 100 de ruina. Por ejemplo si indica que se necesitan 20.000 euros por 1 contrato y con eso en los próximos años hay 1 posibilidad entre 100 de ruina, puedo dividir el capital ganado por año, entre 20.000 y obtengo la ganancia porcentual por año, cuanto mas alta mejor, y así se pueden comparar estrategias. Ademas tiene la utilidad de hacer gestión de capital, indicándote cuantos contratos debes trabajar. Y no me sirve hacer montecarlo, ya que supone mucho lio. Estoy intentando sacar una fórmula que se aproxime mediante una simulación en excel, a ver que consigo.
Re: Programar criterio de Optimización.
Venga, explícate un poco no? Un abrazo!
Re: Programar criterio de Optimización.A la hora de comprobar si un sistema es bueno o no, uso la fórmula SQN, cuanto mas alto sea mejor, nunca falla.
Pero además uso otra muy básica. Calculo la mayor serie de pérdidas que se han tenido, después la multiplico por 2,5, y después sumo 3000 euros de garantías, y con ello obtengo el capital que aproximadamente se necesita. Puesto que conozco lo que el sistema ha ganado, calculo lo que se gana al año, y por tanto tengo finalmente el % ganado anualmente. La fórmula es demasiado básica y quiero mejorarla, ya que la mayor serie de pérdidas del pasado, es algo puntual que sucedió en un momento determinado. Seria mejor una fórmula que tenga en cuenta todo el histórico para calcular cuanto capital se necesita. Pero hablo de una fórmula, no simulación de montecarlo ni cosas demasiado complejas, algo aproximado me vale. Entonces tengo una aproximación que puede valer y paso a contar. Conocemos estos datos: Operaciones totales 299 tiempo de simulación 8,5 años operaciones perdedoras 91 ganado total 85541 euros de las operaciones perdedoras, de promedio se pierde 1034 euros y de ahí deducimos: operaciones al año 35,18 operaciones en 10 años son 351,76 1 operación cada 10 años sucede el 0,2842% del tiempo (1/351,76) (lo de los 10 años es arbitrario podemos elegir otro periodo de tiempo) o lo que es lo mismo, en probabilidad 0,002842 las perdedoras son el 30%, osea probabilidad de 0,30 Probabilidad de un suceso ^ número de repeticiones = probabilidad de que se de ese suceso repetidas veces Por ejemplo 0,5 de que salga cara, 3 veces seguidas, entonces 0,5^3= 0,125 = 12,5% de las veces salen 3 caras seguidas Conocemos la probabilidad de que salga una operación perdedora, 0,3 Queremos que ese suceso aparezca 1 vez cada 10 años, osea en proporción 0,002842 Probabilidad de perdedora ^ x = probabilidad de que se den x perdedoras seguidas en 10 años 0,3 ^ x = 0,002842 Es decir, x es las veces seguidas que aparece una operación perdedora en 10 años x = log(0,002842) / log(0,3) x= 4,9 Como cuando pierde, pierde 1034, entonces peor serie de perdidas esperada en 10 años = 1034 * 4,9 = 5096 Si queremos que la peor serie de pérdidas represente sólo el 10% de nuestro capital entonces capital necesario = 5096 * 10 = 50961 ganado al año = 85541 / 8,5 = 12220 % anual = 12220/50961*100 = 23,97 Este sistema tiene un retorno anual del 23,97% y un SQN de 3,95
Re: Programar criterio de Optimización.Hola polxx,
No sabía que le dabas también al Ninja. En cualquier caso me alegro de verte por aquí. Parece interesante este hilo, lo seguiré con atención ahora que estoy de vacaciones... Un saludo INtrader
Re: Programar criterio de Optimización.Hola, pues he hecho unas simulaciones con excel y la fórmula es errónea. Lo que calcula es la peor serie de perdidas que sucederá de un tirón, osea de todas perdedoras seguidas, y esa la acierta, pero la peor serie de perdidas tal y como la entendemos todos, no lo calcula.
Es decir si lo peor que sucede en el futuro es perder 10, ganas 2 y perder 5. En verdad es como perder 13, pero te dice que perderás 10 seguidas, no lo acierta clavao, pero estadisticamente si acierta, pero claro ese dato no sirve. Así que no me vale.
Re: Programar criterio de Optimización.Hola. ¿alguien sabe como se accede al TickSize en un criterio de optimizacion?
Es para calcular los ticks de ganancia media por ope (algo muy básico) Dentro de una estrategia si puedo hacer ese calculo mediante por ejemplo: double np7 = Performance.AllTrades.TradesPerformance.Points.AvgProfit / TickSize; Tambien el ticksize se puede acceder en unas velas Custom: double TickSize1 = bars.Instrument.MasterInstrument.TickSize; Pero en los OptimizationType no reconoce ticksize. ¿alguna idea de como se hace?
Re: Programar criterio de Optimización.Hola Fer137,
cuando programas un criterio de optimización heredas de OptimizationMethod, que es una clase abstracta que tiene una propiedad Strategy. Así que dentro del código de tu clase que herede de OptimizationMethod puedes obtener el tickSize con: double myTickSize = this.Strategy.Instrument.MasterInstrument.TickSize; Un abrazo
Re: Programar criterio de Optimización.Muchas gracias cls.
Es lo que tiene hacer ninjascript antes que c#. Cuando hice informática no había objetos, solo sujetos y verbos:)
20 mensajes
• Página 2 de 2 • 1, 2
Volver a Cuestiones de Programación ¿Quién está conectado?Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados |
|
| Bridge by mehdiplugins.com |










