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

 
Alexey Kozitsyn:
Bueno... no creo que haya que profundizar tanto, pero la petición en bucle es realmente lo primero que llama la atención.

¿Y si necesita estos datos una vez, o una vez por hora? ¿Por qué hacer un bucle inútil?

Ninguno de nosotros, salvo el propio interrogador, sabe lo que quiere. Así que sólo podemos aconsejarle lo que se le aconsejó: ir a leer en un club de telepatía sus fallos en la formulación de la pregunta. Y no se ofenda por los que decidieron reírse un poco.

 
Alexey Kozitsyn:
Trollers:) Una mejor sugerencia sería poner los precios en un bucle. Por lo tanto, se almacenan en matrices.
Léalo con calma).
 
Deberías haber contestado simplemente que mi pregunta no era clara para ti. Y tú "sal y pimienta"... Resentimiento
 
STARIJ:

En mi opinión, es más sencillo así

Las salidas de alerta son inmediatas a la pantalla. Este es el final de la tabla


¿Has leído la pregunta? Parece que se lo ha perdido.
 
Romal001:
Deberías haber contestado simplemente que mi pregunta no era clara para ti. Y tú "sal, pimienta..." Ofensiva

Lee mi primera respuesta, era una pregunta para ti. Si hubieras respondido con claridad, la conversación podría haber sido diferente.

¿Qué tipo de señales preguntabas?

¿Y qué tiene que ver esto con los datos de las velas?

 
#property indicator_chart_window
extern int boom = 1;
//=================================
void fishka(int ma,int mi,double map,double mip) // ф-ция
{
   ObjectCreate("Макс_Мин",OBJ_TRENDBYANGLE,0, Time[ma], map, Time[mi], mip);// Проводим линию
   ObjectSet("Макс_Мин",OBJPROP_RAY,false);     // Выключить свойство бесконечного луча
}

int deinit()
  {

 ObjectsDeleteAll();// Удалим все объекты
  return(0);
  }

void start()
{  
  string Символ = "GBPUSD";
  datetime Первый, Последний;
  int Период=PERIOD_H1;

  Последний = iTime(Символ, Период, 0);// Прежде всего узнаем дату и время последнего бара
 
if(boom){
   Alert("Последний бар на часовом  ",Последний);}
 
  
  MqlDateTime MqlПервый;              // Теперь получить начало суток, обнулив часы
  TimeToStruct(Последний,MqlПервый);  // Для этого преобразуем время последнего бара в структуру
  MqlПервый.hour=0;

  
  Первый=StructToTime(MqlПервый);            // Терерь надо обратно преобразовать во время
if(boom){
  Alert("Первый бар на часовом  ",Первый);}  // Смотрим начало первого бара суток
  
  int НомерПервого=iBarShift(Символ, PERIOD_H1,Первый);// По времени определим номер первого бара суток
if(boom){
   Alert("Первый бар на часовом под номером ",НомерПервого);}

// Можно было просто узнать время начала бара на D1

  // Теперь у нас есть НомерПервого бара, а номер послелнего = 0
  // Найдем на этом интервале номера баров, где макс и мин
  // iHighest и iLowest находят номер бара с макс и мин ценой
 int  БарМакс = iHighest(Символ,  // symbol = инструмента
                Период,           // timeframe = Период
                MODE_HIGH,        // Наибольшая цена бара
                НомерПервого+1,   // Количество баров
                0);               // Начальный бар

int  БарМин  = iLowest(Символ,Период,MODE_LOW,НомерПервого+1,0); // Наименьшая цена бара
                               
if(boom){
  Alert("Максимальный бар = ", БарМакс, "  Минимальный бар = ", БарМин);}
                                                                           

 
double max_price=iHigh(Символ, Период, БарМакс); // iHigh и iLow дают макс и мин цены указанного бара
double min_price=iLow (Символ, Период, БарМин);
   
    fishka(БарМакс,БарМин,max_price,min_price); // ф-ция
 if(boom){
   Alert("Максимум цены = ", max_price, "  Минимум цены = ", min_price);
 
   Alert("Угол = ", ObjectGetDouble(0,"Макс_Мин",OBJPROP_ANGLE));} // Теперь хорошо бы узнать угол               
}

como ponerlo en bucle para mostrar no solo un día sino el historial, todo retorcido como una serpiente no funciona, el interés es técnico, me pica))

 

Por favor, aconsejar cómo obtener un precio correcto y más preciso para donde las dos máquinas se cruzan


 
missha32:   Por favor, aconséjeme cómo obtener un precio correcto y más preciso cuando dos máquinas se cruzan entre sí

La intersección está entre las barras y el cálculo se basa en ellas. ¿O necesita ser más preciso? Se puede interpolar, pero ¿es necesario hacerlo? El lento Ma tiene el mismo valor.

 
STARIJ:

Intersección entre barras, y el cálculo se realiza barra por barra. ¿O necesita ser más preciso? Podrías interpolar, pero ¿deberías hacerlo? Slow Ma tiene el mismo valor.

En esta figura, MA1(1)>MA2(1) y MA1(2)<=MA2(2) es el hecho del cruce. La barra entre paréntesis muestra la barra en la que se toman MA1 y MA2
 

El cruce de MA se produce entre barras - cogió un claro ejemplo

La MA de las barras a la izquierda y a la derecha del cruce es diferente del precio en el punto de cruce. Entiendo que el que pregunta quiere el valor en el punto exacto de cruce en lugar del valor en una de las barras vecinas. Este valor exacto puede obtenerse mediante interpolación lineal, ya que la MA entre barras se construye como segmentos de línea recta. O tomar las coordenadas de cada MA en barras adyacentes. Construye analíticamente 2 rectas y calcula su punto de intersección. Se puede calcular considerando 2 triángulos similares. Surge una pregunta contraria: ¿por qué lo necesitamos? ¿Son los costes proporcionales al valor del resultado? Al fin y al cabo, los puntos de intersección se moverán si los parámetros del MA se modifican mínimamente. Lo más probable es que lo exija el director del proyecto de curso

Razón de la queja: