Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 158

 
-Aleks-:

Tengo este diseño

static datetime TimeN=0;  


void OnTick()
  {

datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;


¡¡¡gracias!!!
 
Dime por qué debo crear un tema si ninguno de los expertos está dispuesto a leer los mensajes. Para qué he pedido ayuda si a todos los expertos de este hilo no les importa nada nadie.
 
vannoo:
Dígame por qué tengo que crear un tema si ninguno de los expertos ni siquiera quiere leer los mensajes. No sé por qué pedí ayuda. Si a todos en este hilo les importa una mierda todo el mundo.

Tú escribiste esto:

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Cualquier pregunta de novato en MQL4, ayuda y discusión sobre algoritmos y códigos

vannoo, 2017.03.17 15:57

Amigos pueden aconsejarme aquí lo que he hecho mal. No es así; he estado aprendiendo durante unas tres semanas a escribir MQL4 EAs yo mismo! Escribí un EA compilado, sin errores ni advertencias y todo parece estar bien. Encontré un gran PERO que no quiere funcionar . Quizá pueda preguntar aquí en qué me he equivocado y qué he hecho mal. Si alguien me dice qué hacer, que me lo diga. Me temo que es la primera vez que estoy aquí y cómo hacerlo. Aunque ya veo cómo.
Bueno, aquí es donde pueden darte una respuesta.
 
Hola! Ayuda... Mi MT4 está muerto... He probado de todo (reiniciar, restaurar el sistema, borrar el viejo con todas las tripas, descargar el nuevo), nada ayuda. Está bloqueado... si lo abres, para cerrarlo tienes que hacerlo a través del Administrador de tareas
 

hola a todos

Soy nuevo en la programación, pero estoy tratando de aprender)

Tengo un pequeño problema con el cierre de la orden según las lecturas del indicador

debo decir directamente sobre las condiciones de apertura y cierre: abro una posición siguiendo las lecturas del indicador y la cierro siguiendo las lecturas del indicador pero en la dirección opuesta sin ningún tipo de paradas y beneficios

if(r > 50 && p > m) //condiciones para la aperturade una orden de compra

{

ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //abrir orden de compra

}

¿Estoy escribiendo correctamente la condición de cierre de la orden?

if(r < 50 && p < m) --- esta es una condición de Venta y de Cierre

{

OrderClose(ticketB,0.1,Bid,5,Red);

}

e imprime elposible uso de la variable no inicializada 'ticketB' y el valor de retorno de 'OrderClose' debe ser comprobado

¿Podéis decirme dónde lo he escrito mal?

 

Por favor, pueden decirme cómo hacer un ciclo de fechas - necesito buscar rangos - años y trimestres.

Por ejemplo, el primer rango del 01.01.2010 al 31.12.2010, el segundo del 01.01.2011 al 31.12.2011, ¿cómo organizarlo en el ciclo?

 

Por si no me he explicado antes, aquí hay un ejemplo de un diseño que me gustaría apretar de alguna manera...


   for(int Ti=0; Ti<18; Ti++)
     {
      if(Ti==0)  {start_time=D'01.01.2000'; stop_time=D'31.12.2000';}
      if(Ti==1)  {start_time=D'01.01.2001'; stop_time=D'31.12.2001';}
      if(Ti==2)  {start_time=D'01.01.2002'; stop_time=D'31.12.2002';}
      if(Ti==3)  {start_time=D'01.01.2003'; stop_time=D'31.12.2003';}
      if(Ti==4)  {start_time=D'01.01.2004'; stop_time=D'31.12.2004';}
      if(Ti==5)  {start_time=D'01.01.2005'; stop_time=D'31.12.2005';}
      if(Ti==6)  {start_time=D'01.01.2006'; stop_time=D'31.12.2006';}
      if(Ti==7)  {start_time=D'01.01.2007'; stop_time=D'31.12.2007';}
      if(Ti==8)  {start_time=D'01.01.2008'; stop_time=D'31.12.2008';}
      if(Ti==9)  {start_time=D'01.01.2009'; stop_time=D'31.12.2009';}
      if(Ti==10) {start_time=D'01.01.2010'; stop_time=D'31.12.2010';}
      if(Ti==11) {start_time=D'01.01.2011'; stop_time=D'31.12.2011';}
      if(Ti==12) {start_time=D'01.01.2012'; stop_time=D'31.12.2012';}
      if(Ti==13) {start_time=D'01.01.2013'; stop_time=D'31.12.2013';}
      if(Ti==14) {start_time=D'01.01.2014'; stop_time=D'31.12.2014';}
      if(Ti==15) {start_time=D'01.01.2015'; stop_time=D'31.12.2015';}
      if(Ti==16) {start_time=D'01.01.2016'; stop_time=D'31.12.2016';}
      if(Ti==17) {start_time=D'01.01.2017'; stop_time=D'31.12.2017';}
    }
 

Quiero cambiar un punto en una línea por una coma - no funciona - ¿qué estoy haciendo mal?


string str_avrMassSell=DoubleToString(avrMassSell,2);
str_avrMassSell=StringReplace(str_avrMassSell,".",",");
 
-Aleks-:

Si no me he explicado antes, aquí hay un ejemplo de una construcción que me gustaría apretar de alguna manera...



Si por año, podría ser algo así

//+------------------------------------------------------------------+
//|                                                    Year_Test.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
 input int      Ti=18;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime start_time=D'01.01.2000';
   datetime stop_time=D'31.12.2000';

   for (int ti=1;ti<Ti;ti++)
   {   
   
   start_time=start_time+31536000;
   if (TimeDay(start_time)==31) start_time+=86400;


   stop_time=stop_time+31536000;

   if (TimeDay(stop_time)==30) stop_time+=86400;

   Print("ti = ", ti, " Start = ", TimeToStr(start_time,TIME_DATE)," Stop = ",TimeToStr(stop_time,TIME_DATE));
   }
   
  }

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 17 Start = 2017.01.01 Stop = 2017.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 16 Start = 2016.01.01 Stop = 2016.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 15 Start = 2015.01.01 Stop = 2015.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 14 Start = 2014.01.01 Stop = 2014.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 13 Start = 2013.01.01 Stop = 2013.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 12 Start = 2012.01.01 Stop = 2012.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 11 Start = 2011.01.01 Stop = 2011.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 10 Start = 2010.01.01 Stop = 2010.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 9 Start = 2009.01.01 Stop = 2009.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 8 Start = 2008.01.01 Stop = 2008.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 7 Start = 2007.01.01 Stop = 2007.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 6 Start = 2006.01.01 Stop = 2006.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 5 Start = 2005.01.01 Stop = 2005.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 4 Start = 2004.01.01 Stop = 2004.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 3 Start = 2003.01.01 Stop = 2003.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 2 Start = 2002.01.01 Stop = 2002.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 1 Start = 2001.01.01 Stop = 2001.12.31


 
-Aleks-:

Quiero cambiar un punto en una línea por una coma - no funciona - ¿qué estoy haciendo mal?



Funciona

//+------------------------------------------------------------------+
//|                                                StringReplace.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input double   Temp=999.99;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string stemp1=DoubleToStr(Temp,2);
   string stemp2=stemp1;
   StringReplace(stemp2,".",",");
   Print(stemp1," = ", stemp2);
   
  }
//+------------------------------------------------------------------+

2017.03.20 21:39:02.802 StringReplace EURUSD,M15: 999.99 = 999.99


Razón de la queja: