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
Hola, quiero preguntar, si es posible reescribir este indicador, para que sólo muestre las flechas, y que se muestren en los candeleros? ¿Alguien podría ayudarme con esto, o quizás codificarlo para mí, por favor?
con respecto a
Lento
fxmtn-test.mq4Lento
Pruébalo así
¡¡Muchas gracias mladen funciona de maravilla !!
Estoy tratando de conseguir "extern int arrowDistance = XXX;" de alguna manera activado también.
Ahora aparece en el menú de selección, pero no tiene la Distancia cambiante. ¿Dónde poner el *arrowDistance ?
¿O estoy totalmente equivocado?
Lo puse en varios lugares, pero sólo me dio más puntos, no más distancia....
Noob tratando de entender el código, y la esperanza de un poco de luz
Ahora lo hice así :
si (SobreBuff > 24.0) ShortBuff = Alto+ (Punto*distancia de la flecha /2);
if (BelowBuff < -24.0) LongBuffe = Low- (Point*arrowDistance /2);
¿Es esta una forma correcta? Sólo porque funciona, puede ser incorrecto
Ahora lo hice así :
si (SobreBuff > 24.0) ShortBuff = Alto+ (Punto*distancia de la flecha /2);
if (BelowBuff < -24.0) LongBuffe = Low- (Point*arrowDistance /2);
¿Esta es una forma correcta? Sólo porque funciona, puede estar malEso debería funcionar, hay otra manera puede hacerlo así
LongBuffe = Low-arrowDistance*iATR(NULL,0,20,i) y ShortBuff = High+arrowDistance**iATR(NULL,0,20,i)
Lento,
Es mejor usar el modo iATR(). Cambie los marcos de tiempo y verá lo que quiero decir. Visualmente tendrás un problema en los marcos de tiempo más altos cuando la distancia de una flecha desde el máximo o el mínimo es fija (se verán desordenados en algún marco de tiempo). Usar iATR() en lugar de usar la distancia fija resuelve ese problema
Gracias mrtools,mladen funciona realmente mucho mejor.
Un último indicador que no puedo controlar....
Tratando de cambiarlo aquí : SignalGap = MathCeil(iATR(NULL,0,50,0)/Punto);
Pensé que este era el punto correcto, ya que al cambiar el 50 cambia la distancia. Pero nada de lo que probé funcionó con arrowDistance.
Gracias mrtools,mladen funciona realmente mucho mejor.
Un último indicador que no puedo controlar ....
Tratando de cambiarlo aquí : SignalGap = MathCeil(iATR(NULL,0,50,0)/Punto);
Pensé que este era el punto correcto, ya que al cambiar el 50 cambia la distancia. Pero nada de lo que probé funcionó con arrowDistance.Lento
Cuando estás demandando atr para la distancia de las flechas probablemente la mejor manera de modificar esa distancia es una especie de multiplicador. Por ejemplo :
arrowPrice = High+iATR(NULL,0,50,0)*arrowDistance;
Donde arrowDistance se define como doble y puede ser fraccional (por lo que podría utilizar valores como 0,5 así como valores como 10,5 también). Cambiando el periodo de atr no cambiará la distancia significativamente (sólo tomará un promedio más largo de rangos en cuenta)
intentar obtener el valor de otro indicador
hola com,
Estoy tratando de escribir mi primer indicador y quiero usar también un valor de un indicador existente que obtuve de este sitio.
¿Qué tengo que codificar en mi nuevo indicador para saber si la barra es azul/roja o 1/0?
incluso he intentado poner todo el código en mi indicador y no ha funcionado.
cualquier ayuda será apreciada
thx bob
#property link "fxfariz@gmail.com"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue //Red //Aqua
#property indicator_color2 Red
extern int SSP=7;
extern double Kmax=50.6; //24 21.6 21.6
extern int CountBars=300;
extern int myPeriod = 0 ;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtHBuffer1[];
double ExtHBuffer2[];
int xPeriod ;
//+------------------------------------------------------------------+
string TimeFrameToString(int tf)
{
string tfs;
switch(tf) {
case PERIOD_M1: tfs="M1" ; break;
case PERIOD_M5: tfs="M5" ; break;
case PERIOD_M15: tfs="M15" ; break;
case PERIOD_M30: tfs="M30" ; break;
case PERIOD_H1: tfs="H1" ; break;
case PERIOD_H4: tfs="H4" ; break;
case PERIOD_D1: tfs="D1" ; break;
case PERIOD_W1: tfs="W1" ; break;
case PERIOD_MN1: tfs="MN1";
}
return(tfs);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(4);
SetIndexStyle(0,DRAW_HISTOGRAM,0,4); //Red
SetIndexBuffer(0,ExtHBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,0,4); //Lime
SetIndexBuffer(1,ExtHBuffer2);
SetIndexBuffer(2,ExtMapBuffer1);
SetIndexBuffer(3,ExtMapBuffer2);
if(myPeriod==0){xPeriod=Period();} {xPeriod=myPeriod;}
string tPeriod = TimeFrameToString(xPeriod) ;
IndicatorShortName(tPeriod + " Trade What You see ("+SSP+")");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+SSP);
SetIndexDrawBegin(1,Bars-CountBars+SSP);
int i, counted_bars=IndicatorCounted();
double SsMax, SsMin, smin, smax;
if(Bars<=SSP+1) return(0);
if(counted_bars<SSP+1)
{
for(i=1;i<=SSP;i++) ExtMapBuffer1[CountBars-i]=0.0;
for(i=1;i<=SSP;i++) ExtMapBuffer2[CountBars-i]=0.0;
}
for(i=CountBars-SSP;i>=0;i--) {
SsMax = High;
SsMin = Low[Lowest(NULL,xPeriod,MODE_LOW,SSP,i-SSP+1)];
smax = SsMax-(SsMax-SsMin)*Kmax/100;
ExtMapBuffer1=smax;
ExtMapBuffer2=smax;
}
for(int b=CountBars-SSP;b>=0;b--)
{
if(ExtMapBuffer1>ExtMapBuffer2)
{
ExtHBuffer1=1;
ExtHBuffer2=0;
}
else
{
ExtHBuffer1=0;
ExtHBuffer2=1;
}
}
return(0);
}hola com,
Estoy tratando de escribir mi primer indicador propio y quiero usar también un valor de un indicador existente que obtuve de este sitio.
¿Qué tengo que codificar en mi nuevo indicador para saber si la barra es azul/roja o 1/0?
incluso he intentado poner todo el código en mi indicador y no ha funcionado.
cualquier ayuda será apreciada
thx bob
#property link "fxfariz@gmail.com"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue //Red //Aqua
#property indicator_color2 Red
extern int SSP=7;
extern double Kmax=50.6; //24 21.6 21.6
extern int CountBars=300;
extern int myPeriod = 0 ;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtHBuffer1[];
double ExtHBuffer2[];
int xPeriod ;
//+------------------------------------------------------------------+
string TimeFrameToString(int tf)
{
string tfs;
switch(tf) {
case PERIOD_M1: tfs="M1" ; break;
case PERIOD_M5: tfs="M5" ; break;
case PERIOD_M15: tfs="M15" ; break;
case PERIOD_M30: tfs="M30" ; break;
case PERIOD_H1: tfs="H1" ; break;
case PERIOD_H4: tfs="H4" ; break;
case PERIOD_D1: tfs="D1" ; break;
case PERIOD_W1: tfs="W1" ; break;
case PERIOD_MN1: tfs="MN1";
}
return(tfs);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(4);
SetIndexStyle(0,DRAW_HISTOGRAM,0,4); //Red
SetIndexBuffer(0,ExtHBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,0,4); //Lime
SetIndexBuffer(1,ExtHBuffer2);
SetIndexBuffer(2,ExtMapBuffer1);
SetIndexBuffer(3,ExtMapBuffer2);
if(myPeriod==0){xPeriod=Period();} {xPeriod=myPeriod;}
string tPeriod = TimeFrameToString(xPeriod) ;
IndicatorShortName(tPeriod + " Trade What You see ("+SSP+")");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+SSP);
SetIndexDrawBegin(1,Bars-CountBars+SSP);
int i, counted_bars=IndicatorCounted();
double SsMax, SsMin, smin, smax;
if(Bars<=SSP+1) return(0);
if(counted_bars<SSP+1)
{
for(i=1;i<=SSP;i++) ExtMapBuffer1[CountBars-i]=0.0;
for(i=1;i<=SSP;i++) ExtMapBuffer2[CountBars-i]=0.0;
}
for(i=CountBars-SSP;i>=0;i--) {
SsMax = High;
SsMin = Low[Lowest(NULL,xPeriod,MODE_LOW,SSP,i-SSP+1)];
smax = SsMax-(SsMax-SsMin)*Kmax/100;
ExtMapBuffer1=smax;
ExtMapBuffer2=smax;
}
for(int b=CountBars-SSP;b>=0;b--)
{
if(ExtMapBuffer1>ExtMapBuffer2)
{
ExtHBuffer1=1;
ExtHBuffer2=0;
}
else
{
ExtHBuffer1=0;
ExtHBuffer2=1;
}
}
return(0);
}BobMorane1000
Puedes hacer algo como esto:
bool redValue = (iCustom(NULL,0,"indicatorNameHere",SSP,Kmax,1,0)!=0);
Pero ten cuidado. Ese indicador es una variación del indicador de súper señal, y el indicador de súper señal recalcula (repinta)
muchas gracias y por tu aviso^^, ahora lo probaré...