Universal MA Cross EA - página 64

 

Hola podría alguien por favor añadir un código de equilibrio a este Ea.

El precio se mueve x pips mover parada para romper incluso más x pips. He intentado, pero seguir recibiendo múltiples errores.https://www.mql5.com/en/forum

Gracias de antemano por cualquier ayuda.

Archivos adjuntos:
 

¿es esto lo que está buscando?

Mjack59_59@yahoo.com:
Hola podría alguien por favor añadir un código de equilibrio a este Ea.

El precio se mueve x pips mover la parada para romper incluso más x pips. Lo he intentado pero sigo obteniendo múltiples errores.https://www.mql5.com/en/forum

Gracias de antemano por cualquier ayuda.

no es exactamente lo que quieres, supongo, ya que no tengo claro lo que quieres decir... pero empieza con esto y dime...

sn

Archivos adjuntos:
 

no funciona para el jefe del corredor de 5 dígitos?

firedave:
Trato de hacer un EA para cualquier estrategia de Moving Average Cross, tratar de hacerlo universal. Así que por favor, hágamelo saber si usted tiene alguna sugerencia para agregar a este EA.

Configuración común :

-----------------

StopLoss (por defecto 100)

Establezca su Stop Loss. Use 0 (cero) si no le gusta usar el Stop Loss ( no recomendado ).

TakeProfit (por defecto 200)

Establezca su Take Profit. Utilice 0 (cero) si le gusta utilizar el objetivo abierto.

Ajuste del Trailing Stop :

----------------------

ver.6 TrailingStopType (por defecto 1)

