[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 913

 
Dimka-novitsek:

He leído el post de ivandurak y enseguida me he dado cuenta de que después de cada tick sólo se activa el inicio, por lo que si abres la variable de forma global, parece que guarda el valor.

Así que debe ser así.

Así, el compilador categóricamente no acepta la línea int KolBars=Bars; dice 'Bars' - inicialización esperada C:\gram Files (x86)\Alpari ÌÒ4\experts\Áëù.mq4 (8, 13)

¡¡¡¡¡Amazing!!!!! La declaración normal de una variable. Pero no importa.

Preguntaré lo principal: cómo depurar un EA el fin de semana, si los ticks no van?????


//| Бред.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
int KolBars=Bars;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
KolBars=Bars;

return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{int r;
r=Bars- KolBars
//----
for( r>0 )
int k;

KolBars=Bars;

//----
return(0);
}
//+------------------------------------------------------------------+ 
¿Para qué sirve el probador?
 

¡¡SOBRE EL ALGORITMO GENÉTICO!!

En mi caso, se seleccionan los pesos para la red neuronal. Si se ejecuta la optimización sin algoritmo genético, se tardará MUCHO tiempo.

No hay pseudo-aleatoriedad en el código.

Aunque el algoritmo genético también prueba muchas variantes, también actúa según un programa determinado (en un mismo intervalo y bajo unas mismas condiciones). Por qué entonces obtenemos resultados diferentes no lo entiendo.

Por cierto nadie hizo la pregunta para probar el trabajo del ALGORITMO GEN. Exactamente: ejecute dos veces la optimización y compare los resultados.... Inténtelo.

 
Stepan241:

¡¡SOBRE EL ALGORITMO GENÉTICO!!

En mi caso, se seleccionan los pesos para la red neuronal. Si se ejecuta la optimización sin algoritmo genético, se tardará MUCHO tiempo.

No hay pseudo-aleatoriedad en el código.

Aunque el algoritmo genético también prueba muchas variantes, también actúa según un programa determinado (en un mismo intervalo y bajo unas mismas condiciones). Por qué entonces obtenemos resultados diferentes no lo entiendo.

Por cierto nadie hizo la pregunta para probar el trabajo del ALGORITMO GEN. Exactamente: ejecuta la optimización dos veces y compara los resultados....A pruébalo.


Ayúdate a ti mismo.

https://www.mql5.com/ru/articles/1409https://www.mql5.com/ru/articles/1408 https://www.mql5.com/ru/articles/1511

 

Queridos expertos Por favor, díganme la función que cambia el lote y el número de pedidos dependiendo del valor del saldo.

 
Stepan241:

¡¡SOBRE EL ALGORITMO GENÉTICO!!

Por cierto, nadie ha planteado la pregunta de PROBAR el trabajo del ALGORITMO GENETICO. Exactamente: ejecuta la optimización dos veces y compara los resultados....A pruébalo.

Has estado trabajando con mql durante mucho tiempo, según tengo entendido, gen. alg. utiliza números pseudoaleatorios para trazar los paquetes de configuración inicial, y sólo entonces comienza a considerar por definiciones dadas dónde y qué buscar.

https://www.mql5.com/ru/articles/1408

El esquema de funcionamiento del algoritmo genético

1.Inicie el momento inicial t=0. Formar aleatoriamente una población inicial, compuesta por k individuos. B0 = {A1,A2,...,Ak)

2. ...

 
fanat:

Queridos expertos Por favor, díganme la función que cambia el lote y el número de órdenes dependiendo del valor del saldo.


https://www.mql5.com/ru/code/8192

El autor utiliza el lote dinámico y el número máximo de opciones.

MaxOrders_Desc = "si es 0 el número de posiciones abiertas simultáneamente no está limitado a 1-3";
MaxOrders = 1;

Lots_Desc = "Si 0 aplicar lote dinámico";

Lotes = 1;

 

Por favor, aconséjeme si es posible abrir órdenes de diferentes pares de divisas en un ciclo, mientras que después de comprobar la condición de entrada, un error 4051 sigue apareciendo

while(true)

{
if (Total==0 && Opn_B==true && Total1==0 && Opn_S1==true) // no hay órdenes abiertas para el primer y segundo par de divisas más los criterios de apertura
{

RefreshRates(); // Actualizar datos
double bid = MarketInfo(Symb2,MODE_BID);
Alert("Intentando abrir Compra y Venta. Esperando respuesta.");
Ticket=OrderSend(Symb1,OP_BUY,Lts,Ask,2,0,0); //comprar
Ticket1=OrderSend(Symb2,OP_SELL,Lts,bid,2,0,0);
if (Ticket > 0 && Ticket1 > 0) // Funcionó :)
{
Alert ("Orden de compra y venta abierta ",Ticket,Ticket1);
return; // Salir de start()
}
if (Fun_Error(GetLastError())==1) // Gestión de errores
continue; // Reintentar
return; // Salir de start()
}

 
Dimka-novitsek:

Así, el compilador categóricamente no acepta la línea int KolBars=Bars; dice 'Bars' - inicialización esperada C:\gram Files (x86)\Alpari ÌÒ4\experts\Áåë.mq4 (8, 13)

Voy a preguntar lo principal - cómo depurar un EA en el fin de semana, si las garrapatas no go?????

1.
//| Бред.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
int KolBars;//=барс нельзя переменную присвоить вне функций




//| expert initialization function 
|

int init()
{
KolBars=Bars; //один раз при инициализ.

return(0);
}
...
2. En la prueba de estrategia ;).
 

¡¡¡Buenas tardes!!! ¡¡¡¡¡¡LOL!!!!!! ''for'' - expresión demasiado compleja C:\NProgram Files (x86)\NAlpari MT4\experts\bred.mq4 (34, 1)

''for'' - expresión demasiado compleja C:\NProgram Files (x86)\NAlpari ??4\perts\???????.mq4 (34, 1)

¿Es posible depurar un EA en modo de prueba durante el fin de semana de la misma manera que cuando se reciben ticks en la plataforma, obteniendo respuestas de las funciones Comment,Alert,?

 
xxxslavaxxx:

Por favor, aconséjeme si es posible abrir órdenes de diferentes pares de divisas en un ciclo, mientras que después de comprobar la condición de entrada, un error 4051 sigue apareciendo

while(true)

{
if (Total==0 && Opn_B==true && Total1==0 && Opn_S1==true) // no hay órdenes abiertas para el primer y segundo par de divisas + hay criterios abiertos
{

RefreshRates(); // Actualizar datos
double bid = MarketInfo(Symb2,MODE_BID);
Alert("Intentando abrir Compra y Venta. Esperando respuesta...");
Ticket=OrderSend(Symb1,OP_BUY,Lts,Ask,2,0,0);//abrir Compra
if(GetLastError()==4051)Alert("Symb1"+Symb1+" Lts "+Lts+" Ask "+Ask);
//si(Billete>0)Dormir(50);si no continuar;

Ticket1=OrderSend(Symb2,OP_SELL,Lts,bid,2,0,0);
if(GetLastError()==4051)Alert("Symb2"+Symb2+" Lts "+Lts+" bid "+bid);


if (Ticket > 0 && Ticket1 > 0) // Ha funcionado :)
{
Alerta ("Orden de compra o venta abierta ",Ticket,Ticket1);
return; // Salir
}
if (Fun_Error(GetLastError())==1) // Gestión de errores
continuar; // reintentar
return; // Salir de start()
}

Razón de la queja: