[¡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 967

 
ikatsko:
Se necesita una función de "Nueva Orden" como "Nueva Barra". La función debe tener valor TRUE sólo para un tick después del momento en que se abrió la orden. Es decir, en el momento en que el número de órdenes abiertas ha cambiado al lado más alto. Por favor, ayúdenos a

Así puede seguir los cambios del distribuidor en StopLevel en cada nuevo tick. Utilice el mismo principio para el seguimiento de sus pedidos.

В инит:
//---------------------------------------------------
int init()
{
   Level_old =MarketInfo(Symbol(), MODE_STOPLEVEL);
//.............. дальнейший код инит .................
   return;
}
//---------------------------------------------------
В старт:
//---------------------------------------------------
int start()
{
   Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL );    // Последнее значение уровня установки стопов
   if (Level_old!=Level_new)  {                       // Новое не равно старому, значит изменились условия
      Level_old=Level_new;                            // Новое запишем в "старое" для проверки на след. тике
// ............. действия, если новый уровень .......

   }
//.............. дальнейший код старт.................
   return;
}
 
IgorM:


existe este problema - yo también tuve este problema, si el Asesor Experto hace muchas operaciones por año - tal vez se almacenan demasiados datos para la salida del resultado final o tal vez los búferes de los indicadores se comen la memoria

he visto - no sé, tened paciencia - para una imagen general, la prueba es para 10 años, y es mejor optimizar para un año y luego hacer una selección de los mejores parámetros

Y sobre la memoria. ¿La memoria de 4 GB no es suficiente? Especialmente cuando se prueba la estrategia - miré - se utiliza sólo el 50-60%.
 
volshebnik:
Y sobre la memoria. ¿No son suficientes 4 GB de memoria? Especialmente cuando se prueba la estrategia - miré - se utiliza sólo el 50-60%.
Entiendo que el código mostrado anteriormente es una parte, tal vez haya puntos lentos en la otra parte también
 
volshebnik:
Y sobre la memoria. ¿No son suficientes 4 GB de memoria? Además, al probar la estrategia - miré - se utiliza sólo el 50-60%.


bueno, no sabemos cuanto puede usar MT4, y los 4Gb no se pueden abordar en Win32, se necesita Win64, y para Win64 se necesitan aplicaciones de 64 bits, MT5 tiene un terminal de 64 bits, MT4 ni siquiera lo conoce

SZZ: no optimices en exceso - obtendrás una confianza extra en tu código. y no es seguro que el mercado quiera ajustarse a tus parámetros óptimos ;)

 
Lo tengo... Se equivocó con la comparación de tipo real en el valor cero...
 
artmedia70:

Así puede seguir los cambios del distribuidor en StopLevel en cada nuevo tick. Utilice el mismo principio para el seguimiento de sus pedidos.


Gracias por el consejo. De hecho, las líneas:

 if (Level_old!=Level_new)  {                       // Новое не равно старому, значит изменились условия
      Level_old=Level_new;  

forman el "frente", es decir, el cambio del estado actual en relación con el anterior. El parámetro old_order es necesario. Gracias

 
ikatsko:

Gracias por el consejo. De hecho, las líneas:

forman el "frente", es decir, el cambio del estado actual en relación con el anterior. El parámetro old_order es necesario. Gracias

De nada - también fue sugerido por CK...
 
Techno:
Entiendo que el código mostrado anteriormente es una parte, tal vez haya puntos lentos en la otra parte también
Esta parte cuenta con garrapatas. Todos los demás cálculos se realizan sólo al principio de cada vela horaria. Fue muy lento en el gráfico y el bucle incompleto mencionado por Igor. Tal vez hay puntos lentos, hay un gráfico allí también - números de velas se indican - este gráfico no es deseable para eliminar - será más difícil de analizar.
 
IgorM:


bueno, no sabemos cuanto puede usar MT4, y los 4Gb no se pueden abordar en Win32, necesitas Win64, y para Win64 necesitas aplicaciones de 64 bits, MT5 tiene un terminal de 64 bits, MT4 ni siquiera lo conoce

ZS: no optimices en exceso - obtendrás una mayor confianza en tu código. y no es seguro que el mercado quiera ajustarse a tus parámetros óptimos ;)

Sí, Igor, el sistema operativo de 32 bits utiliza un máximo de 3,14 GB. Estoy utilizando Windows 7 de 64 bits. El terminal MT4 es una aplicación de 32 bits, pero el Windows 7 de 64 bits tiene la capacidad de soportar aplicaciones de 32 bits. Exceso de reaseguro.... Intentando con tranquilidad ))
 

Por favor, avisa:

hemos transferido los datos de la TF mensual a la TF diaria

ArrayCopySeries(TimeArray,MODE_TIME ,Symbol(),PERIOD_MN1); 

limit=Bars-counted_bars;

for(i=0,y=0;i<limit;i++)

if (Time[i]<TimeArray[y]) y++; 
{
        Month_P[i] = iMA(NULL, PERIOD_MN1, 3, 0, MODE_SMA, PRICE_TYPICAL, y+1);
}
¿Cómo se comparan los datos del gráfico del mes? Supongo que deberíamos tomar Month_P [i] y Month_P [i+N], donde N es el número de barras del marco temporal diario que nos garantiza la barra del mes anterior. ¿Y cómo se determina exactamente este número N?