Establece el tipo de trailing stop. 1:comenzará el trailing si el beneficio en pips es mayor / igual que el TrailingStop. 2:se iniciará el trailing en cuanto la operación tenga beneficios. (se añadirá otro tipo de trailing stop si se sugiere, la última sugerencia es SafeZone trailing stop post #99 https://www.mql5.com/en/forum/general )

TrailingStop (por defecto 40)

Establece el Trailing Stop. Use 0 (cero) si no usa la función de trailing stop.

Ajuste de la media móvil :

------------------------

FastMAPeriod (por defecto 10)

Período de la media móvil rápida.

FastMAType (por defecto EMA / 1)

Tipo de media móvil rápida 0:SMA 1:EMA 2:SMMA 3:LWMA

FastMAPrice (por defecto Close / 0)

Precio aplicado de la media móvil rápida 0:Cierre 1:Apertura 2:Máximo 3:Mínimo 4:Mediana 5:Típico 6:Ponderado

ver.7.2 FastMAshift (por defecto 0)

Desplazamiento de la media móvil rápida

SlowMAPeriod (por defecto 80)

Período de la media móvil lenta.

SlowMAType (por defecto EMA / 1)

Tipo de media móvil lenta 0:SMA 1:EMA 2:SMMA 3:LWMA

SlowMAPrice (por defecto Close / 0)

Precio aplicado de la media móvil lenta 0:Cierre 1:Apertura 2:Máximo 3:Mínimo 4:Mediana 5:Típico 6:Ponderado

ver.7.2 FastMAshift (por defecto 0)

Desplazamiento de la media móvil lenta

Distancia mínima cruzada :

------------------------

ver.2 MinCrossDistance (por defecto 0)

Establece la distancia mínima entre FastMA y SlowMA para ser considerada como un cruce válido. Utilice 0 (cero) para desactivar este filtro.

ver.7 MaxLookUp (por defecto 1)

Establece el número de barras después del cruce para seguir comprobando la condición de entrada con respecto a la distancia mínima entre FastMA y SlowMA. Necesita MinCrosDistance > 0 para habilitar esta función. Use 0 (cero) para desactivar esta función.

Salir de la configuración :

-------------

StopAndReverse (por defecto true)

Si se establece en TRUE, se saldrá de cualquier operación y se invertirá la posición cuando cambie la señal.

PureSAR (por defecto falso)

Si se establece en TRUE, no utilizará Stop Loss - Take Profit - y Trailing Stop. Esto es siempre en la configuración de juego.

ver.7.2 ExitOnCross (por defecto false)

Si se establece en TRUE, saldrá de cualquier operación si hay un cruce opuesto sin considerar ningún filtro adicional. Así que la salida se basa puramente en el cruce de la media móvil.

Tercer ajuste de la media móvil:

------------------

ver.5 UseThirdMA (por defecto false)

Si se establece en TRUE (y UseCounterTrend = FALSE), sólo se negociará de acuerdo a la dirección de la Tercera MA, por encima para la COMPRA y por debajo para la VENTA.

ver.5 UseCounterTrend (por defecto false)

Si se establece en TRUE mantendrá la operación incluso si la dirección de la ThirdMA es contraria, pero con diferentes StopLoss y TakeProfit. Necesita UseThirdMA = TRUE para activar esta función.

ver.7 OnlyCounterTrend (por defecto false)

Si se establece en TRUE, el EA sólo operará en contra de la tendencia, es decir, COMPRAR si se cruza por debajo de la ThirdMA y VENDER si se cruza por encima de la ThirdMA. Necesita UseCounterTrend = TRUE para activar esta función.

ver.5 ThirdMAPeriod (por defecto 100)

Tercer periodo de la media móvil.

ver.5 ThirdMAType (por defecto EMA / 1)

Tercer tipo de media móvil 0:SMA 1:EMA 2:SMMA 3:LWMA

ver.5 ThirdMAPrice (por defecto Close / 0)

Tercera media móvil Precio aplicado 0:Cierre 1:Apertura 2:Máximo 3:Mínimo 4:Mediana 5:Típico 6:Ponderado

ver.7.2 ThridMAshift (por defecto 0)

Desplazamiento de la tercera media móvil

ver.5 CTStopLoss (por defecto 0)

Establezca su Stop Loss para la operación en contra de la tendencia. Use 0 (cero) si no le gusta usar el Stop Loss ( no recomendado ).

ver.5 CTTakeProfit (por defecto 0)

Establezca su Take Profit para la operación de Contra-Tendencia. Use 0 (cero) si le gusta usar el objetivo abierto.

Ajuste del filtro de pivote :

-------------------

ver.8.0 Use.Pivot.Filter (por defecto false)

Establezca en true si quiere filtrar la operación, sólo COMPRAR si el cruce de MA Lento y Rápido ocurre entre S1 y S2 y sólo VENDER si el cruce de MA Lento y Rápido ocurre entre R1 y R2.

Configuración de la orden :

--------------

ReverseCondition (por defecto falso)

Establezca TRUE para invertir la condición de entrada.

ver.3 ConfirmedOnEntry (por defecto true)

Si se establece en TRUE, entrará/saldrá de la operación en la siguiente barra después de la confirmación de la cruz. Si se establece en FALSE, entrará/saldrá de la operación tan pronto como haya un cruce.

ver.4 OneEntryPerBar (por defecto true)

Si se establece en TRUE, sólo se negociará una vez en una barra. Si se establece en FALSE, negociará más de una vez en una barra si la condición de entrada sigue siendo válida, aunque todavía una operación a la vez.

NumberOfTries (por defecto 5)

Número de intentos si la orden es rechazada por el sistema.

Slippage (por defecto 5)

Ajuste del deslizamiento.

MagicNumber (por defecto 1234)

Se utiliza para generar el Número Mágico. Cambie este número SÓLO si desea ejecutar el EA en el mismo par y el mismo marco de tiempo pero con una configuración diferente.

Configuración de apertura de múltiples operaciones:

-----------------------------

ver.5 MaxOpenTrade (por defecto 2)

Número de operaciones abiertas máximas a la vez. Este ajuste se utiliza cuando StopAndReverse / PureSAR = FALSE para que el EA no cierre la orden abierta cuando haya una señal contraria, sino que abra una nueva operación. Establezca el número de operaciones abiertas permitidas. Si StopAndReverse / PureSAR = TRUE este ajuste siempre será = 1, lo que significa una operación a la vez.

ver.6 MinPriceDistance (por defecto 5)

Si se permiten múltiples operaciones abiertas (estableciendo MaxOpenOrder>1 y OneEntryPerBar=FALSE) este número determinará la distancia mínima entre cada operación en la misma dirección.

Configuración del filtro de tiempo :

-------------------

UseHourTrade (por defecto falso)

Si se establece en TRUE, el EA sólo se activa en un momento determinado.

StartHour (por defecto 10)

Hora en la que el EA comienza a estar activo (utilizar con UseHourTrade = TRUE).

EndHour (por defecto 11)

Hora en la que el EA deja de estar activo (utilizar con UseHourTrade = TRUE).

Configuración de la gestión del lote y del dinero :

------------------------------------

Lotes (por defecto 1)

Número de lote por operación.

MM (por defecto falso)

Si se establece en TRUE, se utilizará la gestión monetaria incorporada.

AccountIsMicro (por defecto false)

Si se utiliza la cuenta micro, se ajusta a TRUE.

Riesgo (por defecto 10)

Utilizar con MM = TRUE para establecer el riesgo por operación.

Configuración de Alertas Cruzadas :

--------------------

ver.5 EnableAlert (por defecto true)

Hará sonar una alerta cuando se produzca un cruce de medias móviles, un cruce hacia arriba o un cruce hacia abajo.

ver.5 SoundFilename (por defecto "alert.wav")

El nombre del archivo para la alerta.

Configuración de BackTest :

------------------

PrintControl (por defecto true)

Imprime algún comentario sobre el backtesting.

Show_Settings (por defecto true)

Muestra la configuración en el gráfico.

Hazme saber si todavía tienes problemas con la configuración. Gracias a codersguru y pengie por varios códigos parciales. Espero que esto ayude

Diario :

-----------

versión.6:

- fijo ConfirmedOnEntry error.

- añadir trailing stop inmediato.

- añadir MinPriceDistance para el comercio abierto múltiple.

versión. 7 :

- añadir la función MaxLookUp para seguir comprobando la entrada después de cierta barra desde el cruce con respecto a la MinCrossDistance.

- añadir la función OnlyCounterTrend si se utiliza el filtro ThirdMA.

versión.7.1:

- corregido el error MinCrossDistance.

versión.7. 2 :

- corregido el error MinCrossDistance para ConfirmedOnEntry = FALSE.

- Se añade el parámetro MA shift.

- Añadir la función ExitOnCross.

versión.7. 3 :

- corregido el COMENTARIO de visualización en pantalla.

versión. 8.0 :

- añadido el filtro Pivot.

versión.8. 1 :

- revisado algo de código porque Build 206 bugs.
 

stoploss / takeprofitno válido

Hola Serpentsnoir,

He probado esta versión en 5 dígitos, con

StopLoss=30

TakeProfit=40

y el error generado como se muestra aquí;

2011.04.27 22:47:44 universalMACrossEA[5 Dig]-V4 EURGBP,M5: sn Debug on sell: Bid,Slippage,aStopLoss,aTakeProfit 0.88554/30.00000/0.88466/0.89066

2011.04.27 22:47:44 universalMACrossEA[5 Dig]-V4 EURGBP,M5: sn Debug on sell: ticket,err,count -1/130/5

¿Podríais enseñarme cómo solucionar lo de que 130 es un stop no válido (TP, SL)?

Saludos

Takingpip

 

Stop Loss no válido, error 130

Los niveles de StopLoss y TakeProfit no pueden estar demasiado cerca del mercado. La distancia mínima de los niveles de stop en puntos puede obtenerse utilizando la función MarketInfo() con el parámetro MODE_STOPLEVEL. En el caso de niveles de stop erróneos o no normalizados, se generará el error 130 (ERR_INVALID_STOPS).

Lo anterior proviene de la documentación de Metaquotes.

El error 130 se produce cuando se fija el stop loss demasiado cerca del precio Bid/Ask. Por lo general, significa que debería aumentar el stop loss para corregir el problema o, posiblemente, no debería modificar la orden para establecer un stop loss, sino que debería cerrarla, ya que está muy cerca del stop loss actual de la orden.

Tenga en cuenta que MarketInfo con Mode_Stoplevel puede devolver un cero, al menos lo hace con mi corredor FXCM por lo que puede tener que establecer manualmente.

 

stop loss inválido, error 130

Gracias por la explicación Tzuman.

Por ejemplo, incluso he establecido el

SL = 200

TP = 150

todavía está generando error 130 y mi corredor sólo necesita un mínimo de 10pip para stoploss o tomar ganancias.

Soy nuevo en la programación de MT, todavía estoy aprendiendo. ¿Podría explicar dónde insertar el parámetro de control MODE_STOPLEVEL en el código?

Saludos

 
serpentsnoir:
no es exactamente lo que quieres, supongo, ya que no tengo claro a qué te refieres... pero empieza con esto y me dices... sn

Hola, he descargado tu versión con la función BE pero al compilar me ha salido este error: "'UseBreakEven' - expresión de comparación esperada

Por favor, ¿podéis comprobarlo?

Gracias

 
FxCba:
Hola, he descargado tu versión con la función BE pero al compilar me sale este error "'UseBreakEven' - expresión de comparación esperada

Por favor, ¿puede comprobarlo?

Gracias

Prefiero usar enteros para las banderas en lugar de booleanos. No afecta al funcionamiento del EA. Sólo cambia el tipo a booleano si quieres que el error desaparezca.

sn

 
serpentsnoir:
Prefiero usar enteros para las banderas en lugar de booleanos. No afecta al funcionamiento del EA. Solo cambia el tipo a booleano si quieres que el error desaparezca. sn

¿Te refieres a añadir una línea como esta? " bool UseBreakEven = false;"

(perdón por la pregunta pero no entiendo el código de Metatrader)

Yo lo hice así y no me dio error.

 

Límite de beneficio diario añadir a EA.

Hola a todos,

Me gustaría saber si alguien podría añadir la característica de abajo, a la UMA cruz EA adjunto.

extern string DayProfitHelp = "--Introducir DayProfitLimit en USD o DayProfitLimitPct en porcentaje del saldo del último día. Establezca ambos en 0 para deshabilitarlos";

extern double DayProfitLimit = 0.0;

extern double DayProfitLimitPct = 0.0;

extern int DayProfitResetHour = 0;

extern bool DayProfitGlobal = FALSE;

Encontré esta función muy útil en otro EA, y básicamente lo que hace es detener las órdenes de apertura del EA si un "x%" ha sido alcanzado antes del tiempo de Stop.

También las funciones de trailing no están funcionando correctamente en el UMAcrossEA. Si alguien puede ayudar se lo agradezco.

Muchas gracias

===============================

extern int SL_pips = 290;

extern int MA_distance_pips = 20;

extern int MA_period = 16;

extern int TP_pips = 20;

extern int TradeVolume = 1;

extern string HourTradeHelp = "--Establece si el EA trabajará sólo en un período específico del día. ForceClose cerrará todas las órdenes abiertas";

extern bool UseHourTrade = FALSE;

extern int StartHourTrade = 21;

extern int EndHourTrade = 3;

extern bool ForceClose = FALSE;

extern string MinToKeepTradeHelp = "--Cerrará la orden cuando su tiempo de vida sea mayor que MinutesToKeepTrade. Poner 0 para desactivar";

extern int MinutesToKeepTrade = 0;

extern string DayProfitHelp = "--Introducir DayProfitLimit en USD o DayProfitLimitPct en porcentaje del saldo del último día. Establezca ambos en 0 para deshabilitarlos";

extern double DayProfitLimit = 0.0;

extern double DayProfitLimitPct = 0.0;

extern int DayProfitResetHour = 0;

extern bool DayProfitGlobal = FALSE;

extern int ModifyIntervalMin = 1;

extern int MagicNumber = 2265;

extern bool Hedge=false;

int g_ord_total_172;

int g_ticket_176

int g_ticket_180

int g_minuto_184;

bool g_bool_188;

bool gi_192;

bool gi_196;

bool gi_200;

bool gi_204;

double g_price_208;

double gd_216

double g_price_224

double gd_232

double gd_240

doble gd_248

doble gd_256

doble gd_264

doble gd_272

doble gd_280

doble g_ima_288

doble gd_296

doble gd_304

doble gd_312

double g_lots_320;

void init() {

gd_240 = MarketInfo(Symbol(), MODE_STOPLEVEL);

gd_256 = gd_240 * Punto;

gd_248 = (gd_240 + 1.0) * Punto;

gd_216 = SL_pips * Punto;

gd_232 = MA_distance_pips * Punto;

gd_280 = TP_pips * Punto;

g_minute_184 = Minuto();

}

int inicio() {

double ld_8;

double ld_16;

si (AccountBalance() - gd_304 != 0.0) ld_8 = 100.0 * (gd_304 / (AccountBalance() - gd_304));

si no, ld_8 = 0;

si (AccountBalance() - gd_304 != 0.0) ld_16 = 100.0 * ((AccountBalance() - gd_304 + gd_312) / (AccountBalance() - gd_304)) - 100.0;

Si no, ld_16 = 0;

gd_296 = Oferta - Demanda;

gd_304 = GetDailyProfit();

g_lots_320 = Lots();

si (DayProfitLimitPct > 0,0) gd_312 = (AccountBalance() - gd_304) * (DayProfitLimitPct / 100,0);

si no gd_312 = DayProfitLimit;

g_bool_188 = !(UseHourTrade && !IsTradeTime(StartHourTrade, EndHourTrade));

if (g_bool_188 && GlobalVariableGet("gISEAStop") == 1.0) g_bool_188 = FALSE;

string ls_0 = "Símbolo: " + Symbol()

+ "\nSpread: " + DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD) / 10.0, 1) + " pips"

