[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 422

 
¿Me puede decir - funciona el for dentro del for(s)?
 
elmucon:
¿Me puede decir - funciona el for dentro del for(s)?
Funciona. Todos los demás operadores funcionan incluso.
 
Zhunko:
Funciona. Incluso todos los demás operadores funcionan.

Gracias.
 
Saludos, por favor proporcione un fragmento de código para un Asesor Experto que utiliza una señal de indicador para la entrada, que construye flechas en lugar de una línea (es decir, el estilo del indicador se define como SetIndexStyle(0, DRAW_ARROW, EMPTY, 3)). Quiero que la flecha hacia abajo sea para vender y la flecha hacia arriba para comprar. Por alguna razón fallé al utilizar los métodos estándar(
 

¿Puedes decirme cómo cambiar el período de rsi (por defecto es 14)?

Gracias


//+------------------------------------------------------------------+
//|                                                  RSI_to_File.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.ru/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.ru/"

#property show_inputs
string SymbolsArray[11]={"","USDCHF","GBPUSD","EURUSD","USDJPY","CHFJPY","EURGBP","EURCHF","EURJPY","GBPJPY","GBPCHF"};

//+------------------------------------------------------------------+
//| string SymbolByNumber                                   |
//+------------------------------------------------------------------+
string GetSymbolString(int Number)
  {
//----
   string res="";
   res=SymbolsArray[Number];   
//----
   return(res);
  }

//+------------------------------------------------------------------+
//| возвращает период                                                |
//+------------------------------------------------------------------+
int PeriodNumber(int number)
   {
   int per_min;
   switch (number)
      {
     
      case 5: per_min=PERIOD_H4;break;
      default: per_min=PERIOD_D1;break;
      }
   return(per_min);   
   }

//+------------------------------------------------------------------+
//|   выводит в файл котировки + значения индикатора                 |
//+------------------------------------------------------------------+
void RSI_output(string SymbolName,int PeriodMinutes)
   {
   int size=iBars(SymbolName,PeriodMinutes);
//----
   if (size==0) return;
   int handle=FileOpen(SymbolName+PeriodMinutes+"_RSI.csv",FILE_WRITE|FILE_CSV);
   if (handle<0) return;
   FileWrite(handle,"Time;RSI");
   for (int i=size-1;i>=0;i--)
      {
      FileWrite(handle,TimeToStr(iTime(SymbolName,PeriodMinutes,i))
         ,iCustom(SymbolName,PeriodMinutes,"RSI",0,i));
      }
   FileClose(handle);      
//----
   return;
   }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
  int SymbolCounter,PeriodCounter; 
//----
   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)
      {
      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)
         {
         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");
         RSI_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));
         }
      }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

 

Chicos, ¿podéis indicarme cómo registrarme para poder utilizar el OPLI en línea y obtener mi nombre de usuario y contraseña?

 
Ves, tengo la hora por la función
ObjectGet("qwerty",OBJPROP_TIME2);
Me sale 1323452400. Según tengo entendido el tiempo está en segundos, por lo que si le resto 600 a este tiempo, la nueva ubicación estará 10 barras atrás en el gráfico de 5 minutos, pero en realidad la nueva coordenada se ha movido sólo 1 barra, ¿por qué ocurre esto? Y para que el desplazamiento sea de 10 bares hay que restar unos 3000, ¿dónde está la lógica aquí?
 

Me pueden decir por qué no puedo imprimir las variables, ni siquiera aparece el 0.

El controlador del lote del respetado voix_kas. Ligeramente retocado por mí.

double GetLot(int FastPeriodMA,int SlowPeriodMA) {
int i;
static double Lot = 0;
static double PrevBalance = 0;
static double BalanceOld[0];
static double BalanceNew[0];
if (NormalizeDouble(PrevBalance - AccountBalance(), 2) != 0) {
ArrayResize(BalanceNew, ArraySize(BalanceOld) + 1);
for (i = 0; i <= ArraySize(BalanceOld) - 1; i++)
BalanceNew[i] = BalanceOld[i];
BalanceNew[ArraySize(BalanceOld)] = AccountBalance();
ArrayResize(BalanceOld, ArraySize(BalanceOld) + 1);
ArrayCopy(BalanceOld, BalanceNew);
PrevBalance = AccountBalance();

if (ArraySize(BalanceNew) > SlowPeriodMA) {
double FastMA = 0, SlowMA = 0;
for (i = ArraySize(BalanceNew) - FastPeriodMA; i <= ArraySize(BalanceNew) - 1; i++)
FastMA += BalanceNew[i];
FastMA /= FastPeriodMA;
for (i = ArraySize(BalanceNew) - SlowPeriodMA; i <= ArraySize(BalanceNew) - 1; i++)
SlowMA += BalanceNew[i];
SlowMA /= SlowPeriodMA;
if (FastMA > SlowMA){ Lot = 5;Print(" FastMA ",FastMA,"; SlowMA= ",SlowMA); } 
else Lot = 0.01;
}
}
if (Lot < MarketInfo(Symbol(), MODE_MINLOT)) Lot = MarketInfo(Symbol(), MODE_MINLOT);
else if (Lot > MarketInfo(Symbol(), MODE_MAXLOT)) Lot = MarketInfo(Symbol(), MODE_MAXLOT);
return (Lot);
}
 
001:

Me pueden decir por qué no puedo imprimir las variables, ni siquiera aparece el 0.

El controlador del lote del respetado voix_kas. Ligeramente rediseñado por mí.


¿Y en cada tic el tamaño de las matrices aumenta?

Tal vez sería más fácil crear un indicador de equilibrio. Y en Asesores Expertos uno se dirigiría a él.

 
Vinin:


¿Y en cada tic el tamaño de las matrices aumenta?

Y podría ser más fácil hacer un indicador de equilibrio. Y en el Asesor Experto ya se referiría a él.


Se puede, pero el Asesor Experto trabaja más lento en este caso. Y con la salida en la pantalla también resulta una tontería, se dibuja SOLO cuando se cierra el trato, y cómo hacer que exista como una línea continua de saldo, no lo entiendo, ¿alguien lo puede decir?
Razón de la queja: