Ayuda a la codificación - página 409

 

Hola. ¿Es posible que alguien pueda codificar este indicador para poder adjuntarlo en una subventana....? Muchas gracias.

Archivos adjuntos:
5days.mq4  4 kb
 

Hola,

Tengo unos cuantos botones en mi gráfico y he creado un rectángulo detrás de estos botones.

Ahora cada vez que quiero hacer clic en un botón, sólo llego al rectángulo.

¿Cómo puedo hacerlo?

OBJPROP_SELECTABLE = false

o OBJPROP_BACK = true,

no ayuda.

 

Mladen,¿por qué todos los indicadores declaran :

extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;

porque la vela da la señal de apertura, el comienzo. Estoy en lo cierto si el mal ?

 
popej30:
Mladen,¿por qué todos los indicadores declaran :
extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;
porque la vela da la señal de apertura, el comienzo. Estoy en lo cierto si el mal?
Usted tiene una opción de 7 precios en metatrader :

abrir

cerrar

alto

bajo

mediana - (alto+bajo)/2

típico - (alto+bajo+cerrado)/3

ponderado - (alto+bajo+cierre+cerrado)/4

El cierre es el cierre habitual del precio (es decir, el precio que normalmente se ve en los gráficos, ya que la oferta a veces es diferente del cierre), el uso del precio de apertura en el indicador establece el valor utilizando el precio de apertura de la barra y luego ignora cualquier cambio actual (barra abierta).

PS: la opción está ahí para permitirle usar cualquier precio que desee. El valor por defecto que utiliza el precio de cierre para el cálculo es ampliamente aceptado como valor por defecto en casi todos los indicadores (no sólo en Metatrader). Si no te gusta el precio de cierre, entonces usa el de apertura, pero no hay ninguna regla que diga que usar el precio de apertura para la barra actual es mejor (todo lo contrario - por las razones explicadas arriba)

 
popej30:
Mladen,¿por qué todos los indicadores declaran :
extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;
porque la vela da la señal de apertura, el comienzo. Estoy en lo cierto si el mal ?

La mayoría de los indicadores habituales utilizan el precio de cierre, excepto el CCI que utiliza el precio típico. Creo que es porque muestra el precio actual de mejor manera que el de apertura. Si pones un indicador en precio de apertura, no recalculará la vela actual como lo hace con el de cierre, pero tampoco mostrará dónde está el precio actual. También si usas un indicador en el precio de cierre y entras en la siguiente vela cuando da una señal, es bastante igual que si usas el precio de apertura y entras en la vela actual...

Editar : Acabo de ver Mladen respondió, pensé que era fin de semana y nadie estaba aquí, así que quería ayudar a . Dejo mi respuesta de todos modos. Saludos.

 

Yo creo que si el indicador sigue por el precio este indicador siempre va a repintar.

 
popej30:
Yo creo que si el indicador sigue al precio, siempre se repintará.

Está confundiendo el repintado con el cálculo de los cambios de precio de la barra abierta actual

Una vez más: repintar/calcular es cuando se cambian las barras cerradas (y repintar es un error de codificación). Nada que ver con el cambio de la barra abierta para reflejar el estado actual del precio

 

Por lo que veo no hay posibilidad de dibujar un rectángulo detrás de un botón y definir, que al hacer clic en el botón es el Evento y no el rectángulo...

Pero tengo otra pregunta:

¿Cómo puedo dibujar una línea horizontal con una longitud definida? Lo he intentado con OBJ_TREND, pero un lado de la línea es infinito o Cero. Así que no puedo dibujar una línea horizontal desde Bid-10 hasta Bid+10.

¿Sabéis alguna solución?

 

Soy un novato en codificación. ¿Cómo seleccionar sólo el símbolo de la ventana actual mediante la función orderselect?

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); ¿cómo modificar esta sentencia?

muchas gracias.

 
leowang:
soy un novato en codificación. ¿cómo seleccionar sólo el símbolo de la ventana actual mediante la función orderselect?

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); ¿cómo modificar esta sentencia?

Muchas gracias.

No se puede modificar el OrderSelect. Pero puede filtrar las órdenes procesadas. Añade un "if" justo después del OrderSelect() y todo el procesamiento debería ser después de la siguiente línea :

if (OrderSymbol()!=Symbol()) continue;

Razón de la queja: