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

 

Permítame intentar "traducir" la primera entrada para usted:

if(((OrderSymbol() == Symbol() && OnlyThisSymbol) || !OnlyThisSymbol))

"Si al menos una de las expresiones 1. o 2. es verdadera, entonces ... "
1.el instrumento de la orden es el mismo que el instrumento del gráfico y la variable externa OnlyThisSymbol tiene el valor true
2.La variable externa OnlyThisSymbol tiene un valor igual a false.

Ahora, el significado de esta entrada:
Existe una enumeración de órdenes a cerrar por posiciones con diferentes filtros. Este disco es un filtro por instrumento. Si establece el valor de la variable externa onlyThisSymbol, puede elegir si quiere cerrar las órdenes sólo por los símbolos del gráfico, o las órdenes por cualquier símbolo.

 
alsu:

No exactamente. La cuestión es que la variable Experts ya es de tipo int, por lo que la conversión de tipo debe realizarse ANTES de asignarle un valor, es decir, el compilador

* sacó de la caja un valor de tipo double (no tiene nombre en su programa, y se escribe simplemente en alguna dirección conocida por el compilador en la memoria principal o en el registro de la CPU)

* realizó todos los cambios necesarios en el valor de la variable anterior y escribió un nuevo valor (¡de tipo int!) en la variable Experts,

* asignó este valor (de tipo int!) a la variable Nuevos_Expertos. Tienen el mismo tipo, por lo que sólo se trata de copiar un valor de una ubicación de memoria a otra.


P.D. Me alegra mucho ver que hay gente que comprende sus hazañas con tanto detalle. De hecho, no es una broma. Manténgase en contacto.


Buenos días... En cuanto a tus últimos y penúltimos mensajes estoy perplejo. En concreto (tu mensaje de la respuesta anterior): "Entonces cuando sacamos un valor de la caja, éste es de tipo double, pero si damos la orden de escribir el resultado en una variable de tipo int, el compilador realiza automáticamente todas las acciones necesarias para poner el valor en una nueva caja" Y tu mensaje de la última respuesta: "La cuestión es que la variable Experts ya tiene el tipo int... ¿No lo convertimos en tipo doble en el momento en que lo "colocamos" en una caja de variables GV?

Gracias de antemano por la respuesta

 

¿Pueden aconsejarme, amigos? ¿Permite MQL4 establecer el valor del Saldo de la Cuenta de forma programática, y no sólo en las condiciones iniciales del probador?

Voy a explicar por qué lo necesito, sólo para aclarar la cuestión. Quiero que el Asesor Experto cambie el tamaño del saldo de la cuenta como una variable durante la optimización.

 

Buenas tardes.

Estoy tratando de crear un indicador para mostrar Sl y Tp en el gráfico basado en (H-L)/2, no funciona - sólo dibuja por el cierre de la barra, ¿cuál es el problema?

Como base se tomó un indicador ATR.

//+------------------------------------------------------------------+
//|                                                          Tp/Sl.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_color4 Green
//---- input parameters
extern int PeriodMM=25;
//---- buffers
double SlBuffer[];
double TpBuffer[];
double SlBuffer2[];
double TpBuffer2[];
double TempBuffer[];
double TempBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 1 additional buffer used for counting.
   IndicatorBuffers(4);
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,SlBuffer);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,TpBuffer);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,SlBuffer2);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,TpBuffer2);
   SetIndexBuffer(4,TempBuffer);
   SetIndexBuffer(5,TempBuffer2);
//----
   SetIndexDrawBegin(0,PeriodMM);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
//----
   if(Bars<=PeriodMM) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=PeriodMM;i++)
      SlBuffer[Bars-i]=0.0;
      TpBuffer[Bars-i]=0.0;
      SlBuffer2[Bars-i]=0.0;
      TpBuffer2[Bars-i]=0.0;
//----
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      double high=High[i];
      double low =Low[i];
      double close = Close[i];
      TempBuffer[i]=(high-low)/2;
      TempBuffer2[i]=(high-low)/2*2.5;
      i--;
     }
//----
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   for(i=0; i<limit; i++)
      SlBuffer[i]=Close[i]+iMAOnArray(TempBuffer,Bars,PeriodMM,0,MODE_SMA,i);
      TpBuffer[i]=Close[i]+iMAOnArray(TempBuffer2,Bars,PeriodMM,0,MODE_SMA,i);
      SlBuffer2[i]=Close[i]-iMAOnArray(TempBuffer,Bars,PeriodMM,0,MODE_SMA,i);
      TpBuffer2[i]=Close[i]-iMAOnArray(TempBuffer2,Bars,PeriodMM,0,MODE_SMA,i);
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Compañeros no puedo entender porque no se crean los archivos CSV, antes todo funcionaba.
//+------------------------------------------------------------------+
//|                                                          TP1.mq4 |
//|                                                      S.I.Shlikov |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "S.I.Shlikov"
#property link      ""
int init()  
  {
   int h=FileOpen("H"+(Period()/60)+".csv",FILE_CSV|FILE_WRITE|FILE_READ,";");
    if(h<1)
      {
      Print("Файл не найден : ", GetLastError());
      return(false);
      }
   FileSeek(h, 0, SEEK_END);
   FileWrite(h,"Date","EURUSD","GBPUSD","NZDUSD","USDJPY","EURJPY","GBPJPY","USDCHF","EURCHF","GBPCHF");
   FileClose(h);        
  }
int start()
  {
   int h=FileOpen("H"+(Period()/60)+".csv",FILE_CSV|FILE_WRITE|FILE_READ,";");
    if(h<1)
      {
      Print("Файл не найден : ", GetLastError());
      return(false);
      }
   string Wtime=TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES);
   FileSeek(h, 0, SEEK_END);
   FileWrite(h,Wtime,DoubleToStr(iClose("EURUSD",Period(),0),MarketInfo("EURUSD",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPUSD",Period(),0),MarketInfo("GBPUSD",MODE_DIGITS)),
                     DoubleToStr(iClose("NZDUSD",Period(),0),MarketInfo("NZDUSD",MODE_DIGITS)),
                     
                     DoubleToStr(iClose("USDJPY",Period(),0),MarketInfo("USDJPY",MODE_DIGITS)),
                     DoubleToStr(iClose("EURJPY",Period(),0),MarketInfo("EURJPY",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPJPY",Period(),0),MarketInfo("GBPJPY",MODE_DIGITS)),
                     
                     DoubleToStr(iClose("USDCHF",Period(),0),MarketInfo("USDCHF",MODE_DIGITS)),
                     DoubleToStr(iClose("EURCHF",Period(),0),MarketInfo("EURCHF",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPCHF",Period(),0),MarketInfo("GBPCHF",MODE_DIGITS))
                     );
   FileClose(h);   
   return(0);
  }
 
orb:
Compañeros no puedo entender porque no se crean los archivos CSV, antes todo funcionaba.

¿Cuál es el número de error?
 
sergeev:

¿cuál es el número de error?
no hay número de error... sólo que no se han creado archivos, buscando ALPARI\tester\files\
 
orb:
no hay número de error... simplemente no se crean los archivos, buscando ALPARI\tester\files\

Bueno, mira en el otro.
 
sergeev:

Pues mira en otra parte.
Ya lo hice.
 
orb:
Ya lo he mirado.

Enhorabuena.
Razón de la queja: