¿cómo añadir el código del indicador en el código de expertadvisor?

[Eliminado]  

como he mencionado anteriormente, deseo hacer ea con codificación estocástica.

el problema es como agregar el código del indicador en el ea?

 
albert_lim83:

el problema es como añadir el código del indicador en el ea ?

Se puede, con ciertas limitaciones, pero usar iCustom es mucho más fácil.

Pero si usted realmente quiere: Transferencia de un código de indicador a un código de asesor experto. Estructura de los indicadores - Artículos MQL4

 

Para el estocástico no es necesario iCustom

double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)
Calcula el oscilador estocástico y devuelve su valor.
Parámetros:
símbolo - Símbolo cuyos datos deben utilizarse para calcular el indicador. NULL significa el símbolo actual.
timeframe - Marco de tiempo. Puede ser cualquiera de los valores de la enumeración Timeframe. 0 significa el marco de tiempo del gráfico actual.
%Kperiod - Período de la línea %K.
%Dperiod - %D período de la línea.
ralentizando - Valor de ralentización.
método - Método MA. Puede ser cualquiera de los valores dela enumeración del método Moving Average.
campo_precio - Parámetro del campo del precio. Puede ser uno de estos valores: 0 - Bajo/Alto o 1 - Cierre/Cerrado.
modo - Índice de la línea del indicador. Puede ser cualquiera de los valores de la enumeración de identificadores de línea de los indicadores.
desplazamiento - Índice del valor tomado del buffer del indicador (desplazamiento relativo a la barra actual la cantidad dada de períodos atrás).
Muestra:
 if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0)) return(0);
Mucha ayuda de codificación está aquí para encontrar el índice alfabético de las funciones MQL4 https://www.mql5.com/en/forum/122679

[Eliminado]  

¿como añadir el indicador rvi en el ea?

también utilizando el mismo código que la forma de añadir estocástico?

 
 
albert_lim83:

¿como añadir el indicador rvi en el ea?

también utilizando el mismo código que la forma de añadir estocástico ?


iCustom() o iRVI()

 
albert_lim83:

¿como añadir el indicador rvi en el ea?

¿también usando el mismo código que la forma de añadir el estocástico?


  1. Explicación detallada de iCustom - Foro MQL4
[Eliminado]  

Intento añadir el indicador RVI en el EA de escape, pero falla...

muestra

expresión en el ámbito global no permitida

definición de lafunción inesperada

paréntesis desequilibrados

¿como solucionar este error?

[Eliminado]  

aquí el código que hice esta mañana.

¿alguien puede ayudarme a arreglarlo?


//+------------------------------------------------------------------+
int init()
{
//---- mapeo de buffers de indicadores
SetIndexBuffer(0,Buffer);
SetIndexBuffer(1,SignalBuffer);
//---- línea del indicador
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
//---- ajustes de dibujo
SetIndexDrawBegin(0,RVIPeriod+3);
SetIndexDrawBegin(1,RVIPeriod+7);
//---- nombre para la etiqueta de la DataWindow y la subventana del indicador
IndicatorShortName("RVI("+RVIPeriod+")";
SetIndexLabel(0, "RVI");
SetIndexLabel(1, "RVIS");
//---- inicialización realizada
return(0);
}
{
double bid =MarketInfo(Symbol(),MODE_BID); // Solicitud del valor de Bid
double ask =MarketInfo(Symbol(),MODE_ASK); // Solicitud del valor de Ask
double point =MarketInfo(Symbol(),MODE_POINT);//Solicitar el valor del Punto
return; // Salir de start()
if(AccountFreeMargin()<100)
Print("No tenemos dinero. Margen libre = ", AccountFreeMargin());
return(0);
}

int inicio()
{
{
int i,j,nLimit,nCountedBars;
double dValueUp,dValueDown,dNum,dDeNum;
//----
if(Bars<=RVIPeriod+8) return(0);
//----
nCountedBars=IndicatorCounted();
//---- comprobar posibles errores
if(nCountedBars<0) return(-1);
//---- la última barra contada se vuelve a contar
nLimit=Bars-RVIPeriod-4;
if(nCountedBars>RVIPeriod+4)
nLimit=Barras-nBarrasContabilizadas;
//---- RVI contados en el 1er búfer
for(i=0; i<=nLimit; i++)
{
dNum=0.0
dDeNum=0.0;
for(j=i; j<i+RVIPeriod; j++)

{
dValueUp=((Close[j]-Open[j])+2*(Close[j+1]-Open[j+1])+2*(Close[j+2]-Open[j+2])+(Close[j+3]-Open[j+3]))/6;
dValueDown=((High[j]-Low[j])+2*(High[j+1]-Low[j+1])+2*(High[j+2]-Low[j+2])+(High[j+3]-Low[j+3]))/6;
dNum+=dValueUp;
dDeNum+=dValorAbajo;
}
if(dDeNum!=0.0)
Buffer[i]=dNum/dDeNum;
si no
Buffer[i]=dNum;
}
//---- línea de señal contada en el 2do búfer
nLimit=Bars-RVIPeriod-7;
if(nCountedBars>RVIPeriod+8)
nLimit=Bars-nCountedBars+1;
for(i=0; i<=nLimit; i++)
SignalBuffer[i]=(Buffer[i]+2*Buffer[i+1]+2*Buffer[i+2]+Buffer[i+3])/6;
//----
return(0);
}
{
OrderSend(Symbol,LotSize,Ask,StopLoss,TakeProfit,0,0);
si (Close<i)
OpenBuy();
return(0);

OrderSend(Symbol,LotSize,Bid,StopLoss,TakeProfit,0,0);
si (Close>i)
OpenSell();
return(0);
}


double GetSizeLot() { return(LotSize); }
double GetTakeProfitBuy() { return(Ask+TakeProfit*Point); }
double GetTakeProfitSell() { return(Oferta+TakeProfit*Punto); }
double GetStopLossBuy() { return(Oferta-Pérdida*Punto); }
double GetStopLossSell() { return(Ask+StopLoss*Point); }
string GetCommentForOrder() { return();}

return(0); }

 

Antes de postear, por favor, lee algunos de los otros hilos... entonces habrás visto numerosas peticiones como ésta:

Por favor, use esto para publicar el código . . hace que sea más fácil de leer.

 
albert_lim83:

aquí el código que hice esta mañana.

¿alguien puede ayudarme a arreglarlo?

No se puede utilizar el código del indicador en un EA . . . leer el hilo que he publicado un enlace a. Tienes que tener igual número de { y } también igual número de ( y ). . . no he dicho ya esto una vez ? https://www.mql5.com/en/forum/139447 supongo que no te molestas en aprender de otros posts ?