- [¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2.
- Backtesting/Optimización
- [ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3.
Mi pregunta es - mira, cuando configuro el estocástico en el EA y establezco sus parámetros, por supuesto se dispara cuando se cruzan las líneas, pero el problema es que no sé cómo hacer que compre sólo en la zona de sobreventa ( 20 ) y venda en la zona de sobrecompra ( 80 ) . Vladimir, por favor, ayúdame - dónde y cómo tengo que establecer los datos para esta función ... ¡¡¡Le estaré muy agradecido!!!
Ejemplo de código: RSI intrazona trading Simple.
- www.mql5.com
Por favor, dígame si estos parámetros se pueden establecer en el EA "" generar ""
¡gracias de antemano ...!
Dime si estos parámetros se pueden establecer en el EA "" generar "" o debo escribirlos como códigos en el patrón EA ""
Gracias de antemano...
Este es un Asesor Experto ya hecho. No hay "generación" ni "plantilla".
El bloque que se encarga de generar una señal de trading es la funciónSearchTradingSignals.
Aquí obtenemos los datos del indicador de las tres últimas barras y comparamos en qué zona se encuentra el indicador.
//+------------------------------------------------------------------+ //| Search trading signals | //+------------------------------------------------------------------+ bool SearchTradingSignals(void) { if(m_prev_bars==m_last_deal_in) // on one bar - only one deal return(true); double rsi[]; ArraySetAsSeries(rsi,true); int start_pos=0,count=3; if(!iGetArray(handle_iRSI,0,start_pos,count,rsi)) return(false); int size_need_position=ArraySize(SPosition); //--- BUY Signal if(rsi[m_bar_current]>Inp_RSI_Level_Up) { if(!InpReverse) { ArrayResize(SPosition,size_need_position+1); SPosition[size_need_position].pos_type=POSITION_TYPE_BUY; if(InpPrintLog) Print(__FILE__," ",__FUNCTION__,", OK: ","Signal BUY"); return(true); } else { ArrayResize(SPosition,size_need_position+1); SPosition[size_need_position].pos_type=POSITION_TYPE_SELL; if(InpPrintLog) Print(__FILE__," ",__FUNCTION__,", OK: ","Signal SELL"); return(true); } } //--- SELL Signal if(rsi[m_bar_current]<Inp_RSI_Level_Down) { if(!InpReverse) { ArrayResize(SPosition,size_need_position+1); SPosition[size_need_position].pos_type=POSITION_TYPE_SELL; if(InpPrintLog) Print(__FILE__," ",__FUNCTION__,", OK: ","Signal SELL"); return(true); } else { ArrayResize(SPosition,size_need_position+1); SPosition[size_need_position].pos_type=POSITION_TYPE_BUY; if(InpPrintLog) Print(__FILE__," ",__FUNCTION__,", OK: ","Signal BUY"); return(true); } } //--- return(true); }
Tengo una pregunta concreta, mira, cuando pongo el estocástico en mi EA y configuro sus parámetros, por supuesto se dispara cuando se cruzan las líneas, pero el problema es que no sé cómo hacer que compre sólo en zona de sobreventa ( 20 ) y venda en zona de sobrecompra ( 80) ... Vladimir, por favor, ayúdame - dónde y cómo tengo que establecer los datos para esta función ... ¡¡¡Les agradecería mucho!!!
Aquí hay un Asesor Experto de la terminal - con el que puede experimentar.
puede cambiar el indicador aquí
//+------------------------------------------------------------------+ //| Initialization of the indicators | //+------------------------------------------------------------------+ bool CSampleExpert::InitIndicators(void) { //--- create MACD indicator if(m_handle_macd==INVALID_HANDLE) if((m_handle_macd=iStochastic(NULL,0,5,3,3,MODE_SMA,STO_LOWHIGH))==INVALID_HANDLE) { printf("Error creating MACD indicator"); return(false); } //--- succeed return(true); } //+------------------------------------------------------------------+
aquí se puede hacer con el estocástico
//--- check for long position (BUY) possibility if(m_macd_current<20) if(m_macd_current>m_signal_current && m_macd_previous<m_signal_previous) if(MathAbs(m_macd_current)>(m_macd_open_level)) \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //--- check for short position (SELL) possibility if(m_macd_current>80) if(m_macd_current<m_signal_current && m_macd_previous>m_signal_previous) if(m_macd_current>(m_macd_open_level))
y aquí puedes probarlo en el probador
Señores, gracias por contestar se lo agradezco mucho... pero lamentablemente nada funciona... ¿Por qué crees que es así? Te enviaré los códigos del mío también - me dices lo que hay que corregir para obtener el rango correcto ...
***
- 2021.04.21
- www.mql5.com
Aquí hay un Asesor Experto de la terminal - con el que puede experimentar.
puede cambiar el indicador aquí
aquí se puede hacer con el estocástico
y aquí puedes probarlo en el probador
Señores, gracias por contestar se lo agradezco mucho... pero lamentablemente nada funciona... ¿Por qué crees que es así? Te enviaré los códigos del mío también - dime lo que tienes que ajustar para conseguir el rango correcto
***
- 2021.04.21
- www.mql5.com
Señores, gracias por contestar se lo agradezco mucho... pero lamentablemente nada funciona... ¿Por qué crees que es así? Te enviaré los códigos del mío también - me dices lo que hay que corregir para obtener el rango correcto ...
***
Por favor, utilice el botón para insertar su código (pulse el botón y luego inserte su código en la ventana que aparece) o utilice el botón para adjuntar el código.
Por favor, inserte el código usando el botón (presionado el botón, se inserta el código en la ventana que aparece) o adjunte el código usando el botón.
Gracias por tus comentarios ... Lo hice como dijiste y obtuve 54 errores y 8 advertencias de tus códigos ... es una pena... ¿qué hacemos? ?
Te enviaré mis códigos ... tal vez usted puede ajustar el rango ...
***
- 2021.04.21
- www.mql5.com
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso