[¡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 145

 
MK07:

Gracias por los consejos. Funciona, pero al instalar el indicador se dibuja de forma extraña (ver gráfico). La sangría (en barras) desde el borde izquierdo de la ventana del gráfico hasta la línea vertical amarilla es siempre SIN PARAR para CUALQUIER número de barras visibles en la ventana y es igual a ocho barras. En cuanto estas ocho barras sobrepasan el borde izquierdo de la ventana, aparecen inmediatamente TODAS las líneas del gráfico y entonces todo es normal. ¿Se puede arreglar y cómo?


inténtalo así

   int limit;
   int counted_bars=IndicatorCounted();
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
 
Necesito construir un indicador sobre TODAS las Barras VISTAS en la ventana, y luego encontrar su máximo y mínimo en este punto! Ayúdenme a resolver el problema, mencionado en mi post anterior, tengo un ejemplo, pero no lo entiendo todo, ¿puede alguien explicar estas tres líneas una por una?
 // обработка видимых баров.
   int bars_count=WindowBarsPerChart();
   int bar=WindowFirstVisibleBar();
   for(int i=0; i<bars_count; i++,bar--)
     {
      // номера баров уменьшаются, так как нумерация идет в обратном порядке.
      // ...
     } 
 
MK07:
Esta construcción de código permite recalcular en cada nuevo tick el indicador sólo en cero y en la primera barra (para comprobar), en lugar de recalcular el indicador ya calculado de nuevo. Pero necesito construir un indicador por TODAS las barras visibles en la ventana, y luego encontrar su máximo y mínimo en este punto! Ayúdame a resolver el problema, mencionado en mi post anterior. hay un ejemplo, pero no todo es claro para mí. ¿puede alguien explicar estas tres cadenas línea por línea?

No está muy claro lo que necesitas, si necesitas encontrar el MÁXIMO y el MIN de las barras visibles del indicador, primero dibuja el indicador y luego búscalo.

Tal vez sea mejor utilizar WindowPriceMax(), WindowPriceMin().

 
r772ra:

Stepan2

Obras


Al fin y al cabo hay un fallo con las matrices, pero con el while

c para que funcione sin problemas

))

 

Buenas tardes.

Gente, decidme con qué probar los EAs. Porque la MT incorporada da una media del 50% de calidad de simulación, y la gente está poniendo más del 90% en las capturas de pantalla.

 
jusser:

Buenas tardes.

Gente, decidme con qué probar los EAs. Porque la MT incorporada da una media del 50% de calidad de simulación, pero en las capturas de pantalla la gente pone más del 90%.


Si tienes todo el historial de minutos, será el 90%. El 99% se consigue creando un historial de garrapatas fxt usted mismo. Esto se suele hacer utilizando las comillas de dukascoping. Guiones de Google sobre el tema de las pruebas de calidad del 99%

 
Buenas tardes, ¿podríais decirme si hay algún indicador en MT4 que muestre el interés abierto? Si no es así, ¿se puede sustituir por algo similar?
 
Hola, cómo implementar una condición en el código del Asesor Experto para establecer el mismo tipo de órdenes 50 pips después de la última orden
 
Armen63:
Hola, cómo implementar una condición en el código del Asesor Experto para establecer el mismo tipo de órdenes 50 pips después de la última orden
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает расстояние в пунктах между рынком и ближайшей       |
//|             позицей                                                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    op - торговая операция          (    -1      - любая позиция)           |
//|    mn - MagicNumber                (    -1      - любой магик)             |
//+----------------------------------------------------------------------------+
int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
  double d, p;
  int i, k=OrdersTotal(), r=1000000;

  if (sy=="" || sy=="0") sy=Symbol();
  p=MarketInfo(sy, MODE_POINT);
  if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
          if (OrderType()==OP_SELL) {
            d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
        }
      }
    }
  }
  return(r);
}
 

Por favor, aconseja dónde insertar una línea en el código del indicador adjunto, no sé nada al respecto. El caso es que este indicador muestra el movimiento de los pares de divisas en una ventana aparte, pero al faltar uno de los pares en la ventana de visión general del mercado no muestra nada. Me han aconsejado que use este:

El error puede ocurrir sólo en este lugar

double Vol = iCustom(s[n],0, "Ind ZeroLag MACD",FastEMA,SlowEMA,0,0) / MarketInfo(s[n], MODE_POINT);

cuando no hay datos en MarketInfo(symbol, MODE_POINT), obtenemos una división por cero.

insertar comprobación en MarketInfo(símbolo, MODE_POINT)

No sé dónde ponerlo ( no veo el par GBP/NZD en la visión general del mercado) . Por favor, avisa.

Archivos adjuntos:
indicator.mq4  6 kb