Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
Moving Average - Asesor Experto para MetaTrader 4
- Visualizaciones:
- 1686
- Ranking:
- Publicado:
- 2016.04.14 13:18
- ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
El asesor Moving Average usa para formar las señales comerciales una media móvil. La apertura y cierre de posición tiene lugar cuando la media móvil cruza el precio de la barra recién formada (el índice de la barra es igual a 1). El tamaño del lote se optimiza conforme a un algoritmo especial.
El asesor analiza el cruce de la media móvil y el gráfico de mercado de precio. La comprobación la realiza la función CheckForOpen(). Si la media móvil cruza una barra de tal forma que esté por encima del precio Open y por debajo de Close, entonces se abre una posición BUY. Si la media móvil cruza una barra de tal forma que esté por debajo del precio Open y por encima de Close, entonces tiene lugar la venta.
En el asesor se aplica un Money Management muy sencillo pero eficaz: el método de gestión del volumen de cada posición depende de los resultados de las operaciones anteriores. El algoritmo indicado se implementa con la función LotsOptimized(). El cálculo del tamaño básico del lote tiene lugar basándose en el riesgo máximo permitido:
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
El parámetro MaximumRisk muestra el valor básico del riesgo en tanto por ciento para cada operación. Normalmente adopta un valor que va desde 0.01 (1%) hasta 1 (100%). Por ejemplo, si los recursos libres (AccountFreeMargin) son iguales a $20500 y la normas de gestión de capital recomiendan usar un 2%, entonces el tamaño del lote será 20500 * 0.02 / 1000 = 0.41. Es muy importante controlar la exactitud del tamaño del lote y normalizar el resultado con los valores permisibles. Normalmente se permiten lotes fraccionados con un salto de 0.1. Una operación con un volumen de 0,41 no se ejecutará. Para la normalización se usa la función NormalizeDouble() con una precisión de un dígito detrás de la coma. Como resultado, tenemos un lote básico igual a 0.4. El cálculo del lote básico basándose en el margen libre permite aumentar el volumen de las operaciones dependiendo del éxito en el comercio, es decir, se puede comerciar reinvirtiendo los recursos. Este es un mecanismo básico en la gestión obligatoria del capital para aumentar la eficiencia comercial.
DecreaseFactor - nivel de disminución del tamaño del lote después de una transacción sin éxito. Valores habituales - 2,3,4,5. Si las transacciones anteriores no han sido rentables, los consiguientes volúmenes disminuyen usando el factor DecreaseFactor para transmitir el periodo desafortunado. En el algoritmo de gestión de capital es el factor más importante. La idea es muy simple: si el comerio redunda en beneficios, el asesor trabaja con el lote básico, ganando al máximo. Después de la primera operación con pérdidas, "disminuye la velocidad," hasta que lleve a cabo una transacción positiva. El algoritmo permite desactivar la "disminución de velocidad", si se especifica un DecreaseFactor = 0. En la historia de las transacciones se calcula la cantidad de las últimas operaciones perdedoras consecutivas. Sobre esta base, se vuelve a calcular el lote básico:
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
De esta forma, el algoritmo puede reducir efectivamente el riesgo debido a la sucesión de transacciones no exitosas anteriores.
Al final de la función se realiza la comprobación obligatoria del tamaño de lote mínimo permitido, dado que como resultado de los cálculos anteriores se puede obtener lot = 0:
if(lot<0.1) lot=0.1;
El asesor está diseñado principalmente para trabajar en el período diario, y en el modo de prueba con precios de cierre. El asesor comercia solamente en la apertura de una nueva barra, por lo que no es necesario utilizar el régimen de modelado de ticks detallado.
Strategy Tester Report
Moving Average
Símbolo EURUSD (Euro vs US Dollar) Periodo 1 Hora (H1) 2003.01.08 00:00 - 2003.11.25 00:00 Modelo Todos los ticks (en base a todos los periodos menores con interpolación fractal de cada tick) Parámetros Lots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11; Barras en la historia 19368 Ticks modelados 656915 Calidad del modelado
25.00% Depósito inicial 10000.00 Beneficio neto 1695.20 Beneficio total 4293.20 Pérdidas totales -2598.00 Rentabilidad 1.65 Esperanza matemática de ganancia 10.80 Disminución absoluta 40.35 Disminución máxima (%) 318.50 (3.0%) Operaciones totales 157 Posiciones cortas (% con ganancias) 73 (26.03%) Posiciones largas (% con ganancias) 84 (32.14%) Operaciones con beneficios (% del total) 46 (29.30%) Operaciones con pérdidas (% del total) 111 (70.70%) Operación con mayores beneficios 262.55 mayores pérdidas -91.00 Средняя mayores beneficios 93.33 mayores pérdidas -23.41 Cantidad máxima de ganancias seguidas (beneficio) 2 (387.15) ganancias seguidas (beneficio) 7 (-287.25) Máximo de ganancias inenterrumpidas (número de ganancias) 387.15 (2) pérdidas ininterrumpidas (número de pérdidas) -287.25 (7) Ganancia consecutiva media 1 pérdidas consecutivas 3
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/7927
El script expone las capacidades de representación de información de texto en el gráfico
Velocity_v2Indicador Velocity_v2.
Superponer dos o más gráficas en una misma ventana.
Qualitative Quantitative EstimationIndicador Qualitative Quantitative Estimation. Utiliza RSI.