[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 84

 
Roman.:


Lo siento, no me di cuenta... :-)))

Lo he comprobado varias veces: no hay errores, todo se ajusta estrictamente a las fórmulas.

Aparentemente, es necesario dividir el producto en partes y luego compararlas... Lea más - aquí.

He estado allí. Interesante. Tengo una idea. Escribiré en el hilo sobre el tema.

 
MaxZ:

¿Copiaste todo el código o sólo lo que había en la función start()? Es importante.

Te equivocas. :)) Por ejemplo, el zig-zag no tiene todos los elementos del buffer llenos. Además, no es necesario llenar todos los elementos del buffer en los iconos.


La copia parece estar completa...

¡Extraño! Si escribiera un código como este:

buffer[1]=open[1];

buffer[3]=open[3];

no pasa nada en el gráfico

 
wolf05632:


Lo copié completamente...

¡Extraño! Si escribiera un código como este:

buffer[1]=open[1];

buffer[3]=open[3];

no pasa nada en el gráfico


En ese caso hay que mirar todo el código.
 
wolf05632:


La copia parece estar completa...

¡Extraño! Si escribiera un código como este:

buffer[1]=open[1];

buffer[3]=open[3];

no pasa nada en el gráfico

En este caso debe cambiar

SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии

a

SetIndexStyle (0, DRAW_SECTION);

De lo contrario, se dibujarán líneas a medio camino, o las líneas saltarán de cero o arriba en el gráfico y volverán a volar a cero o arriba de nuevo (¡dependiendo del valor que le des a los elementos saltados en el buffer!) :D

¿Así que mi código te funcionó después de todo?

 

Gracias. Lo intentaré de nuevo... ¡Sí! Funciona, ¡gracias! No tengo claro el significado de esta línea:

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);
 
wolf05632:

Gracias. Lo intentaré de nuevo... ¡Sí! Funciona, ¡gracias! Sólo que no entiendo un poco el significado de esta línea:

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

Déjeme explicarle.

Aplicamos el indicador a un gráfico. Primero ejecuta la función init(), se ejecuta.

Luego se ejecuta la función start(). Dado que todavía no se ha calculado ninguna de las barras, la función devolverá cero a la variable Counted_bars.

IndicatorCounted(); // Количество просчитанных баров

devolverá cero.

Significa que la condición

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

no se cumplirá, y el indicador calculará todas las barras del símbolo al que se ha aplicado.

Después del cálculo, la ejecución de la función start() terminará y el indicador esperará a que llegue un nuevo tick.

Cuando llegue un nuevo tick, se ejecutará de nuevo la función start(). En la variable Counted_bars, la función

IndicatorCounted(); // Количество просчитанных баров

devolverá el número de barras contadas.

Esto significa que la condición

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

ya puede cumplirse, es decir, esta condición se cumplirá cuando no necesitemos una barra y queramos omitirla en el conteo de la función start().

 

Buenas noches. Tengo dos preguntas:

1. Me gustaría preguntar si hay alguien en este foro que esté desarrollando una estrategia basada en el indicador Ishimoku y que utilice un marco temporal inferior a una hora, por ejemplo 5 o 15 minutos.

2. El libro Terekhov A. Ishimoku Indicator.djvu contiene el capítulo "Ishimoku Indicator and Japanese Candlesticks" donde está escrito que el indicador debe confirmar las configuraciones de las velas. Entonces, ¿estas configuraciones de velas deben estar presentes mientras el indicador da una señal o puede haber algunas barras entre estos dos eventos? Es decir, el cruce de tenkan y kinjun y en el mismo momento debe haber un "martillo" o no es obligatorio?

 

Hola a todos, soy un principiante y tengo una pregunta - si abro un pedido según este esquema

extern bool Comprar = true;

extern double PrecioCompra = 0;

int start()
{
if (Buy)
{OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
PriceBuy = ??????????????????;}

return;
}
¿Qué debo especificar bajo los signos de interrogación para asignar la variable priceBuy al valor del precio de compra del pedido? El propósito es asignar este valor una vez y no cambiará a medida que el programa avanza.

Y una más - ¿Cómo cambiar el stoploss de una orden ya abierta programáticamente?



 
OTPOK:

Hola a todos, soy un principiante y tengo una pregunta - si abro un pedido según este esquema

extern bool Comprar = true;

extern double PrecioCompra = 0;

int inicio()
{
si (Comprar)
{OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
PrecioCompra = ??????????????????;}

volver;
}
¿Qué debo especificar bajo los signos de interrogación para asignar el valor del precio de compra del pedido a la variable PriceBuy? El propósito es asignar este valor una vez y que no cambie a medida que el programa avanza.

Una pregunta más: ¿cómo cambiar programáticamente el stoploss en una orden abierta?




extern bool Buy = true;
extern double PriceBuy = 0; 
int start() 
{
   if(Buy) 
   {
     int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        PriceBuy=OrderOpenPrice();
   }
   return(0); 
}
 
OTPOK:


¿Qué debemos especificar debajo de los signos de interrogación para asignar la variable priceBuy al valor del precio de compra de la orden? El propósito es asignar este valor una vez y que no cambie a medida que el programa avanza.

Y una cosa más - ¿Cómo puedo cambiar el stoploss de una orden ya abierta de forma programada?




Buenas tardes. Entiendo que nunca has asignado valores a las variables. Es muy fácil de hacer.

PriceBuy=Ask

Y tienes que cambiar el stoploss usando la función OrderModifity().

Utilice la ayuda del MetaEditor.

Adiós.