[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 155
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
Ya que has tomado la iniciativa, vamos a intentar idear un código que nos señale cada minuto con información sobre el precio de apertura de una vela de un minuto en un gráfico de cinco minutos (con posibilidad de funcionar en un tester). Propongo mi propia variante:
Esta opción es mejor.
Gracias.
Ayúdame a entender. Construyo el MACD en la barra anterior (i+1). Encuentro los valores máximos y mínimos visibles en la ventana del gráfico MACD. Pongo en Comentario los valores máximos, mínimos y actuales de las líneas principales y de señal. ¿Puede alguien ayudarme a resolverlo?
#property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_width1 2 //--- buffers double Macd1Buffer[]; double Signal1Buffer[]; //--- for one bar datetime last; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Macd1Buffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Signal1Buffer); IndicatorDigits(Digits+1); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Comment(""); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if(last>=Time[0]) return; double max_M1=-0.01,min_M1=0.01, max_S1=-0.01,min_S1=0.01, max1=-0.01,min1=0.01; int bars_counted=WindowBarsPerChart()-1, limit; limit=bars_counted; //---- macd counted in the 1-st buffer for( int i=0; i<limit; i++) { Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i+1)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i+1); max_M1=MathMax(Macd1Buffer[i],max_M1); min_M1=MathMin(Macd1Buffer[i],min_M1); } //---- macd counted in the 2-nd buffer for( i=0; i<limit; i++) { Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i); max_S1=MathMax(Signal1Buffer[i],max_S1); min_S1=MathMin(Signal1Buffer[i],min_S1); } max1=MathMax(max_M1,max_S1); min1=MathMin(min_M1,min_S1); Comment( "\n"," Баров = ",WindowBarsPerChart()-1, "\n"," max1 = ",max1, "\n"," min1 = ",min1, "\n"," Macd1Buffer = ",Macd1Buffer[i], "\n"," Signal1Buffer = ",Signal1Buffer[i]); last=Time[0]; //---- return(0); } //+------------------------------------------------------------------+Ayúdame a entender. Construyo el MACD en la barra anterior (i+1). Encuentro los valores máximos y mínimos visibles en la ventana del gráfico MACD. Pongo en Comentario los valores máximos, mínimos y actuales de las líneas principales y de señal. ¿Puede alguien ayudarme a resolverlo?
El tipo de datos double se imprime con 4 dígitos decimales después del punto. Para obtener números con mayor precisión, debe utilizar la función DoubleToStr().
Ejemplo:
Los datos de tipo double se emiten con 4 dígitos decimales después del punto. Para obtener números con mayor precisión, utilice la función DoubleToStr().
Los datos de tipo double se emiten con 4 dígitos decimales después del punto. Para obtener números con mayor precisión, utilice la función DoubleToStr().
ejemplo:
Gracias por el consejo.¿Por qué los valores de la línea MACD actual se muestran incorrectamente en el comentario?
Lee de nuevo, con atención: para Comment(), Alert() y Print()
Los datos de tipo double se imprimen con 4 dígitos decimales después del punto. Para obtener números con mayor precisión, utilice la función DoubleToStr().