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
Sugiero lo siguiente: adjuntar el indicador (la variante que funcionaba antes, sin cambios) aquí o en mi mensaje personal, lo corregiré.
¡Hola, Pavlik!
Esa es la versión.
original.
intente arrastrar el código
pansa
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2.mq4
//| Ramdass - Sólo conversión
//+------------------------------------------------------------------+
#property copyright "Autor - OlegVS, GOODMAN"
#propiedad ventana_del_gráfica_del_indicador
#property indicator_buffers 2
#property indicator_color1 Chartreuse
#property indicator_color2 Amarillo
#property indicator_width1 2
#property indicator_width2 2
//---- parámetros de entrada
extern int K=30;
extern double Kstop=0,5;
externo inttern Kperiod=150;
extern inttern PerADX=14;
extern inttern CountBars=350;
extern intON=1; //zakton's
//---- buffers
doble val1[];
doble val2[];
//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
nombre_corto_de_cadena;
//----línea indicadora
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,159);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,159);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2|
//+------------------------------------------------------------------+
int inicio()
{
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+PerADX);
SetIndexDrawBegin(1,Bars-CountBars+PerADX);
int,shift,counted_bars=IndicatorCounted();
int i1,i2;
double Range,AvgRange,smin,smax,SsMax,SsMin,SSP,price;
bool tendencia alcista,antigua;
//----
if(Bars<=PerADX+1) return(0);
//---- cero inicial
if(counted_bars<PerADX+1)
{
for(i=1;i<=PerADX;i++) val1[CountBars-i]=0.0;
for(i=1;i<=PerADX;i++) val2[CountBars-i]=0.0;
}
//----
for (shift = CountBars-PerADX; shift>=0; shift--)
{
SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1));
Rango=0;
AvgRange=0;
for (i1=cambio; i1<=cambio+SSP; i1++)
{AvgRange=AvgRange+MathAbs (Alto[i1]-Bajo[i1]);
}
Alcance=AvgRange/(SSP+1);
SsMax=Alto[turno]; SsMin=Bajo[turno];
for (i2=shift;i2<=shift+SSP-1;i2++)
{
precio=Alto[i2];
if(SsMax<precio) SsMax=precio;
precio=Bajo[i2];
if(SsMin>=precio) SsMin=precio ;
}
smin = SsMin+(SsMax-SsMin)*K/100;
smax = SsMax-(SsMax-SsMin)*K/100;
val1[shift]=0;
val2[shift]=0;
if (Close[shift]<smin)
{
tendencia alcista = falso;
}
si (Close[shift]>smax)
{
Tendencia alcista = verdadero;
}
if (uptrend!=old && uptrend==true) {val1[shift]=Low[shift]-Range*Kstop;}
if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*Kstop;}
old=tendencia;
// código de zakton
if ((shift == 0) && (SoundON == 1)) {
if (val1[0] > 0) PlaySound("ReadyToExit.wav");
}
if ((shift == 0) && (SoundON == 1)) {
if (val2[0] > 0) PlaySound("ReadyToExit.wav");
}
}
return(0);
}
//+--------------------------------------------------------¡Hola, Pavlik!
Esa es la versión.
original.
intente arrastrar el código
pansa
Sr. ¡Pansa! ¿Por qué no usa el botón SRC para poner su código? ¿Así mejor o Ud. tiene alguna duda?
¡Buena suerte!
¡Hola, Pavlik!
Esa es la versión.
original.
intente arrastrar el código
pansa
El indicador funciona, pero el desarrollador ha cometido un error lógico en él
¿DE ACUERDO?
¿DE ACUERDO?
¡Hola Pavlik!
Instalé su código...
Funciona perfectamente.
Eres un gran talento -
¡Has atravesado el muro!
Gran trabajo -
ahora señales fiables y
*¡Nuevos horizontes!*
¡qué buen día el de hoy!
Me gustaría dar las gracias especialmente a Integer.
¡Él escribió el guión de la llamada del jugador!
Sin embargo, hay talentos y gente buena.
Te felicito.
¡Hoy es 9/11/14!
Panza
La mayoría de mis advertencias de basura se generan debido a un paso perfectamente legal, correcto y estándar de una variable por referencia a una función, cuando el nombre de la plantilla de la función coincide con la propia variable como debería ser en esta construcción en su uso estándar y típico, cuando la propia variable se pasa a la función por su propio nombre.
Pon un ejemplo, por favor.
Desgraciadamente, el MC no pudo dar una explicación competente y lógica de esto, ya que a veces alguien supuestamente puede tener un malentendido en otras construcciones cuando hay nombres similares.
Si entendí bien el caso, la respuesta era lógica y correcta, y fue aprendida durante más de un par de décadas de programación continua.
Perdón por el comentario borrado accidentalmente - hice clic en el lugar equivocado y no hay función para restaurarlo.
Dame un ejemplo, por favor.
Si he entendido bien el caso, la respuesta era lógica y correcta, y se ha sufrido durante más de un par de décadas de programación continua.
El editor generó la advertencia "la declaración de 'a' oculta la declaración global en la línea 4" y "la declaración de 'b' oculta la declaración global en la línea 4" para esta construcción estándar, legal y popular por los estándares del lenguaje C que además es incorrecta y analfabeta por su propia esencia porque no hay ni declaración de una nueva variable dentro de una función ni ninguna pista sobre un posible solapamiento de variables.
Como resultado, hay cientos de advertencias inapropiadas incluso en un código de programa no tan grande.
El indicador funciona, pero el desarrollador cometió un error lógico en él
¡Hola Vinin!
Ha comprobado el indicador: AltrTrend_Signal_v2_2.mq4
y encontró un error lógico
en fórmula : SSP=MathCeil (Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1))
usted subrayó 1 al final
¿qué crees que debería ser?
pansa