Errores, fallos, preguntas - página 525

 

Buenas tardes, ¿es posible cambiar la herramienta gráfica estándar de alguna manera? Más concretamente: añada una línea vertical a la cuadrícula Fibo, trazada con un factor de 1,3

 

una pregunta sobre el uso de indicadores. He escrito un código de prueba.

int Fractals;
double bar_val[];
bool start;
int OnInit()
{
   Fractals = iFractals(_Symbol, _Period);
   if (Fractals == INVALID_HANDLE) return (1);
   if (!ArrayResize(bar_val, 2)) return (1);
   if (!ArraySetAsSeries(bar_val, true)) return (1);
   start = false;
   return(0);
}

void OnTick()
{
   if (start) return; else start = true;
   for (int i = 0; i < 10; i++)
   {
      CopyBuffer(Fractals, UPPER_LINE, i, 2, bar_val);
      if (EMPTY_VALUE != bar_val[0])
         Print("1. i = " + string(i) + ", bar_val = " + string(bar_val[0]));
      CopyBuffer(Fractals, LOWER_LINE, i, 2, bar_val);
      if (EMPTY_VALUE != bar_val[0])
         Print("2. i = " + string(i) + ", bar_val = " + string(bar_val[0]));
   }
}

Muestra periódicamente el fractal con i = 2, pero no está presente en la pantalla (desde el indicador estándar Fractales)

Por favor, indique cuál es el error

 
Por alguna razón, entre 2001 y 2006 no se ha examinado a ningún experto. He mirado el euro y la libra. Cerrado el terminal, borrado el historial. Lo he vuelto a descargar. De todos modos. Es posible abrir acuerdos hasta el año 2001. Y de 2001 a 2006 se salta cuando hay señales. ¿Por qué?
 

Los botones de los plazos en la barra de terminales se pegan. A veces varios de ellos a la vez cuando se cambia frecuentemente de una TF a otra. Tal vez, se deba a un gran número de ventanas, indicadores, plantillas... Sin embargo, antes tenía tantas ventanas como tenía pero no se observaba este efecto. La captura de pantalla es un ejemplo de incoherencia entre el botón de marco temporal pulsado y el valor real mostrado en la esquina superior izquierda del gráfico. Es más bien un efecto a largo plazo, aunque tarde o temprano se quita.

A veces no se pulsa ninguno.

 

¿Puedo controlar el tamaño de la ventana con mql5?

 
ilunga:

una pregunta sobre el uso de indicadores. He escrito un código de prueba.

Muestra periódicamente el fractal con i = 2, pero no está presente en la pantalla (desde el indicador estándar Fractales)

Por favor, indique cuál es el error

No debería saber a simple vista cómo tratar el código del Asesor Experto
 
tol64:
Por alguna razón, entre 2001 y 2006 no se ha examinado a ningún experto. He mirado el euro y la libra. Cerrado el terminal, borrado el historial. Lo he vuelto a descargar. De todos modos. Es posible abrir acuerdos hasta el año 2001. Y de 2001 a 2006 se salta cuando hay señales. ¿Por qué?
Información adicional. Esto sólo ocurre si ha seleccionado el marco temporal D1 en la configuración del comprobador. Si selecciono el marco temporal D1 en la configuración del Asesor Experto y un TF más pequeño en la configuración del probador, entonces no habrá saltos. ¿Es un error o hay alguna explicación?
 

Hice un indicador simple, pero no entiendo por qué no quiere trabajar;(

//+------------------------------------------------------------------+
//|                                                      testind.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot Vol
#property indicator_label1  "UniPrice"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrLightSlateGray
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
#include <MovingAverages.mqh>
//--- input parameters
input int      Smooth=50;
//--- indicator buffers
double         SmoothSpreadBuffer[];
double         SpreadBuffer[];
double         UniPriceBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UniPriceBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,SpreadBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,SmoothSpreadBuffer,INDICATOR_CALCULATIONS);
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   int i;
   for(i=1;i<rates_total;i++)
     {
      SpreadBuffer[i]=(high[i]-low[i]);
     }  
     
   SmoothedMAOnBuffer(rates_total,prev_calculated,
                         1,  // с какого индекса есть значения в массиве для сглаживания 
                         Smooth,  // период экспроненциальной средней
                         SpreadBuffer,       // буфер для взятия средней
                         SmoothSpreadBuffer);  // в этот буфер помещаем значения средней      
   for(i=1;i<rates_total;i++)
     {
      UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[i];//не показывает
      //UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[rates_total-1];//показывает
      //UniPriceBuffer[i]=close[i];//показывает
      //UniPriceBuffer[i]=SmoothSpreadBuffer[i];//показывает
     }  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

¿Por qué no quiere dividir una por la otra y mostrar el resultado?

A veces da un resultado, pero no se corresponde con la realidad, por ejemplo el EURUSD debería tener un valor entre 300-400 en el reloj...

 
Olegts:

Hice un indicador simple, pero no entiendo por qué no quiere trabajar;(

close[i] cuando lo sustituyo, SmoothSpreadBuffer[i] cuando lo sustituyo, ¿por qué no quiere dividir uno por otro y mostrar el resultado?

Es cierto, a veces da un resultado, pero no se corresponde con la realidad, por ejemplo, el reloj EURUSD debería tener un valor en el rango de 300-400...

UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[i];

Sólo tienes que sustituir los valores del EURUSD por la hora actual y lo obtendrás:

Ma por ejemplo con una media de 16 a precios de cierre

UniPriceBuffer[i] = 1,33846 / 1.33932 = 0,99935

o mejor utilizar

handle=iMA(name,period,ma_period,ma_shift,ma_method,applied_price);
и т.д
 

Después de la última construcción, el terminal se cuelga al cargar. No hay acceso al menú ni al menú contextual. No hay acceso al menú ni al menú contextual. WIn7. La ventana de resumen de símbolos está vacía. El icono de conexión es rojo. No hay carga de la CPU. ¿Qué hacer y cuándo estará disponible la estabilidad?

Описание:
  Ошибка привела к остановке взаимодействия программы с Windows.

Сигнатура проблемы:
  Имя события проблемы:    AppHangB1
  Имя приложения:    terminal.exe
  Версия приложения:    5.0.0.514
  Отметка времени приложения:    00343800
  Сигнатура зависания:    86b5
  Тип зависания:    1
  Версия ОС:    6.1.7601.2.1.0.256.1
  Код языка:    1049
  Доп. сигнатура зависания 1:    86b56845a796dcc49c1ed94bca152915
  Доп. сигнатура зависания 2:    4dea
  Доп. сигнатура зависания 3:    4dea45bbcdd37e9fd7bef8af1f8c0d94
  Доп. сигнатура зависания 4:    1df5
  Доп. сигнатура зависания 5:    1df5990b738955081f33bb6a466caece
  Доп. сигнатура зависания 6:    b4e6
  Доп. сигнатура зависания 7:    b4e6e85bfba9e3852328760498392cb4