+ "P/L diario: $" + DoubleToStr(gd_304, 2) + " (" + DoubleToStr(ld_8, 2) + "%)"

+ "\N - Límite P/L: $" + DoubleToStr(gd_312, 2) + " (" + DoubleToStr(ld_16, 2) + "%)"

+ "\N - Pérdida actual: $" + DoubleToStr(AccountProfit(), 2)

" + DoubleToStr(gd_240 / 10.0, 1) + " pips"

+ "\nVolumen: " + DoubleToStr(g_lots_320, 1) + " ($" + DoubleToStr(g_lots_320 * MarketInfo(Symbol(), MODE_LOTSIZE), 2) + ")";

if (gd_312 > 0.0 && gd_304 + AccountProfit() >= gd_312) {

Comentario(ls_0

+ "\N - Alcanzado el beneficio diario... Hasta mañana... Buenas noches :-)");

EliminarTodasLasOrdenas(1);

return (0);

}

g_ord_total_172 = OrdersTotal();

gi_192 = FALSE;

gi_196 = FALSE;

gi_200 = FALSE;

gi_204 = FALSE;

for (int l_ord_total_24 = g_ord_total_172; l_ord_total_24 >= 0; l_ord_total_24--) {

if (OrderSelect(l_ord_total_24, SELECT_BY_POS) == TRUE && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {

if (OrderType() == OP_BUY) {

gi_200 = TRUE;

Close_B(OrderTicket(), OrderLots());

}

if (OrderType() == OP_SELL) {

gi_204 = TRUE;

Close_S(OrderTicket(), OrderLots());

}

if (OrderType() == OP_BUYLIMIT) {

gd_264 = NormalizeDouble(OrderOpenPrice(), Digits);

g_ticket_176 = OrderTicket();

gi_192 = TRUE;

}

if (OrderType() == OP_SELLLIMIT) {

gd_272 = NormalizeDouble(OrderOpenPrice(), Digits);

g_ticket_180 = OrderTicket();

gi_196 = TRUE;

}

}

}

if (g_bool_188) {

g_ima_288 = iMA(NULL, 0, MA_period, 0, MODE_LWMA, PRICE_TYPICAL, 0);

Modificar_orden();

Open_order();

} else {

Archivos adjuntos:
Razón de la queja: