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

 
pero eso es todo.
//+------------------------------------------------------------------+
//|                                                      5 fkkjd.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern double      urov_h1_1=1;
.....
extern double      urov_D_4=1;
extern double      urov_D_5=1;

double urov_h1[], urov_h4[], urov_D[];
int svechi_ball, urov_ball, stoh;
int i;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   //*******
   urov_h1[0]= urov_h1_1;   urov_h1[1]= urov_h1_2;   urov_h1[2]= urov_h1_3;   urov_h1[3]= urov_h1_4;
   urov_h1[4]= urov_h1_5;   urov_h1[5]= urov_h1_6;   urov_h1[6]= urov_h1_7;   urov_h1[7]= urov_h1_8;
   urov_h1[8]= urov_h1_9;   urov_h1[9]= urov_h1_10;  urov_h1[10]= urov_h1_11; urov_h1[11]= urov_h1_12;
   urov_h1[12]= urov_h1_13; urov_h1[13]= urov_h1_14; urov_h1[14]= urov_h1_15;
   //*******
   urov_h4[0]= urov_h4_1;   urov_h4[1]= urov_h4_2;   urov_h4[2]= urov_h4_3;   urov_h4[3]= urov_h4_4;
   urov_h4[4]= urov_h4_5;
   //******* 
   urov_D[0]= urov_D_1;   urov_D[1]= urov_D_2;   urov_D[2]= urov_D_3;   urov_D[3]= urov_D_4;
   urov_D[4]= urov_D_5;
   //*******

  //+++++медвежье поглощение++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  for( i=0; i<15; i++)
   {
   if( medvejye_poglochenie( urov_h1[ i])==true)
      {
      svechi_ball=4;
      urov_ball=3;
      text( svechi_ball, urov_ball);
      }
   }
  /*bool medv_po_h1_1=medvejye_poglochenie(urov_h1_1);
  bool medv_po_h1_2=medvejye_poglochenie(urov_h1_2);
  ............
  bool medv_po_h1_15=medvejye_poglochenie(urov_h1_15);
  //**
   //****стохастик
  double st_2=iStochastic(Symbol(),60,6,1,2,MODE_EMA,0,MODE_MAIN,2);    
  double st_1=iStochastic(Symbol(),60,6,1,2,MODE_EMA,0,MODE_MAIN,1);    

  if(medv_po_h1_1==true || medv_po_h1_2==true || medv_po_h1_3==true || medv_po_h1_4==true || medv_po_h1_5==true || medv_po_h1_6==true
     || medv_po_h1_7==true || medv_po_h1_8==true || medv_po_h1_9==true || medv_po_h1_10==true || medv_po_h1_11==true || medv_po_h1_12==true
     || medv_po_h1_13==true || medv_po_h1_14==true || medv_po_h1_15==true)
      {
      svechi_ball=4;
      urov_ball=3;
      if(st_2>st_1 && st_2>70 && st_1>70) stoh=2;
      else if(st_2>st_1 && st_2<70 && st_1<70) stoh=1;
      else stoh=0;
      text(svechi_ball,urov_ball,stoh);
      }
  if(medv_po_h4_1==true || medv_po_h4_2==true || medv_po_h4_3==true || medv_po_h4_4==true || medv_po_h4_5==true)
      {
      svechi_ball=4;
      urov_ball=4;
      if(st_2>st_1 && st_2>70 && st_1>70) stoh=2;
      else if(st_2>st_1 && st_2<70 && st_1<70) stoh=1;
      else stoh=0;
      text(svechi_ball,urov_ball,stoh);
      }
  if(medv_po_D_1==true || medv_po_D_2==true || medv_po_D_3==true || medv_po_D_4==true || medv_po_D_5==true)
      {
      svechi_ball=4;
      urov_ball=5;
      if(st_2>st_1 && st_2>70 && st_1>70) stoh=2;
      else if(st_2>st_1 && st_2<70 && st_1<70) stoh=1;
      else stoh=0;
      text(svechi_ball,urov_ball,stoh);
      }*/
  return(0);
  }

no

Algo está mal en este trozo de código, y no sé qué es.

for( i=0; i<15; i++)
   {
   if( medvejye_poglochenie( urov_h1[ i])==true)
      {
      svechi_ball=4;
      urov_ball=3;
      text( svechi_ball, urov_ball);
      }
   }

Sinceramente.

 
alsu >> :

doble iCustom(string symbol, int timeframe, string name, ..., int mode, int shift)
Cálculo del indicador personalizado especificado. El indicador personalizado debe ser compilado (archivo con extensión EX4) y ubicado en directorio_terminal_experts\indicators.
Parámetros:
símbolo - Nombre del símbolo, sobre cuyos datos se calculará el indicador. NULL significa símbolo actual.
marco temporal - Período. Puede ser uno de los períodos del gráfico. 0 significa el período del gráfico actual.
nombre - Nombre del indicador personalizado.
... - Lista de parámetros (si es necesario). Los parámetros transmitidos deben corresponder al orden de declaración y al tipo de variables externas (extern) del indicador personalizado.
modo - Índice de la línea indicadora. Puede ser de 0 a 7 y debe corresponder al índice, utilizado por una de las funciones SetIndexBuffer.
turno - Índice del valor obtenido del búfer del indicador (desplazamiento relativo a la barra actual en el número de períodos especificado hacia atrás).
Ejemplo:


>> ¡Ayuda!

GRACIAS ENORME Nunca habría encontrado iCustom en>> MQL4 Reference - Technical Indicators - iCustom (buscado en otros sitios, pero no aquí)

¡Gracias un ENORME GRACIAS de nuevo!

 

¡Saludos!

Estoy intentando enseñar a MT4 a identificar las barras cuyo rango supera el ATR(60) en el gráfico:

extern inttern Quant_Bars=1000; // Número de barras


int inicio()
{
int Ind_Bar;

for(Ind_Bar=Quant_Bars-1; Ind_Bar>=0; Ind_Bar--)
{
Crear(Ind_Bar);
}

volver;
}
//--------------------------------------------------------------- 3 --
int Create(int Ind_Bar) // Función definida por el usuario para crear un objeto

{
Color Color=Rojo; //Color del objeto
datetime T_Bar=Hora [Ind_Bar]; // Hora de apertura de la barra
double O_Bar=Open [Ind_Bar]; // Precio de apertura de la barra
double C_Bar=Close[Ind_Bar]; // Precio de cierre de una barra
double H_Bar=High [Ind_Bar]; // Precio máximo de la barra
double L_Bar=Low [Ind_Bar]; // Precio mínimo de la barra
double A= iATR(Symbol(),0,60,Ind_Bar);


if((H_Bar-L_Bar)>A)
ObjectCreate("Su_Nombre",OBJ_TREND,0,T_Bar,H_Bar,T_Bar,L_Bar);
volver;
}

... Por alguna razón, sólo llena una barra (la primera de la izquierda, en mi opinión), aunque debería tenerlo todo dentro de las barras 1000-0. Por favor, indíqueme dónde está el error.

 

No consigo saber dónde conectar los soportes... ¡ayúdame por favor!

	if((( b1+ b1_2)>0) || (( b2+ b2_2)>=0) || (( s1+ s1_2)<0) || (( s2+ s2_2)<=0))
	{
	if( T1green!=0 && T2red==0)
	}
	else 
	if( Flat!=0) return(0);
	{
	SigBuy=true;
	}
	if((( b1+ b1_2)>0) || (( b2+ b2_2)>=0) || (( s1+ s1_2)<0) || (( s2+ s2_2)<=0))
	{
	if( T1red!=0 && T2green==0)
	}
	else if( Flat!=0) return(0);
	{	
	SigSell=true;
	}

=>

'}' - unbalanced parentheses
'}' - unbalanced parentheses

 
Ibiss >> :

No sé dónde poner los soportes... ¡ayuda, por favor!

=>

No son dos paréntesis los que faltan, no hay ninguna estructura:

if(){}else{}//вот так 

if()// или так 
  {}
else
  {}
// и в зависимости от необходимости строите структуру 
if()
  {if(){}else{}}
else
  {if(){}}// простым скопировал вставил 

y luego poner las condiciones y los operadores adecuados en la estructura.

	if((( b1+ b1_2)>0) || (( b2+ b2_2)>=0) || (( s1+ s1_2)<0) || (( s2+ s2_2)<=0))
	{
	if( T1green!=0 && T2red==0)// что это условие должно разрешать ????????????
	}
	else 
	if( Flat!=0) return(0);//тут вылетаем по ретурну дальше код не исполняется 
	{
	SigBuy=true;// по какому условию выполняется этот оператор ???????????
	}
	if((( b1+ b1_2)>0) || (( b2+ b2_2)>=0) || (( s1+ s1_2)<0) || (( s2+ s2_2)<=0))
	{
	if( T1red!=0 && T2green==0)// что это условие должно разрешать ????????????
	}
	else if( Flat!=0) return(0);//тут вылетаем по ретурну дальше код не исполняется 
	{	
	SigSell=true;// по какому условию выполняется этот оператор ???????????
	}

pppppppp

 
Bien. Lo intentaré, ¡gracias!
 
Urain >> :

No son dos paréntesis los que faltan, no hay ninguna estructura:

y luego añadir las condiciones y operadores necesarios a la estructura.

pppppppp


No funciona así.

¿Qué debo hacer correctamente en mi caso?

if(...........)//если условие выполнилось,то
{
if(T1green!=0 && T2red==0)//и это выполнилось..  ...это типо максд
}
else 
if(Flat!=0) return(0);//это пролетаем, выполняется следующее
{
SigBuy=true;// включение покупки
}
 
¿Cómo puedo poner códigos de colores en mis mensajes?
 
¿hay alguna manera de hacer un gráfico de velas de 10 minutos?
 

Hola. Por favor, ayúdenme a rehacer el Convertidor de Periodo Opt.

Esto es lo esencial.

Por ejemplo, formamos barras de 8 horas (tiempo terminal) a partir de barras de 1 hora. Obtenemos una serie: 0, 8, 16, 0 horas, etc.

Me gustaría poder establecer un desplazamiento en el Convertidor. Este cambio se puede hacer en el número de barras de la TF en base a la cual se forma la requerida. Si se forma sobre la base de 1 hora, entonces el turno se expresará en horas... Si se forma sobre la base de 15 minutos, entonces el turno será de 15, 30, 45 minutos....

Además, el tiempo en la terminal también difiere de "mi" tiempo en 2 horas. => inconveniente para ir a la terminal a las 2am MSC.

Así, al formar el marco temporal de 8 horas con un desplazamiento de +3 (por ejemplo) obtendremos una nueva serie: 3, 11, 19, 3, etc. O (-2) el desplazamiento dará: 22, 6, 14, 22, etc. Aunque puede ser posible limitarlo al plus

compensado.


El objetivo del desplazamiento es evitar que la barra se forme completamente durante el periodo de sueño del operador.


Así es como me gustaría perfeccionar Period Converter Opt.