[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 608

 
artmedia70:
¿Cómo cree que decidirá si se trata de un retroceso o de una inversión? ¿O abrirá dos posiciones en cada retroceso? Es un fracaso...

Primero me gustaría que funcionara, y luego me gustaría ejecutar el EA en el probador para encontrar el tamaño del parámetro lim.
 
Hola a todos, estoy intentando hacer un programa y estoy teniendo

No puedo entender por qué no funciona.

Puedo explicarlo :-)

Me gustaría hacer una línea que cambie de color en función de la tendencia por así decirlo (indicador primitivo)

Parece que cambia pero hay lagunas como si se le escapara una barra en el cálculo

cuál es mi error



//--------------------------------------------------------------------
#propiedad ventana_del_gráfica_del_indicador
#property indicator_buffers 2
#property indicator_color1 Azul // Color de la primera línea
#property indicator_color2 Rojo // color de la segunda línea

double Buf_0[],Buf_1[]; //abrir matrices de indicadores
//--------------------------------------------------------------------
int init() // Función especial init()
{
//--------------------------------------------------------------------
SetIndexBuffer(0,Buf_0); // Asignación de un array al buffer
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);// Estilo de línea
//--------------------------------------------------------------------
SetIndexBuffer(1,Buf_1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
//--------------------------------------------------------------------
volver;
}
//--------------------------------------------------------------------
int inicio()
{
int,barras_contadas;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Número de barras calculadas
i=Barras-Contadas_barras-1; // Índice de la primera no contada
while(i>=0) // Recorrer las barras no contadas
{
double a=(Alto[i]+Bajo[i])/2;
double b=(High[i+1]+Low[i+1])/2;
if (a=>b) Buf_0[i]=a; //cambiar o no cambiar el color
si (a<b) Buf_1[i]=a;
i--;
}
//--------------------------------------------------------------------
volver;
}
//--------------------------------------------------------------------
 
¡¡¡Hola!!! ¿Pueden aconsejar cómo implementar esto en el código? Debería tener 3 (Los importes se fijan por separado) órdenes sl no rentables para abrir dos órdenes de compra y venta. La distancia entre ellos debe establecerse en una variable separada.
 
¡Hola, quiero calcular el "ATR histórico intradiario" (es decir, la media de cada hora de los últimos 30 días) y me gustaría creer que ya debería existir algo así - tal vez el indicador se llama de otra manera o se pueden ajustar los existentes de alguna forma? si alguien lo sabe, por favor, aconséjelo!
 
zelek:

Primero me gustaría que funcionara y luego ejecutar el 'EA' en el probador para dimensionar el parámetro lim.
Y puedes adjuntarlo a ATR. Habrá dinámica y no habrá que ajustar: todo dependerá de la volatilidad del mercado
 
Top2n:
¡¡¡Hola!!! ¿Pueden aconsejar cómo implementar esto en el código? Debería tener 3 (El número total se establece por separado) órdenes perdedoras sl debería abrir dos órdenes de compra y venta. La distancia entre ellos debe establecerse en una variable separada.


Ponemos una variable igual a cero y la aumentamos en 1 cuando la posición es perdedora. Una vez que alcanza el valor requerido, abrimos las posiciones necesarias.
Esa es la lógica...
 

¿Puedes decirme qué robots funcionan durante 15 días y cuáles no difieren en beneficios de Cheetah 2.5?

Por favor, dame un enlace o sitio web, etc.

Gracias de antemano por su tiempo

 
artmedia70:
Y lo conectas a ATR. Será dinámico y no es necesario ajustarlo: dependerá de la volatilidad del mercado


Por favor, echa un vistazo al código, no entiendo por qué los pedidos no se cierran

extern int     lim=20;             // Дистанция возврата курса

/
int init()
  {
 

   return(0);
  }
/
int deinit()
  {
//----
   
//----
   return(0);
  }

int start()
  {
 
  double 
   max, min;                                            
  int b, s;
   if (Bid>max) max=Bid; 
    if (Ask<min) min=Ask;  
       if (OrdersTotal()>0)
       {                                   
           if ((max-Bid)>=lim*Point) 
           {                   
          OrderSelect(b,SELECT_BY_TICKET);                                  
          b=OrderClose(OrderTicket(),0.1,Bid,3,Blue);
          }
          
          
          if ((Ask-min)>=lim*Point)  
          {         
      OrderSelect(s,SELECT_BY_TICKET); 
      s=OrderClose(OrderTicket(),0.1,Ask,3,Red);
         }
}
else
{
  if (OrdersTotal()<1)
  {
 b=OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,"",5,0);
      
 s=OrderSend(Symbol(),OP_SELL,0.1,Bid,5,0,0,"",5,0); 
    }                           
   }
         return;

   return(0);
  }
 
zelek:


Por favor, echa un vistazo al código, no puedo entender por qué los pedidos no se cierran

estructura interesante:
si (Oferta>máx) máx=Oferta;
if (Ask<min) min=Ask;

¿Está seguro de que si el precio sube, entonces si ((max-Bid)>=lim*Point) se ejecutará?

Yo haría lo siguiente - en la sección init(), por ejemplo, memorizaría el precio cuando el EA se inicia (puede no estar en el init) - y luego bailaría a partir de este precio.

Si tienes un Asesor Experto, memorizarías el precio, pero como parece que dividirás tu mínimo y máximo por ticks y luego controlarás tus órdenes en este corredor


 
Lógicamente debería funcionar, pero por qué no, ¿puede explicarlo?
Razón de la queja: