¿Cómo codificar? - página 280

 

Ciertamente, en las cuentas reales pueden surgir problemas que no aparecen en la demo o en el probador de estrategias, pero normalmente no son recurrentes y son poco frecuentes. Nunca he visto ni oído hablar de éste.

A partir de su explicación, no puedo determinar cuántas operaciones están abiertas cuando se produce el problema. Si el error se produce sin operaciones abiertas, es un misterio. Si ocurre con, por ejemplo, 5 operaciones abiertas, probablemente tenga algo que ver con el problema.

ERR_TRADE_DISABLED 133 La operación está desactivada. Todos los intentos de operar deben ser detenidos.

La documentación de este error parece indicar que algo está mal con la forma en que el EA está colocando el comercio. Pero como ambos EAs están usando la misma lógica de OrderSend(), me pregunto si tiene algo que ver con el hecho de que usted tiene 2 EAs corriendo. Normalmente, cualquier problema de contención provoca un error de "Contexto comercial ocupado" (146) y cualquier problema de cuenta provocaría un error de "Fondos insuficientes" (134). Valdría la pena tratar de ejecutar sólo un EA a la vez y ver si eso hace una diferencia.

 

Avasys

Esto puede parecer una tontería, pero usted compiló el EA, ¿verdad?

Después de la compilación, debería haber un archivo ex4 en la carpeta Experts.

 
michaelB:
Esto puede parecer una tontería, pero usted compiló el EA, ¿verdad? Después de la compilación, debería haber un archivo ex4 en la carpeta Experts.

Esto es lo que necesito saber también

Pegué el archivo mq4 en la carpeta de expertos, pero cuando reinicié MT4 no creó el archivo ex4 en la carpeta de expertos,

así que tengo que comprobar el código si tiene error

 

Cómo cambiar el color del IndicatorShortName

Estimados señores,

Cómo puedo añadir en el código mi propio color para esta línea

IndicatorShortName(GetTimeFrameStr() + " MACD ("+FastEma+", "+SlowEma+", "+SignalSMMA+")";

¿para cambiar el color de la pequeña información que tengo en la ventana separada del indicador en la esquina superior izquierda?

Pucio

 

¿ALGUIEN PUEDE DECIRME QUÉ PASA CON ESTE CÓDIGO?

HAY ALGUN ERROR, PORQUE NO CREA EL ARCHIVO EX4 CUANDO PEGO EL ARCHIVO MQ4 EN LA CARPETA DE EXPERTOS

//+------------------------------------------------------------------+

//| simple EA.mq4 |||

//| Copyright © 2011, luktom.biz |||

/ /| www.luktom.biz/en

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, luktom.biz."

#property link "http://www.luktom.biz"

extern double stopLoss = 300.0;

extern double takeProfit = 500.0;

extern string Begin = "2: 00";

extern string End = "10: 00";

extern double distancia = 60;

bool isECN = true

bool cond = false

bool cond2 = false

double low;

double high;

extern double lotes = 0.1;

int magic = 1232344524285020;

int deslizamiento = 1;

string comment = "";

int billete;

int short = 0;

long int = 0;

//+------------------------------------------------------------------+

//| función de inicialización de expertos ||

//+------------------------------------------------------------------+

int init()

{

//----

//----

(0) return;

}

//+------------------------------------------------------------------+

//| función de desinicialización experta ||

//+------------------------------------------------------------------+

int deinit ()

{

//----

Imprimir (countOrders (magic, OP_BUY));

//----

(0) return;

}

//+------------------------------------------------------------------+

//| función de inicio de experto ||

//+------------------------------------------------------------------+

int inicio()

{

Imprimir (AccountCurrency ());

//----

if (isGoodTime (Begin, End))

{

short = 0;

long = 0;

si (! cond)

{

low = Oferta;

high = Ask;

}

cond = true;

si (Oferta < baja) baja = Oferta;

si (Ask > high) high = Ask;

}

si ((alto-bajo) * 1000 > distancia)

{

cond2 = true;

}

if (! isGoodTime (Begin, End))

{

cond = false;

}

if (! isGoodTime (Begin, End) & & cond2)

{

if (countOrders (magic, OP_SELL) == 0)

{

if (Oferta " = (CRL-0.0005) & & short == 0)

{

corto + +;

si (isECN == false)

{

OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Ask-takeProfit * Point, takeProfit), comment, magic);

}

si (isECN)

{

ticket = OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, 0,0, comment, magic);

OrderSelect (ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Bid-takeProfit * Point, takeProfit), 0);

}

}

}

if (countOrders (magic, OP_BUY) == 0)

{

if ((Ask-high) > = 0.005 & & long = = 0)

{

largo + +;

si (isECN == false)

{

OrderSend (Symbol (), OP_BUY, lotes, Ask, slippage, sltpValue (Ask-stopLoss * Point, stopLoss), sltpValue (Bid + takeProfit * Point, takeProfit), comment, magic);

}

si (isECN)

{

ticket = OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, 0,0, comment, magic);

OrderSelect (ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Bid-stopLoss * Point, stopLoss), sltpValue (Ask + takeProfit * Point, takeProfit), 0);

}

}

}

}

