[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 388

 
KostelloArtua:
2011.05.16 09:06:08 Media móvil experta New-Svecha EURUSD,M30: cargada con éxito
2011.05.16 09:04:21 Media móvil experta New-Svecha EURUSD,M30: cargada con éxito
2011.05.16 08:14:25 '81415': Falló la conexión del Centro de Datos [6]


Si ejecutas el terminal y luego el EA, no aparece nada más en el registro y el EA muestra el trabajo...


Si los ticks se están ejecutando, el icono del EA está "sonriendo", el EA debería hacer tratos (es decir, aparecen las condiciones para ello), pero no los hace, entonces es necesario depurar.

Ordene el comando price() en el código del EA, especialmente en aquellos lugares donde se compara y vea qué es exactamente lo que se compara. Tal vez, el resultado de la comparación es siempre falso, mientras que usted está asumiendo que las variables son iguales.

 

Buenas tardes a todos.

Llevo un mes estudiando el MQL4. Escribí un simple Asesor Experto que compra o vende en los cambios de barra del MACD (puedo enviar el código por la noche si lo necesito). Compila sin problemas y mi cuenta demo tiene una carita sonriente en la esquina superior derecha(habilité mi EA para operar en las preferencias). El Probador de Estrategias muestra resultados para la estrategia (aunque negativos, pero esto es un paso hacia un mayor refinamiento). Pero en una cuenta demo en MT4 el Asesor Experto no abre operaciones en absoluto. Me parece que el problema no está en el programa (si no, ¿por qué iba a mostrar resultados el probador?), sino en algún lugar de la configuración.

¿Puede decirme qué puede ser?

 
Sersad:.

¿Puede decirme qué puede estar mal?


¿Cuánto dinero tiene en su cuenta y qué lote ingresa?
 
Roger:

¿Cuánto dinero tiene en su cuenta y qué lote ingresa?

En una cuenta demo de 10.000 USD, entro con 0,1 lote (mini lote).

Si te refieres a la gestión del dinero, no creo que sea el caso...

 
Sersad:

Buenas tardes a todos.

Llevo un mes estudiando el MQL4. Escribí un simple Asesor Experto que compra o vende en el cambio de barras MACD (puedo enviar el código en la noche si lo necesito). Compila sin problemas y mi cuenta demo tiene una carita sonriente en la esquina superior derecha (habilité mi EA para operar en las preferencias). El Probador de Estrategias muestra los resultados de la estrategia (aunque negativos, pero esto es un paso hacia un mayor refinamiento). Pero en una cuenta demo en MT4 el Asesor Experto no abre operaciones en absoluto. Me parece que el problema no está en el programa (si no, ¿por qué iba a mostrar resultados el probador?), sino en algún lugar de la configuración.

¿Puede indicar cuál puede ser el problema?


Sin el código es difícil de decir. Es posible que el EA esté escrito para cuatro díg itos, y la cuenta demo esté escrita para cinco dígitos. Verás, si establecemos, por ejemplo, un stop loss de 10 puntos para la orden, es la misma distancia para el EA de cinco dígitos que 1 pip en el de cuatro. Si fijamos la distancia mínima permitida para establecer órdenes de stop en, digamos, 3 puntos, entonces en un mercado de cinco dígitos serían treinta puntos en lugar de tres. El servidor rechazará, como es lógico, la orden de establecer una orden con un stop de 10 puntos a los cinco dígitos.

Pero la razón puede ser diferente. Verás, has preguntado a la gente por qué su coche no arranca. No se puede saber la razón sin abrir el capó y escuchar la reacción del coche al intentar arrancar...

 


Lo siento, he escrito algunas tonterías aquí, si pudieras mostrarme dónde estoy completamente despistado.

Las posturas no parecen abrirse en absoluto, no pasa nada.

He eliminado la división por cero - todavía, y no se escribe ningún error en el registro.

//+------------------------------------------------------------------+
//| para avalancha.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#enlace de propiedad "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20; extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| función de inicialización de expertos |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int inicio()
{
//----

OrderSelect()tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber( )==1000|||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
si (i<2){
tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price+otstup*Point, Point*3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red);
Alert ("OP_BUYSTOP", GetLastError( );
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' );
Alert ("OP_SELLSTOP", GetLastError( );
i=Total de pedidos() ; } } }

//----
return(0);
}
//+------------------------------------------------------------------+

Es decir, se abren dos órdenes pendientes, una por encima del precio a una distancia otstup=20, la otra por debajo, sin stop, y antes de abrir se comprueba si no hay órdenes de este EA y no más de dos.

 
alexr7:
¡¡¡¡¡¡¡¡¡¡¡¡¡¡Muchas gracias por la rápida respuesta!!!!!!!!!!!!!! ¡¡¡¡¡¡¡El criterio es un indicador estándar de las Bandas de Bollinger con los parámetros: periodo 20, desplazamiento 0, desviación 2, cierre ponderado(HLCC/4)!!!!!!!

Estos no son los criterios por los que te pregunté. Estos son los parámetros de Bollinger. Pueden ser diferentes y se establecen en los ajustes...

Te pregunté: ¿cómo determinas si la posición está en la línea media de Bollinger?

 
alexr7:
¡¡¡¡¡¡¡¡¡¡¡¡¡¡Muchas gracias por la rápida respuesta!!!!!!!!!!!!!! ¡¡¡¡¡¡¡El criterio es un indicador estándar de las Bandas de Bollinger con los parámetros: periodo 20, desplazamiento 0, desviación 2, cierre ponderado(HLCC/4)!!!!!!!

La línea de media de Bollinger es iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_WEIGHTED, 1);
 
Dimka-novitsek:


Lo siento, he escrito algunas tonterías aquí, si pudieras mostrarme dónde soy completamente borrego.

Las poses no parecen abrirse del todo, no pasa nada.

He eliminado la división por cero - todavía, y ningún error no está escrito en el registro.

//+------------------------------------------------------------------+
//| para avalancha.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20; extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| función de inicialización del experto |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función experta de desinicialización |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int start()
{
//----

OrderSelect( tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
if (i<2){
tiket= OrderSend(), OP_BUYSTOP, volume*A, price+otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red);
Alert ("OP_BUYSTOP", GetLastError( );
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' );
Alert ("OP_SELLSTOP", GetLastError( ));
i=OrdersTotal( ) ; } } }

//----
return(0);
}
//+------------------------------------------------------------------+

Es decir, abrir como dos órdenes pendientes, una por encima del precio a una distancia otstup=20, la otra por debajo, sin stop, y antes de abrir comprobar si la orden de este EA y no más de dos.

1) utilizar el SRC

2) Su primer comando es OrderSelect. ¿A quién va a seleccionar antes de fijar las órdenes?

 

Cuando el EA no inicia nada, es sólo para comprobar, para que no se abran nuevos corredores en cada tick después

1) utilizar el SRC A, ¡es una raíz gracias!

Es decir, si no hay ningún pedido, o menos de 2, ¡se abren inmediatamente!

Razón de la queja: