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

 
Artyom Trishkin:

Sigo sin entender: ¿qué quiere encontrar y mostrar? Sólo con palabras, sin código.

Así que estás escribiendo:

La pregunta es: ¿Por qué lo buscas en la décima barra?


En el décimo bar, lo tomé como ejemplo.

Necesito establecer puntos después de 10 o "N" barras después de que aparezca la flecha del indicador llamado.

como si sólo necesitara colocar los puntos en la décima barra, lo haría así

 if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",1,i+10),Digits)!=EMPTY_VALUE
        {
         BufferDN[i+1]=high[i+1]+distance*MyPoint;

        }

Artyom Trishkin:

Y adjuntar todo el indicador, no OnCalculate()

Esta es la primera opción

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot UP
#property indicator_label1  "UP"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLawnGreen
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot DN
#property indicator_label2  "DN"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrDeepPink
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1

//--- indicator buffers
double         BufferUP[];
double         BufferDN[];

int distance=5;
double MyPoint;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferUP);
   SetIndexBuffer(1,BufferDN);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);

//---
   if(Digits()==5 || Digits()==3){MyPoint=Point*10;} else{MyPoint=Point;}
  
   return(INIT_SUCCEEDED);
  }
   // int ila;
int    vspread,num_buy=0,num_sell=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[])
  {
//---
   if(rates_total<2) return(0);
   int limit=rates_total-prev_calculated;
   if(limit>1) 
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--) 
     {
     for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE
            )
           {
            num_buy=il;
            //Print()
           // break;
           }
        }
//
      if(num_buy==60)
        {
         BufferUP[i+1]=low[i+1]-distance*MyPoint;
         
        }
    
     for(int ila=i+1;ila<=i+300;ila++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",1,ila),Digits)!=EMPTY_VALUE
            )
           {
            num_sell=ila;
           // break;
           }
        }
      if(num_sell==10)
        {
         BufferDN[i+1]=high[i+1]+distance*MyPoint;

        }
     
      Comment(num_buy,"num_sell",num_sell);
     }
//--- return value of prev_calculated for next call

   return(rates_total);
  }
//
.
 

Globalmente, quiero comparar el mínimo de la primera barra con el fractal superior"n" detrás de la primera flecha del indicador llamado (primer buffer).

Y averigua el precio máximo entre la primera barra y la barra del fractal encontrado.

La condición es la siguiente: si el mínimo (+-10 puntos) de la primera barra es igual al precio (que sea el primero) del fractal que está detrás de la flecha indicadora y el precio máximo entre la barra del fractal y la primera barra menos el precio del fractal encontrado es superior a 50 puntos, entonces ponga la flecha.

En realidad, para encontrar el fractal, necesito el número de la barra donde está la flecha. Quiero mirar a través de los fractales a partir de esta barra e ir más allá en la historia.

Tal vez empecé desde el lugar equivocado y usted puede darme otra solución.

 
mila.com:

Globalmente, quiero comparar el mínimo de la primera barra con el fractal superior"n" detrás de la primera flecha del indicador llamado (primer buffer).

Y averigua el precio máximo entre la primera barra y la barra del fractal encontrado.

La condición es la siguiente: si el mínimo (+-10 puntos) de la primera barra es igual al precio (que sea el primero) del fractal que está detrás de la flecha indicadora y el precio máximo entre la barra del fractal y la primera barra menos el precio del fractal encontrado es superior a 50 puntos, entonces ponga la flecha.

En realidad, para encontrar el fractal, necesito el número de la barra donde está la flecha. Quiero mirar a través de los fractales a partir de esta barra y luego volver a la historia.

Tal vez empecé desde el lugar equivocado y usted puede sugerir otra manera de resolverlo.

Este debería simplemente poner puntos a través de la historia en la distancia en barras que se establece en la configuración.

Es decir, si se establecen 10 barras, entonces en caso de que haya una señal del indicador personalizado a la izquierda del índice del ciclo durante 10 barras, se establecerá un punto en la barra actual (índice i) del ciclo

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot UP
#property indicator_label1  "UP"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLawnGreen
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot DN
#property indicator_label2  "DN"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrDeepPink
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- input parameters
input uint     InpNumberOfBars   =  10;   // Количество баров отступа
input int      InpDistance       =  5;    // Отступ в пунктах
//--- indicator buffers
double         BufferUP[];
double         BufferDN[];
//---
int            num_bars;
double         distance;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferUP);
   SetIndexBuffer(1,BufferDN);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);
//--- setting variables
   num_bars=(int)InpNumberOfBars+1;
   distance=InpDistance*Point();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   if(rates_total<num_bars) return(0);
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-num_bars-1;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)   // 1000 - 11 - 1 = 999-11 = 988
     {
      double val_0=iCustom(NULL,0,"Arrow v.3",0,i+num_bars);   // rates_total=1000, i=988, val from 988+11=999
      double val_1=iCustom(NULL,0,"Arrow v.3",1,i+num_bars);   // rates_total=1000, i=988, val from 988+11=999
      if(val_0>0 && val_0<EMPTY_VALUE)
         BufferDN[i]=low[i]-distance;  // BufferDN[988]=val
      if(val_1>0 && val_1<EMPTY_VALUE)
         BufferUP[i]=high[i]+distance;
     }
//--- return value of prev_calculated for next call

   return(rates_total);
  }
//+------------------------------------------------------------------+
Sin embargo, "debe" no significa que tenga que hacerlo. Lo dibujé tontamente sobre mis rodillas mientras dormía. No puedo comprobarlo, no tengo uno personalizado. Ya sabes...
 
Saludos. Realmente necesito ayuda. ¿Alguien conoce algún script o método para resaltar las operaciones en el historial de operaciones y luego guardar estas selecciones en el historial, por ejemplo: https://yadi.sk/d/7aHIs_vh3RxLvW o aquí:
https://yadi.sk/i/Ft8yNn1e3RxMEH - gracias de antemano
Archivos adjuntos:
2.jpg  481 kb
3.jpg  708 kb
 
civic111:
Saludos. Realmente necesito ayuda. ¿Alguien conoce algún script o método para resaltar las operaciones en el historial de operaciones y que estas selecciones se guarden en el historial, como https://yadi.sk/d/7aHIs_vh3RxLvW o aquí?
https://yadi.sk/i/Ft8yNn1e3RxMEH - gracias de antemano

¿Es este el camino


¿para poner las fotos?

 
civic111:
Saludos. Realmente necesito ayuda. Tal vez alguien sepa algún script o método, cómo puedo seleccionar algunas ofertas en el historial de ofertas y luego estas selecciones se guardarán en el historial, por ejemplo: https://yadi.sk/d/7aHIs_vh3RxLvW o aquí:
https://yadi.sk/i/Ft8yNn1e3RxMEH - gracias de antemano

En el panel estándar, ni hablar.

Pero CodeBase o (quizás) Market deberían tener herramientas para trabajar con el historial de pedidos. O, como alternativa, puede crear o encargar el "panel de historial de pedidos alternativo con blackjack y devs" como proyecto independiente :-)

O simplemente, exportar a CSV y luego usar Excel para analizar el historial en él.

 

por favor, cierre el trabajo

Necesito un espacio libre

 
El desarrollador Hooshang Nosratpanah ha confirmado el paso "Work Acceptance"
 
اه مو مشكلة
يعني ممكن صفقة شرا لم تحق هدفها فلذلك مكن تعزيزها بصفقة اخرى شراء اذاا اعطى الاكسبيرت اشارة بذلك
 
انا اعتقد ان كل مسافه معينه افضل
لان ممكن نفتح شرا و السعر ينزل ويجيب اشاره بيع
ويفضل علي البيع كتير وينزلجامد واتحين كل دا صفق واحده بس شرا ومنتظرين اشاره شرا تانيه عشان ندخل بلوت اكبر
Razón de la queja: