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

 

Necesito que el indicador dibuje flechas en el gráfico diario. Supongo que el problema está en el uso de las EMAs de 15 minutos, todo funciona con las EMAs de 15 minutos. ¿Es posible hacer un indicador que se calcule a partir del marco temporal de 15 minutos y dibujar flechas en el gráfico diario?

A continuación se muestra el código en sí:

#property copyright ""
#property link      ""

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 Red

//--- input parameters

//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,217);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,217);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexEmptyValue(1,0.0);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    signal_1,
    signal_2,
    MA_1_t,                                                 
    MA_2_t;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   
   for(int i=0;i<limit;i++)
   {
      MA_1_t=iMA(NULL,PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,i+1);  
      signal_1 = (условие);
      signal_2 = (условие);
      if (signal_1 >= определенное число)
      ExtMapBuffer1[i]=High[i]+5*Point;
      else
         ExtMapBuffer1[i]=0.0;
      if(signal_2 >= определенное число)
         ExtMapBuffer2[i]=Low[i]-5*Point;         
      else
         ExtMapBuffer2[i]=0.0; 
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
satorifx:


dist = MathAbs((NormalizeDouble(Bid,Digits)-
NormalizeDouble(ObjectGetValueByShift(TrendLineName,0),Digits))*MathPow(10,Digits));

El código encuentra la distancia del nivel de precio actual a la tendencia por TrendLineName. Pero hay un problema: aparentemente, la tendencia no se transmite con precisión entre mitades, y por lo tanto la distancia al precio es bastante diferente para diferentes mitades. ¿Cómo se puede evitar este problema? Idealmente, incluso si la línea de tendencia se muestra sólo en H1, en el tiempo de apertura W1 (de hecho en cualquier tiempo de apertura) la distancia calculada debería ser la misma.


En relación con la pregunta de la cita anterior, otra pregunta: ¿cómo puedo simular un marco temporal diferente al abierto en el gráfico? Es decir, por ejemplo, con D1 abierto, ¿debo calcular en M30?
 
Busqué en Internet, encontré algo, pero lo probé y ¡no funcionó! Ayúdame a añadir un trailing stop)) debería funcionar así - si el precio sube/baja (en beneficio) en "X" puntos, activa un trailing stop en "Y" puntos de ese precio y se mueve en dirección rentable con incremento "Z". Muchas gracias a quien ayude))))))

//+------------------------------------------------------------------+
//| sobstvennyi_probnyi_sovetnic.mq4 ||
//| Antonico |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Antonico"
#enlace de propiedad "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| función de inicialización de expertos |
//+------------------------------------------------------------------+
lote doble=1;
extern double sl=30;
extern double tp=30;
extern double koeff=2;
int pon=1;
int vtor=0;
int sred=3;
int hetver=0;
int patn=0;


int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int inicio()

{ int otkrord=Total de pedidos();
if (DayOfWeek()==pon || DayOfWeek()==vtor || DayOfWeek()==sred || DayOfWeek()==hetver ||| DayOfWeek()==patn || DayOfWeek()==6 || DayOfWeek()==0 || otkrord >0) return(0);



if(OrdersHistoryTotal()==0)
{lote=1;}

if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))

{
si (OrderProfit()>0)
{
lote=1;
}
si (OrderProfit()<=0)
{
lote=Lotes de pedido()*koeff; // Multiplicar por 2
}

}


int h=Hora(HoraActual());
int m=TimeMinute(TimeCurrent());
int s=TimeSeconds(TimeCurrent());
double zena0=Abrir[3];
double zena01=Abrir[2];


si (h==1 && m==00 && s==01 && zena0<zena01 )

{OrderSend(Symbol(), OP_BUY,lot,Ask,3,Bid-sl*Point,Ask+tp*Point,"",0,0,Green);}





if (h==1 && m==00 && s==01 && zena0>zena01)
{OrderSend(Symbol(), OP_SELL,lot,Bid,3,Ask+sl*Point,Bid-tp*Point,"",0,0,Red);}
}


{if(OrdersHistoryTotal()==0)
{lote=1;}

if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))

{
si (OrderProfit()>0)
{
lote=1;
}
si (OrderProfit()<=0)
{
lot=OrderLots()*koeff; // Multiplicar por 2 después de una operación perdedora
}

}




double zena1=Abrir[5];
double zena11=Abrir[4];

if (h==3 && m==00 && s==01 && zena1>zena11)
{



OrderSend(Symbol(), OP_BUY,lot,Ask,3,Bid-sl*Point,Ask+tp*Point,"",0,0,Green);}
if (h==14 && m==00 && s==01 && zena1<zena11)
{OrderSend(Symbol(), OP_SELL,lot,Bid,3,Ask+sl*Point,Bid-tp*Point,"",0,0,Red);}

}
}

return(0);
}

//+------------------------------------------------------------------+
 

¿Pueden decirme cómo traducir un carácter (cadena) a código ASCII?

A grandes rasgos, se necesita la inversa de CharToStr().

 
Heroix:

¿Pueden decirme cómo traducir un carácter (cadena) a código ASCII?

A grandes rasgos, se necesita la inversa de CharToStr().


 

Buenas tardes.

ayúdame necesito un código

gráfico actual

Cuando se abre una nueva barra, hay que abrir una orden

Exactamente el nuevo bar

 
sannin:

Buenas tardes.

ayúdame necesito un código

gráfico actual

Cuando se abre una nueva barra, hay que abrir una orden

Exactamente el nuevo bar

No hay problema.

Empieza a escribir el código que necesitas. En caso de dificultades, haz preguntas y muestra trozos del código que has escrito, y los compañeros con experiencia te mostrarán en qué te has equivocado.

 

Hola a todos.

Tengo una pregunta. En el probador, la semana comienza a las 00:00 si miramos el gráfico de horas, por ejemplo. Se sabe que la semana forex comienza a las 20:15 GMT. Es decir, con el fin de obtener de una hora en el probador hora GMT, en términos generales, prebovlyayut 20 horas y dividir el módulo por 24, ¿verdad?

 
por qué exactamente a las 20:15, para usted se abrirá como su corredor abre
 
Buenos días a todos. Por favor, aconsejar donde obtener información sobre cómo cerrar el EA de las miradas indiscretas y que el EA debe trabajar durante un cierto período de tiempo y luego deja de ser útil hasta que, por ejemplo, la introducción del código para seguir trabajando, así. ¡¡¡Gracias de antemano!!!
Razón de la queja: