Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Quiero utilizar "PRECIO DE CIERRE" en lugar de precio medio en la siguiente codificación .... Por favor, ayúdenme:
Muchas gracias
int inicio()
{
double PrecioCierre=Cierre[0];
int limit, i, flag, flagh, trend[5000];
double up[5000], dn[5000], medianPrice, atr;
int counted_bars = IndicatorCounted();
//---- comprobar posibles errores
if(counted_bars < 0) return(-1);
//---- la última barra contada se vuelve a contar
if(counted_bars > 0) counted_bars--;
limit=Barras-1-barras_contadas;
//Imprimir(límite);
//----
for (i = Barras; i >= 1; i--) {
TrendUp = EMPTY_VALUE;
TrendDown = EMPTY_VALUE;
atr = iATR(NULL, 0, Nbr_Periods, i);
//Print("atr: "+atr);
medianPrice = (High+Low)/2;
//Print("precio medio: "+precio medio);
up=PrecioMedio+(Multiplicador*atr);
//Imprime("subida: "+subida);
dn=Precio medio-(Multiplicador*atr);
//Print("dn: "+dn);
trend=1;
si (Cierre>subida) {
trend=1;
if (trend == -1) changeOfTrend = 1;
//Print("trend: "+trend);
}
else if (Close<dn) {
trend=-1;
si (trend == 1) changeOfTrend = 1;
//Imprimir("tendencia: "+tendencia);
}
else if (trend==1) {
trend=1;
changeOfTrend = 0;
}
else if (trend==-1) {
trend=-1;
changeOfTrend = 0;
}
si (trend0) {
flag=1;
//Print("flag: "+flag);
}
else {
flag=0;
//Print("flagh: "+flag);
}
if (trend>0 && trend<0) {
flagh=1;
//Print("flagh: "+flagh);
}
else {
flagh=0;
//Print("flagh: "+flagh);
}
if (trend>0 && dn<dn)
dn=dn;
si (trendup)
up=up;
si (flag==1)
up=Precio medio+(Multiplicador*atr);
si (flagh==1)
dn=precio medio-(multiplicador*atr);
//-- Dibuja el indicador
si (trend==1) {
TrendUp=dn;
si (changeOfTrend == 1) {
TrendUp = TrendDown;
changeOfTrend = 0;
}
}
else if (trend==-1) {
TrendDown=up;
si (changeOfTrend == 1) {
TrendDown = TrendUp;
changeOfTrend = 0;
}
}
if (trend==1 && trend==-1) {
UpBuffer = iLow(Symbol(),0,i)-(3*Point);
DnBuffer = EMPTY_VALUE;
}
if (trend==-1 && trend==1) {
UpBuffer = EMPTY_VALUE;
DnBuffer = iHigh(Symbol(),0,i)+(3*Punto);
}
}
WindowRedraw();
//----
return(0);
}
Quiero usar "CLOSE PRICE" en lugar de Median price en la siguiente codificación .... Por favor, ayúdeme:
Muchas gracias
int inicio()
{
double PrecioCierre=Cierre[0];
int limit, i, flag, flagh, trend[5000];
double up[5000], dn[5000], medianPrice, atr;
int counted_bars = IndicatorCounted();
//---- comprobar posibles errores
if(counted_bars < 0) return(-1);
//---- la última barra contada se vuelve a contar
if(counted_bars > 0) counted_bars--;
limit=Barras-1-barras_contadas;
//Imprimir(límite);
//----
for (i = Barras; i >= 1; i--) {
TrendUp = EMPTY_VALUE;
TrendDown = EMPTY_VALUE;
atr = iATR(NULL, 0, Nbr_Periods, i);
//Print("atr: "+atr);
medianPrice = (High+Low)/2;
//Print("precio medio: "+precio medio);
up=PrecioMedio+(Multiplicador*atr);
//Imprime("subida: "+subida);
dn=Precio medio-(Multiplicador*atr);
//Print("dn: "+dn);
trend=1;
si (Cierre>subida) {
trend=1;
if (trend == -1) changeOfTrend = 1;
//Print("trend: "+trend);
}
else if (Close<dn) {
trend=-1;
si (trend == 1) changeOfTrend = 1;
//Imprimir("tendencia: "+tendencia);
}
else if (trend==1) {
trend=1;
changeOfTrend = 0;
}
else if (trend==-1) {
trend=-1;
changeOfTrend = 0;
}
si (trend0) {
flag=1;
//Print("flag: "+flag);
}
else {
flag=0;
//Print("flagh: "+flag);
}
if (trend>0 && trend<0) {
flagh=1;
//Print("flagh: "+flagh);
}
else {
flagh=0;
//Print("flagh: "+flagh);
}
if (trend>0 && dn<dn)
dn=dn;
si (trendup)
up=up;
si (flag==1)
up=Precio medio+(Multiplicador*atr);
si (flagh==1)
dn=precio medio-(multiplicador*atr);
//-- Dibuja el indicador
si (trend==1) {
TrendUp=dn;
si (changeOfTrend == 1) {
TrendUp = TrendDown;
changeOfTrend = 0;
}
}
else if (trend==-1) {
TrendDown=up;
si (changeOfTrend == 1) {
TrendDown = TrendUp;
changeOfTrend = 0;
}
}
if (trend==1 && trend==-1) {
UpBuffer = iLow(Symbol(),0,i)-(3*Point);
DnBuffer = EMPTY_VALUE;
}
if (trend==-1 && trend==1) {
UpBuffer = EMPTY_VALUE;
DnBuffer = iHigh(Symbol(),0,i)+(3*Punto);
}
}
WindowRedraw();
//----
return(0);
}Puedes sustituir :
(Alto+Bajo)/2
por
Cerrar
kenwa
¿De qué funcionalidad del símbolo autocheck estás hablando? No existe tal cosa en ese código
Todo lo que tienes que hacer es introducir el símbolo en el campo de parámetro apropiado y funcionará (en cualquier símbolo, siempre que el nombre del símbolo sea correcto) Utiliza el indicador que el fareastol proporcionó ya que hace todo lo que estabas hablando de que lo necesitashola mladen
veo esto dentro:
if (ForSymbol1=="") ForSymbol1 = Symbol();
if (ForSymbol2=="") ForSymbol2 = Symbol();
if (ForSymbolSyn3a=="") ForSymbolSyn3a = Symbol();
if (ForSymbolSyn3b=="") ForSymbolSyn3b = Symbol();
if (ForSymbolSyn3c=="") ForSymbolSyn3c = Symbol();
algunas partes:
void checkSymbol(int limit, string ForSymbol, double& buffer[])
{
limit = MathMax(limit,MathMin(Bars-1,iCustom(ForSymbol,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period()));
for (int i=limit; i>=0; i--)
{
int y = iBarShift(ForSymbol,timeFrame,Time);
buffer = iCustom(ForSymbol,timeFrame,indicatorFileName, "calculateValue",MA_Period,MA_Method,CCI_Period,applied_price,",0,y);
}
}
No puedo saber exactamente lo que está haciendo, ya que mi habilidad no puede saber su propósito exacto, pero de mi conjetura en bruto, parece que el código es auto detectar si la entrada externa de un símbolo, a continuación, mostrar en el gráfico, si no hay ninguna entrada, se mostrará el gráfico local de Null. entonces voy a pensar si intencionalmente dejar varios cadena de entrada externa en blanco fuera (llenando nada allí), será el indicador repetidamente (al menos superponer) mostrar el gráfico local de Null varias veces? también como se adapta el código a los símbolos internos preestablecidos? no se que tan exacto hacer, pero lo intento, es como la forma de hacer el adjunto (desensibilizar la función/reconocimiento de los símbolos de entrada externos)? o como se adapta modificar a los símbolos internos preestablecidos?
Por cierto, ¿por qué la versión que hice antes de la página 166 #1660, sigue repintando en vivo? Gracias por los consejos.
hola mladen
veo esto dentro
if (ForSymbol1=="") ForSymbol1 = Symbol();
if (ForSymbol2=="") ForSymbol2 = Symbol();
if (ForSymbolSyn3a=="") ForSymbolSyn3a = Symbol();
if (ForSymbolSyn3b=="") ForSymbolSyn3b = Symbol();
if (ForSymbolSyn3c=="") ForSymbolSyn3c = Symbol();
algunas partes:
void checkSymbol(int limit, string ForSymbol, double& buffer[])
{
limit = MathMax(limit,MathMin(Bars-1,iCustom(ForSymbol,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period()));
for (int i=limit; i>=0; i--)
{
int y = iBarShift(ForSymbol,timeFrame,Time);
buffer = iCustom(ForSymbol,timeFrame,indicatorFileName, "calculateValue",MA_Period,MA_Method,CCI_Period,applied_price,",0,y);
}
}
No puedo saber exactamente lo que está haciendo, ya que mi habilidad no puede saber su propósito exacto, pero de mi conjetura en bruto, parece que el código es auto detectar si la entrada externa de un símbolo, a continuación, mostrar en el gráfico, si no hay ninguna entrada, se mostrará el gráfico local de Null. entonces voy a pensar si intencionalmente dejar varios cadena de entrada externa en blanco fuera (llenando nada allí), será el indicador repetidamente (al menos superponer) mostrar el gráfico local de Null varias veces? ¿también cómo se adapta el código a los símbolos internos preestablecidos? no sé cómo hacerlo exactamente, pero lo intento, ¿es como la forma de adjuntarlo (desensibilizar la función/reconocimiento del símbolo de entrada externo)? o ¿cómo adaptarlo para modificarlo a los símbolos internos preestablecidos?
Por cierto, ¿por qué la versión que hice antes de la página 166 #1660, sigue repintando en vivo? ¿qué razones básicas causan tal repintado? Gracias por los consejos.Puedes consultar el indicador de este post : https://www.mql5.com/en/forum/178416/page19 para ver como se pueden hacer algunos controles adicionales
para #1664, leer y descargar antes, no puedo adaptar los códigos, demasiado avanzado y complejo para mí.
para el #1664, leer y descargar antes, no puedo adaptar los códigos, demasiado avanzados y complejos para mí.
No todo puede escribirse en dos líneas. En algunos casos es imposible
Hola Mladen
En relación con mi petición de calcular el POC y el VA para una banda objetivo basada en un perfil de mercado determinado, lo he intentado con todas mis fuerzas. Lamentablemente, sólo he conseguido el valor POC. Obtener los valores de VA High/Low están más allá de mi capacidad actual.
Además, al principio de la semana, el indicador original Level Sensor parece tener un error en su código, causando una visualización terrible como se puede ver en la imagen adjunta. No puedo entender la razón, sólo supongo que se relaciona con los conflictos entre la pantalla por defecto de MT4 y los datos de marco de tiempo inferior (<W1).
Por favor, echar un vistazo y me dan consejos para seguir adelante.
Gracias profundamente,
fareastolfareastol
Eso de la pantalla está ocurriendo porque hay un espacio de tiempo en el gráfico entre los datos del último viernes y los del primer domingo o lunes y cuando se añade el tiempo de xshift a los tiempos de la línea.
Una posible solución es la de esta versión : invertir la pantalla y en vez de mostrarla de derecha a izquierda mostrarla de izquierda a derecha (como en la imagen). Hasta ahora no he encontrado una solución para la visualización de derecha a izquierda
A veces basta con pensar un poco (en cuanto terminé el post anterior la idea estaba ahí )
Aquí está la solución "de derecha a izquierda" (por lo que he probado funciona bien ahora)
Hola,
He calculado la línea de desviación estándar "a mano".
Ahora quiero dibujar un canal como el canal de desviación original del metatrader.
Pero no sé cómo calcular el factor = 0,618 a mi línea de desviación normal para que funcione como el canal original ...OBJPROP_DEVIATION,0,618)
Hola Mladen,
Me recuerdas muchas cosas significativas y me motivas mucho.
Gracias por todo
fareastol