Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 1268
- Ranking:
- Publicado:
- 2016.10.18 16:08
- Actualizado:
- 2016.11.22 07:33
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
El indicador Color Day designa con un color los días alcistas o bajistas.
Si el precio de cierre del día es superior al precio de apertura, se colorea de azul (se indica en los ajustes).
input color UP = Blue; // color del día alcista
Si el precio de cierre del día es inferior al precio de apertura, se colorea de rojo (se indica en los ajustes).
input color DN = Red; // color del día bajista
Copiamos los precios de apertura, cierre y la hora de apertura para el número indicado de días Days:
CopyTime(NULL,PERIOD_D1,0,Days+1,tm); CopyOpen(NULL,PERIOD_D1,0,Days+1,op); CopyClose(NULL,PERIOD_D1,0,Days+1,cl);
en las matrices correspondientes:
datetime tm[]; double op[]; double cl[];
Antes de instalar el indicador en el gráfico, indicaremos las dimensiones de las matrices:
int OnInit() { //--- indicator buffers mapping Comment(""); ArrayResize(tm,Days); ArrayResize(op,Days); ArrayResize(cl,Days); //--- return(INIT_SUCCEEDED); }
Asignamos a las variables los valores de las celdas de la matriz y definimos la hora de cierre del día time1:
datetime time0=tm[i]; datetime time1=time0+3600*24; double dopen=op[i]; double dclose=cl[i];
Con la ayuda de la función PutRect():
void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr) { ObjectDelete(0,name); //--- creamos un rectángulo según las coordenadas indicadas ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2); //--- establecemos el color del rectángulo ObjectSetInteger(0,name,OBJPROP_COLOR,clr); //--- activamos (true) o desactivamos (false) el modo de rellenado del rectángulo ObjectSetInteger(0,name,OBJPROP_FILL,true); }
Coloreamos el día dependiendo de la dirección en la que ha ido del precio:
if(dclose<dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,DN); if(dclose>dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,UP);
En el ciclo pasamos por todos los días indicados en los ajustes Days:
for(int i=0;i<=Days;i++) { CopyTime(NULL,PERIOD_D1,0,Days+1,tm); CopyOpen(NULL,PERIOD_D1,0,Days+1,op); CopyClose(NULL,PERIOD_D1,0,Days+1,cl); datetime time0=tm[i]; datetime time1=time0+3600*24; double dopen=op[i]; double dclose=cl[i]; if(dclose<dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,DN); if(dclose>dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,UP);
Al eliminar un indicador del gráfico, con la ayuda de la función DeleteObjects():
void DeleteObjects() { for(int i=ObjectsTotal(0,0,OBJ_RECTANGLE)-1;i>=0;i--) { string name=ObjectName(0,i,0,OBJ_RECTANGLE); if(StringFind(name,"Rect",0)>=0) ObjectDelete(0,name); } }
Eliminamos del gráfico los objetos creados:
void OnDeinit(const int reason) { Comment(""); DeleteObjects(); }
Ajustes:
input int Days = 11; // días para el cálculo input color UP = Blue; // color del día alcista input color DN = Red; // color del día bajista
Figura 1. Indicador en el gráfico
Consejos:
- Indicador Color Day - asistente visual en el comercio.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/16383

Filtro digital rápido suavizado JSatl con indicación de color de la dirección del movimiento, también representa el último valor en forma de etiqueta de precio y tiene la posibilidad de redondear los niveles del indicador en la cantidad indicada de grados.

Sistema comercial construido con las señales del indicador JSatl_Digit_System.

Índices a corto plazo y acumulativo de oscilación del precio

El indicador muestra la fuerza "alcista" y "bajista" en una ventana con un sencillo método.