Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 902

 
AlexeyVik:

Tengo entendido que PC-- > MA es lo mismo que PC-1 > MA


Resulta que sí. ¿Pero por qué no funciona en una combinación como ésta?

Aunque, en la imagen de abajo, todo suma.


if (PC-->MA && Ask == MA)
OrderSend("EURUSD",OP_BUY,1,Ask,3,Ask-30*Point, Ask+30*Point);
 
inuboh:

¡Sí! ¿Pero por qué no funciona en esta combinación?

Aunque en la imagen de abajo todo encaja.


Leer sobre la comparación de números reales
 
inuboh:

¡Así es! ¿Pero por qué no funciona en una combinación como ésta?

Aunque en la imagen de abajo todo encaja


No hay nada que converja. A menudo sucede que el precio es más alto que la MA en el tick anterior, y el precio ya es más bajo que la MA en este tick, pero la igualdad exacta no sucede, o sucede tan raramente que nadie lo ha visto nunca. Especialmente, no se puede ver en las garrapatas de los probadores. No se puede ver en el gráfico. Y restar una unidad entera del precio doble y luego compararlo con МА, como"PC--> MA" - no convendrá en absoluto, tal comparación nunca obtendrá la verdad.

 

Buenos días a todos. Un consejo...

Estoy escribiendo un indicador. Necesito un indicador separado en la ventana superior - datos frescos (valores de ticks) que se dibujen a la derecha - como el precio - con una flecha verde.

Edito el indicador del tutorial - mis datos frescos (nuevos valores de tick) se dibujan a la izquierda - flecha roja...

Ayúdame a cambiar su dibujo. Para estar a la derecha, como el precio y como en el indicador superior en una ventana separada de la terminal. Gracias.

//--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_separate_window // Отображение в отдельном окне
#property indicator_buffers 1       // Количество буферов
#property  indicator_color1 Blue     // Цвет первой линии
#property  indicator_color2 Red      // Цвет второй линии
 
extern int History  =100;           // Колич.баров в расчётной истории
//extern int Aver_Bars=5;             // Количество баров для расчёта
 
double Buf_0[];                     // Объявление индикаторного массива
int Count=0;                        // Глобальная перемен.
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   //--- установим индексацию для буфера как в таймсерии
   ArraySetAsSeries(Buf_0,true);

   return(0);                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                    // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за период
   Sum_L;                           // Сумма значений Low  за период
//--------------------------------------------------------------------
 /*  Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
 while(i>=0)                      // Цикл по непосчитанным барам
     {
        Sum_H=0;                      // Обнуление в начале цикла
      Sum_L=0;                      // Обнуление в начале цикла
      for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
     
     
      i--;                          // Расчёт индекса следующего бара
      */
      double Price = NormalizeDouble(MarketInfo(_Symbol,MODE_BID),Digits); 
      Buf_0[Count] = Price;
                          
   Count++;                                     // Счётчик тиков
   Comment ("Новый тик ",Count,"   Цена = ",Price);// Сообщение
     
    
//--------------------------------------------------------------------
   return(0);                          // Выход из спец. ф-ии start()
  }
 
¡Hola! Soy nuevo aquí. Puede alguien decirme o darme un enlace donde pueda aprender a usar la funcionalidad completa de mt4
 

Hola a todos.

Pregunta:

ticket = OrderSend(blah, blah, blah, ......................)

Después de revisar el tutorial, la documentación, los artículos y el foro he visto que la variabledel ticket - algunos lo ponen dentro de la función OnTick()

- Otros lo ponen fuera (haciéndolo externo).es decir, frente a (haciéndolo externo, hicieron una estadística)

- algunos simplemente lo declaran ( int ticket; )

- otros lo asignan a 0 (que es lo mismo que una simple declaración)

- otros asignan -1

Si esto es significativo (excepto en casos individuales), ¿podría conducir a errores, y si es así cómo se corrige? ? ?

Gracias.

 
evillive:

No hay nada que encaje. A menudo ocurre que en el tick anterior el precio está por encima de la MA, y en este tick el precio ya está por debajo de la MA, pero la igualdad exacta no se da, o se da tan raramente que nadie la ha visto nunca. Especialmente, no se puede ver en las garrapatas de los probadores. No se puede ver en el gráfico. Pues bien, restar una unidad entera del precio y luego compararlo con MA, como"PC-- > MA" - no funciona en absoluto, tal comparación nunca devolverá la verdad.

Lo tengo, ¡gracias! Sólo dígame algo para el futuro: por ejemplo, si tengo una línea (puede ser un muving), ¿cómo debo escribir, que cuando el precio Ask alcance esta línea, se abrirá una orden de compra? ))
 
pavlo555:
Hola, soy nuevo aquí. Puede alguien decirme o darme un enlace donde pueda aprender a usar la funcionalidad completa de mt4

 
inuboh:
Lo tengo, ¡gracias! Me pueden decir algo para el futuro: por ejemplo, si tengo una línea (puede ser un muving), ¿cómo puedo escribir, que cuando el precio Ask llegue a esta línea, se abra una orden de compra? ))
Si Ask(1) es menor que MA y Ask(0) es mayor o igual que MA, es decir, un toque abajo, puede comprar. Pero en el siguiente periodo el precio puede "cambiar de opinión" y bajar aún más, es normal, así es el mercado.