Saludos amigos!!!!!
Estoy de nuevo con otra actualización del EA, en este caso es la version 1.4. No postee en ningun momento la 1.3 porque comence a hacer modificaciones y me parecio conveniente directamente lanzar la 1.4
Los cambios entre versiones hasta hora son (estan en el codigo fuente, pero para que todos lo vean):
VERSIONES:
- v1.0 - 26/06/2014 - MCSoft
Version inicial desarrollada en base al indicador "3MAS Cross Alert v2.mq4"
proporcionado por Ciclo.
- v1.1 - 25/06/2014 - MCSoft
Se agregó media 200 (ma4) para filtrar la
tendencia a largo plazo
se habilitaron operaciones de venta
- v1.2 - 25/06/2014 - Hermo/MCsoft
Siguiendo recomendaciones de Hermo, se acomodó el código de una manera mas legible
Se modifico el calculo de los
indicadores, para que el valor actual de cada indicador
se calcule al cierre de la
vela. El calculo previo era tick a tick y provocaba muchas
veces apertura y cierre de operaciones en la misma vela
- v1.3 - 25/06/2014 - Ciclo/MCsoft
Se agregó la opción del
horario de trading
- v1.4 - 27/06/2014 - Hermo/MCsoft
Se agregó el calculo automatico del valor del
pip de acuerdo a la cantidad de digitos del
broker
Se programo nuevamente el money management para calcular el tamaño de cada operación en funcion del
stop loss
de la orden, y el porcentaje maximo de perdida de la cuenta en caso de que la operacion sea perdedora
Creo que mas allá de los resultados que pueda dar este EA en dinero, creo que hemos logrado mucho aportando ideas y viendo como se aplican a un programa real.
Respondo a todos en este post para no llenar el tema de mensajes individuales:
CICLO:
- En este EA esta implementado el control de horario. Esta hecho de una forma básica (horario de inicio y de final del trading) y aun no tiene la opcion de cerrar posiciones el viernes, pero creo que podemos empezar a hacer pruebas con ello. Luego le agregamos los dias permitidos de trading y la opcion de cerrar posiciones el viernes
- En cuanto al MM, he implementado código nuevo, pero también he leido que es conveniente probar la
estrategia con
lote fijo para ver la efectividad sin la ayuda del MM.
HERMO:
- Aun no esta implementado el control del
spread, pero si agregue la compensacion para los
brokers de 3/5 y 6 digitos.
- He tomado la observación que hiciste sobre la modificación del
TakeProfit, y la he implementado de la misma manera, ahora desaparecio la opcion "trailing_take_profit" (la cual habia bautizado con ese nombre desde mi inexperiencia ja ja), y ahora, cuando el trailing stop detecta que la operacion logró los beneficios indicados en "trailing_start", simplemente le quita el takeprofit a la orden y actua corriendo solo el
stoploss, para que la orden pueda tomar todos los beneficios posibles.
- Sobre la compensacion del valor del pip: Comence mis pruebas con un metatrader limpio (bajado de la web metaquotes, no ligado a ningun broker), operando a 4 digitos, y luego, descargue otra versión con una cuenta
demo de un broker de 5 digitos y a partir de ese momento el programa me comenzo a dar resultados positivos. Luego, cuando hablamos el tema de la compensación del pip, me termino de cerrar lo que estaba pasando: al pasar de un broker de 4 digitos a uno de 5 digitos, mis parametros por defecto de vieron divididos por 10 (porque no habia compensacion por los digitos), entonces el EA esta trabajando con un TP de 5
pips, un SL de 9 pips y un trailing de 1 pip, haciendo una especie de scalping, por eso las posiciones se abren y cierran en su mayoria en la misma vela de 30 minutos. Ahora que la compensacion esta programada, reduje los parametros por defecto por 10 para seguir trabajando con los resultados previos. Mas adelante discuto los parametros por defecto y como podemos homogeneizar nuestros resultados para las pruebas.
GOROWIN:
bienvenido colega de Argentina, y gracias por interesarte en el tema. En cuanto a los resultados que has obtenido, yo creo que puede deberse a alguna de las siguientes cuestiones:
- Inicialmente comence desarrollando y probando con un broker de 4 digitos, y ahora lo estoy haciendo con uno de 5 digitos, en ese momento el EA comenzo a dar resultados positivos, creo que porque los valores de TP, SL y trailing quedaron divididos por 10. Ahora estoy adjuntando la version 1.4 que contempla los digitos que tiene el broker y lo compensa.
- Estuve realizando las pruebas con un spread fijo de 2, y veo que tu reporte tiene un spread configurado en "current" de 16
A TODOS LOS PARTICIPANTES QUE ESTEN PROBANDO Y ANALIZANDO EL EA:
He sido un poco desordenado con las pruebas, y estamos obteniendo resultados dispares (gracias Gorowin por la observacion), por ello, me parece que deberíamos fijar las condiciones en las que hacemos las pruebas, para que cada uno de nosotros obtenga los mismos resultados y pueda proponer mejoras y parametros que les sean utiles al resto.
Esta es la configuracion con la que estoy haciendo las pruebas:
- Par: EURUSD
- Parametros: Por defecto como estan en el EA que adjunto a continuacion
- Timeframe: 30M (he obtenido buenos resultados con 4H y 1D con los mismos parametros)
- Money Management: Por defecto ahora esta deshabilitado y opera con un lote fijo de 1 (mas abajo aclaro porque he fijado el valor de lote=1) para que veamos solamente la efectividad de la estrategia.
- Spread: fijado en el estrategy tester en 2
- Periodo: 2010.01.01 al 2014.06.01 (4 años y 5 meses)
- Simulación: cada tick
Este es el EA version 1.4 con todos sus parametros seteados a valores por defecto:
MCSoft_EA_3MA_v1.4.mq4
Y estos son los resultados de la estrategia que yo estoy obteniendo con la configuración comentada:
Strategy Tester Report
MCSoft_EA_3MA_v1.4
AlpariUK-Demo-Market (Build 646)
Símbolo |
EURUSD (Euro vs US Dollar) |
Período |
30 minutos (M30) 2010.01.04 00:00 - 2014.05.30 23:30 (2010.01.01 - 2014.06.01) |
Modelo |
Cada tick (el método más preciso basado en todos los períodos menores disponibles) |
Parámetros |
ea_nombre="=== MCSoft_EA_3MA_v1.3 ==="; parametros_generales="===== PARAMETROS GENERALES ====="; ea_magic_number=12345; slip_page_en_pips=2; control_ordenes="===== CONTROL ORDENES ====="; permitir_ordenes_multiples=false; procesar_en_cierre=true; MoneyManagement="===== CONFIGURACION MONEY MANAGEMENT ====="; calcular_lotes=false; lotes_por_trade=1; porcentaje_riesgo_por_trade=1; HorarioTrading="===== CONTROL HORARIO ====="; habilitar_horario_trading=false; hora_inicio_trading="16:00"; hora_cierre_trading="11:30"; ControlPosiciones="===== CONTROL POSICIONES ====="; take_profit_en_pips=5; stop_loss_en_pips=9; TrailingStop="----- Configuracion Trailing Stop -----"; habilitar_trailing_stop=true; trailing_start_en_pips=1; trailing_stop_en_pips=1; SettingIndicadores="===== SETTING INDICADORES ====="; _Indicator="===== 3EMAS Cross Alert - Ciclo ====="; periodo_ma1=4; periodo_ma2=18; periodo_ma3=40; periodo_ma4=200; |
|
Barras en la prueba |
55653 |
Ticks modelados |
65152566 |
Calidad del modelado |
90.00% |
Errores de gráficos mal agrupados |
0 |
|
|
|
|
|
Depósito inicial |
10000.00 |
|
|
Diferencial |
2 |
Beneficio neto total |
8381.20 |
Beneficio bruto |
33266.60 |
Pérdida bruta |
-24885.40 |
Factor de beneficio |
1.34 |
Rentabilidad esperada |
4.55 |
|
|
Disminución absoluta |
459.00 |
Disminución maximal |
736.00 (3.98%) |
Disminución relativa |
5.56% (684.00) |
|
Total de operaciones |
1840 |
Posiciones cortas (ganado %) |
864 (83.91%) |
Posiciones largas (ganado %) |
976 (84.22%) |
|
Operaciones de beneficios (% del total) |
1547 (84.08%) |
Operaciones de pérdidas (% del total) |
293 (15.92%) |
Mayor |
Operaciones de beneficios |
133.00 |
Operaciones de pérdidas |
-90.00 |
Media |
Operaciones de beneficios |
21.50 |
Operaciones de pérdidas |
-84.93 |
Máximo |
ganancias consecutivas (beneficios en dinero) |
61 (1552.00) |
pérdidas consecutivas (pérdidas en dinero) |
4 (-304.00) |
Máximo |
beneficios consecutivos (número de ganancias) |
1552.00 (61) |
pérdidas consecutivas (número de pérdidas) |
-304.00 (4) |
Media |
ganancias consecutivas |
6 |
pérdidas consecutivas |
1 |
Quiero hacer un comentario, ya que el tema del money management y calculo del valor de la posicion es nuevo para mi, y quiero ver si lo estoy entendiendo correctamente:
Con los parámetros por defecto, en cada trade el EA "se esta jugando" un valor de lote fijo de 1, lo que en EURUSD significa un valor de PIP de: Valor lote x tamaño lote x pip = 100000 x 1 x 0.0001 = 10 USD. Como el stop loss esta fijado en 9, la pérdida que se da si la orden alcanza el stoploss son 90 dolares, lo que para la cuenta de 10000 significa el 0.9%. Entonces, inicialmente podríamos aguantar una racha de hasta 111 operaciones perdedoras de 90 dolares sin reventar la cuenta (nuevamente, pido me corrijan si estoy calculando o interpretando algo mal).
Este valor se mantiene fijo en todo el periodo de prueba, entonces, a medida que nuesta cuenta va creciendo, arriesgamos cada vez menos, y podríamos sobrevivir a rachas perdedoras mas largas.
Por otro lado, con el money management habilitado, la cantidad de
lotes con que se abre cada operación se calcula teniendo en cuenta la cantidad porcentual máxima que estamos dispuestos a perder en caso que la operación no resulte, es decir, el cáculo es al revés. Si ingresamos como parametro 0.9 en el parametro
riesgo, inicialmente estamos en la misma situacion que antes, es decir, estamos dispuestos a perder el 0.9% de nuestra cuenta si la operacion no resulta, entonces el EA calcula un valor de lote de 1 (para la cuenta inicial de 10000 dolares), y hace la operacion, pero a medida que la cuenta va creciendo, se realizan operaciones más grandes, pero siempre manteniendo el porcentaje, por lo que siempre aguantaríamos la misma cantidad consecutiva de operaciones perdidas (en realidad con el MM la cosa mejora, porque a medida que vamos perdiendo el tamaño de lote decrece) A modo solo de observacion voy a postear los resultados con MM habilitado, un riesgo de 0.9% y manteniendo el resto de los parametros por defecto:
Strategy Tester Report
MCSoft_EA_3MA_v1.4
AlpariUK-Demo-Market (Build 646)
Símbolo |
EURUSD (Euro vs US Dollar) |
Período |
30 minutos (M30) 2010.01.04 00:00 - 2014.05.30 23:30 (2010.01.01 - 2014.06.01) |
Modelo |
Cada tick (el método más preciso basado en todos los períodos menores disponibles) |
Parámetros |
ea_nombre="=== MCSoft_EA_3MA_v1.3 ==="; parametros_generales="===== PARAMETROS GENERALES ====="; ea_magic_number=12345; slip_page_en_pips=2; control_ordenes="===== CONTROL ORDENES ====="; permitir_ordenes_multiples=false; procesar_en_cierre=true; MoneyManagement="===== CONFIGURACION MONEY MANAGEMENT ====="; calcular_lotes=true; lotes_por_trade=1; porcentaje_riesgo_por_trade=0.9; HorarioTrading="===== CONTROL HORARIO ====="; habilitar_horario_trading=false; hora_inicio_trading="16:00"; hora_cierre_trading="11:30"; ControlPosiciones="===== CONTROL POSICIONES ====="; take_profit_en_pips=5; stop_loss_en_pips=9; TrailingStop="----- Configuracion Trailing Stop -----"; habilitar_trailing_stop=true; trailing_start_en_pips=1; trailing_stop_en_pips=1; SettingIndicadores="===== SETTING INDICADORES ====="; _Indicator="===== 3EMAS Cross Alert - Ciclo ====="; periodo_ma1=4; periodo_ma2=18; periodo_ma3=40; periodo_ma4=200; |
|
Barras en la prueba |
55653 |
Ticks modelados |
65152566 |
Calidad del modelado |
90.00% |
Errores de gráficos mal agrupados |
0 |
|
|
|
|
|
Depósito inicial |
10000.00 |
|
|
Diferencial |
2 |
Beneficio neto total |
12640.64 |
Beneficio bruto |
53574.30 |
Pérdida bruta |
-40933.66 |
Factor de beneficio |
1.31 |
Rentabilidad esperada |
6.87 |
|
|
Disminución absoluta |
457.67 |
Disminución maximal |
1648.42 (7.17%) |
Disminución relativa |
7.17% (1648.42) |
|
Total de operaciones |
1840 |
Posiciones cortas (ganado %) |
864 (83.91%) |
Posiciones largas (ganado %) |
976 (84.22%) |
|
Operaciones de beneficios (% del total) |
1547 (84.08%) |
Operaciones de pérdidas (% del total) |
293 (15.92%) |
Mayor |
Operaciones de beneficios |
214.08 |
Operaciones de pérdidas |
-207.00 |
Media |
Operaciones de beneficios |
34.63 |
Operaciones de pérdidas |
-139.71 |
Máximo |
ganancias consecutivas (beneficios en dinero) |
61 (2257.96) |
pérdidas consecutivas (pérdidas en dinero) |
4 (-673.30) |
Máximo |
beneficios consecutivos (número de ganancias) |
2257.96 (61) |
pérdidas consecutivas (número de pérdidas) |
-673.30 (4) |
Media |
ganancias consecutivas |
6 |
pérdidas consecutivas |
1
|
Este ultimo backtest lo hice para verificar el funcionamiento del MM, pero creo que debemos seguir manejandonos con lote fijo en 1 (parametro por defecto) asi trabajamos todos sobre la misma base.
Espero sus comentarios.
Saludos a todos!!!!!!