//----

(0) return;

}

//+------------------------------------------------------------------+

bool isGoodTime (string, string, Begin, End) {

if (TimeCurrent () > Localtime (Begin) & & TimeCurrent < Localtime () (End)) {

return (true);

}

return (false);

}

int countOrders (int, int oMagic oType) {

int count = 0;

for (int i = 0; i < OrdersTotal (); i ++) {

if (OrderSelect (i, SELECT_BY_POS)) {

if (OrderMagicNumber () == oMagic) {

if (OrderSymbol () = the = Symbol ()) {

if (OrderType () == oType || oType < 0) {

cuenta ++;

}

}

}

}

}

return (count);

}

double sltpValue (double, int w1 w2)

{

si (w2 = = 0)

return (0);

return (NormalizeDouble (w1, Digits));

}

 
Avasys:
¿ALGUIEN PUEDE DECIRME QUÉ ES LO QUE ESTÁ MAL EN ESTE CÓDIGO?

HAY ALGUN ERROR, PORQUE NO CREA EL ARCHIVO EX4 CUANDO PEGO EL ARCHIVO MQ4 EN LA CARPETA DE EXPERTOS

¿Puedes decirnos de dónde has sacado este ea?

Parece que el ea está desordenado. Por ejemplo en la línea 129 donde tienes la definición de la función isGoodTime vemos:

bool isGoodTime (string, string, Begin, End)

debería ser:

bool isGoodTime (string Begin, string End)

Hay muchos errores como ese en ea. Parece que el código está incompleto, o protegido por un cambio de código como este y esto hace que esta fuente sea inútil.

 
Kalenzo:
¿Puedes decirnos donde conseguiste este ea?

Parece que el ea está desordenado. Por ejemplo en la línea 129 donde tiene la definición de la función isGoodTime vemos

bool isGoodTime (string, string, Begin, End)

debería ser:

bool isGoodTime (string Begin, string End)

Hay muchos errores como ese en el ea. Parece que el código está incompleto, o protegido por el cambio de código como este y esto hace que esta fuente inútil.

[lang=pl]Soy un autor. Adjunto archivo mq4 para Avasys. No he cambiado el código de la función isGoodTime. En mi terminal funciona. Avasys ¿por qué estás tan nervioso?

Si tienes un problema solo contactame en vez de hablar de esto en el foro[/lang].

Archivos adjuntos:
 
g.pociejewski:
[lang=pl]Soy un autor. Adjunto archivo mq4 para Avasys. Yo no que cambiar en la función de código isGoodTime. En mi terminal funciona. Avasys ¿por qué estás tan nervioso? Si tienes un problema solo contactame en vez de hablar de esto en el foro.[/lang]

No estoy nervioso, no pude encontrarlo en el foro

este EA funciona bien, pero hace múltiples operaciones por día de nuevo. Así que mis preocupaciones eran pedir EA para hacer sólo un comercio por día

 
CodeMeister:
Ciertamente, los problemas pueden ocurrir en las cuentas reales que no aparecen en la demo o probador de la estrategia, pero por lo general no son recurrentes y son poco frecuentes. Nunca he visto ni oído hablar de éste.

A partir de su explicación, no puedo determinar cuántas operaciones están abiertas cuando se produce el problema. Si el error se produce sin operaciones abiertas, es un misterio. Si ocurre con, por ejemplo, 5 operaciones abiertas, probablemente tenga algo que ver con el problema.

ERR_TRADE_DISABLED 133 La operación está desactivada. Todos los intentos de operar deben ser detenidos.

La documentación de este error parece indicar que algo está mal con la forma en que la EA está colocando el comercio. Pero dado que ambos EAs están usando la misma lógica de OrderSend(), me pregunto si tiene algo que ver con el hecho de que tienes 2 EAs corriendo. Normalmente, cualquier problema de contención provoca un error de "Contexto comercial ocupado" (146) y cualquier problema de cuenta provocaría un error de "Fondos insuficientes" (134). Valdría la pena tratar de ejecutar sólo un EA a la vez y ver si eso hace una diferencia.

El EA que está teniendo problemas sólo abre una operación a la vez. No se ha abierto ninguna otra operación cuando se produjeron los errores. Intentaré ejecutar sólo un EA y ver si eso ayuda. Gracias por el consejo.

 

Cómo leer una etiqueta de MT4

Hola,

He modificado un indicador y he creado un objeto OBJ_LABEL con valores para que mi EA pueda recoger los valores en el OBJ_LABEL. Estos valores son puntos de precio y no puedo crear otro buffer en el indicador para contenerlos, así que los he colocado en estas etiquetas. Parece una buena solución, PERO, ¡¡no puedo averiguar cómo LEER una etiqueta en MT4 en mi EA! Utilizo la función GETOBJECT, pero sólo devuelve ciertas propiedades y el valor del texto de una etiqueta u objeto de texto no es una de ellas.

¿Puede alguien ayudarme?

¡Gracias!