Saludos amigos, estoy de nuevo con novedades sobre el EA 3EMA:
Hermo, me gusto mucho el estilo de codificación y las modificaciones que realizaste sobre el código, creo que ahora es mucho mas legible. Solo hice modificaciones menores y agregue algunos comentarios extra, pero me parece que ahora se entiende mucho mejor.
En cuanto a la operativa, la principal modificación que realice y por ello le cambié la versión a 1.2, es la siguiente:
Anteriormente el EA, procesaba al inicio de la barra, y calculaba los
indicadores sobre el tick actual, por lo tanto, el valor actual de las EMAs, siempre se calculaba sobre la apertura de la barra. Ese comportamiento provocaba
señales erroneas, porque muchas veces ocurría que una barra mientras se esta formando genera cruces de EMAs, y al terminar de formarse, el cruce desaparece. Entonces, si la barra al abrir mostraba una
tendencia y al cerrar mostraba otra, provocaba que una operacion se abriera con la barra y se cerrara con la barra siguiente, no se si me explico bien.
La modificación consiste en reemplazar todos los indices de los calculos de los indicadores para que se calculen sobre la
vela cerrada previa (vela 1) y la anterior (vela 2), al tick que se esta ejecutando.
Solo con esa modificación, el backtest paso de esto:
Archivo adjunto 28585
Informe:
Backtesting entre 01/01/2010 -> 25/06/2014 - TF 30M
Depósito inicial: 10000.00
Diferencial: 2
Beneficio neto total: 6713.01
Factor de beneficio: 1.45
Rentabilidad esperada: 6.78
Disminución absoluta: 46.21
Disminución maximal: 962.23 (8.17%)
Disminución relativa: 8.17% (962.23)
Total de operaciones: 990
Posiciones cortas (ganado %): 468 (86.97%)
Posiciones largas (ganado %): 522 (87.36%)
Operaciones de beneficios (% del total): 863 (87.17%)
Operaciones de pérdidas (% del total): 127 (12.83%)
Mayor Operaciones de beneficios: 206.64
Mayor Operaciones de pérdidas: -153.00
Media Operaciones de beneficios: 25.12
Media Operaciones de pérdidas: -117.84
Máximo ganancias consecutivas (beneficios en dinero): 27 (826.18)
Máximo pérdidas consecutivas (pérdidas en dinero): 4 (-531.90)
Media ganancias consecutivas: 8
Media pérdidas consecutivas: 1
a esto:
Archivo adjunto 28586
Informe:
Backtesting entre 01/01/2010 -> 25/06/2014 - TF 30M
Depósito inicial 10000.00
Diferencial 2
Beneficio neto total: 13768.01
Factor de beneficio: 1.33
Rentabilidad esperada: 7.34
Disminución absoluta: 458.45
Disminución maximal: 1659.23 (7.19%)
Disminución relativa: 7.19% (1659.23)
Total de operaciones: 1875
Posiciones cortas (ganado %) : 881 (84.00%)
Posiciones largas (ganado %): 994 (84.51%)
Operaciones de beneficios (% del total): 1580 (84.27%)
Operaciones de pérdidas (% del total): 295 (15.73%)
Mayor Operaciones de beneficios: 215.04
Mayor Operaciones de pérdidas: -216.00
Media Operaciones de beneficios: 35.16
Media Operaciones de pérdidas: -141.63
Máximo ganancias consecutivas (beneficios en dinero): 61 (2268.07)
Máximo pérdidas consecutivas (pérdidas en dinero): 4 (-677.24)
Media ganancias consecutivas: 7
Media pérdidas consecutivas: 1
Ahora me esta gustando mucho mas ja ja ja!!!!
Creo que con la modificacion que le realice se soluciona el problema que mencionabas sobre posiciones abiertas en el momento incorrecto, ahora las abre a vela cerrada, con el cruce confirmado.
En cuanto a los demás comentarios:
1- Sobre el stop_loss = 0 y
take profit=0: Ya lo solucione con una pequeña modificacion a las funciones abrir_orden_buy y abrir_orden_sell. Dichas funciones, al intentar convertir
pips a
precio, generaban un precio erroneo cuando los pips pasados como parametro eran 0, entonces la orden se rechazaba.
2- "Echo de menos un control de spread, que se incluiria en los parametros generales."
Sinceramente no conozco que significa el control de spread (recuerda que soy muy novato en el trading). Si tienes una explicación o link que me puedas proporcionar lo veo y discutimos como implementarlo
3- "Echo de menos un autocontrol de digitos del broker, esto evitaria, como en este caso, tener que realizar multiplicaciones tanto del Take Profit, Stop Loss, Trailing... etc., dependiendo si trabajamos con un broker de 4 digitos o 5 digitos."
Voy a analizar el fragmento de código que me proporcionaste y lo voy a incluir en la proxima versión
4- "
Y ya por ultimo que me expliques mejor por favor, estos dos parámetros:
calcular_lotes = true; // Calcular valor del
lote
Este parámetro entiendo que quieres utilizar un tanto % del valor de la Equity si no me equivoco, corrígeme si estoy en lo cierto."
Es correcto, quiero calcular el valor del lote a emplear en base al
riesgo que deseo tomar en cada operación, esto es algo que aún lo tengo muy verde en mi cabeza, por eso acepto sugerencias y recomendaciones
5- "La opcion habilitar_trailing_take_profit"
Esta opcion la codifique con mi poco conocimiento de la jerga del trading, por ello espero que me corrijan. La idea es que cuando esta opcion esta habilitada, al momento de hacer trailing stop sobre una orden, si se modifica el mismo, el take profit también se modifique siguiendolo. En principio, esto permite que las operaciones que estan ganando, por ejemplo compras, vayan aumentando stop loss para proteger los beneficios ganandos y tambien subiendo al mismo tiempo el take profit con la esperanza de agarrar una tendencia larga y obtener mas beneficios.
Vuelvo a repetir, no se si hay un nombre especial para este comportamiento, si es asi lo cambiamos para que quede correcto.
Adjunto entonces la nueva version del EA y espero comentarios:
Archivo adjunto 28587
Saludos!!!!