[¡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 280

 
drknn:

Ha repetido el error varias veces:

Pones una condición if, luego escribes algo entre sus paréntesis, y luego pones un punto y coma detrás del paréntesis de cierre. así:

Eso no es correcto. Esto es correcto:

Ya veo, lo probaré ahora - pero en realidad era una plantilla en la que tenía que sustituir las condiciones de compra y venta - y en consecuencia soy un principiante.
 
drknn:

Ha repetido el error varias veces:

Pones una condición if, luego escribes algo entre sus paréntesis, y luego pones un punto y coma después del paréntesis de cierre. así:

Eso no es correcto. Esto es correcto:

No sale nada bueno :(
 

En resumen, tuve paciencia para exactamente cien líneas. No está nada claro en qué parte de tu idea hay que cerrar la condición. Por ejemplo, abre if(total<1){ pero es difícil entender dónde cerrarlo. Bueno, aquí hay un archivo con un centenar de líneas de código arregladas. Mira cómo está formateado y no tengas pereza de poner corchetes...

El archivo se encuentra adjunto al post. Este centenar de líneas es suficiente para ver la diferencia entre utilizar un formato de código normal y uno anormal.

Archivos adjuntos:
newx2.mq4  6 kb
 
drknn:

En resumen, tuve paciencia para exactamente cien líneas. No está nada claro en qué parte de tu idea hay que cerrar la condición. Por ejemplo, if(total<1){ pero es difícil entender dónde cerrarlo. Bueno, aquí hay un archivo con un centenar de líneas de código arregladas. Mira cómo está formateado y no tengas pereza de poner corchetes...

El archivo se encuentra adjunto al post.

Da dos errores - generalmente no funciona. (Error en el final del programa)
 
Y habrá errores: no está claro dónde hay que poner las llaves. Lo haría si entendiera la intención.
 
LeksusMt4:
Da dos errores: no funciona en absoluto. (Error en los programas finales)
La esencia del robot de comercio es comprar y vender siguiendo el indicador Sar - tal vez no he establecido las condiciones correctamente?
 
No colocaste correctamente las llaves y pusiste punto y coma donde no corresponde. ¡¡Formatea el código!!
 
LeksusMt4:
La esencia del robot de trading es comprar y vender siguiendo el indicador Sar - ¿tal vez no he configurado las condiciones correctamente?


Aquí está el editor de código: http://depositfiles.com/files/2ippj8zao - descargar, descomprimir, ejecutar (no se requiere instalación). Abre en este editor el archivo que te he colgado antes y mira tu código, donde van las líneas discontinuas verticales.

La compra y la venta siguiendo cualquier indicador pueden ejecutarse de forma diferente. Su intención no está del todo clara.

P.D.

El editor ya ha sido perfeccionado para MQL4 y el resaltado de corchetes funciona en él.

 
drknn:


Aquí está el editor de código para usted: http://depositfiles.com/files/2ippj8zao - descargar, descomprimir, ejecutar (no se requiere la instalación). Abre en este editor el archivo que te he colgado antes y mira tu código, donde van las líneas discontinuas verticales.

La compra y la venta siguiendo cualquier indicador pueden ejecutarse de forma diferente. Su intención no está del todo clara.

P.D.

El editor ya está adaptado al lenguaje MQL4 y funciona con resaltado de corchetes.

¡¡¡¡Muchas gracias!!!!
 
#property  indicator_separate_window

#property  indicator_buffers 2
#property  indicator_color1  DarkGray
#property  indicator_width1  5
#property  indicator_color2  Red
#property  indicator_width2  2



extern int    Show_For_Last_N_Days   = 100;
extern string _                      = "";
extern int    MA1_Period             = 12;
extern int    MA2_Period             = 26;
extern int    MA3_Period             = 9;

double        MacdBuffer[];
double        SignalBuffer[];


int init() {
   IndicatorBuffers(2);
   IndicatorShortName("MACD("+MA1_Period+","+MA2_Period+","+MA3_Period+")");
   IndicatorDigits(Digits+1);

   SetIndexLabel(    0,"MACD");
   SetIndexBuffer(   0,MacdBuffer);
   SetIndexStyle(    0,DRAW_HISTOGRAM);
   SetIndexDrawBegin(0,MA2_Period);

   SetIndexLabel(    1,"Signal");
   SetIndexBuffer(   1,SignalBuffer);
   SetIndexStyle(    1,DRAW_LINE);
   SetIndexDrawBegin(1,MA2_Period);

   return(0);
}




int start() {
   int i                       = Bars - IndicatorCounted() - 1;

   while(i>=0) {

      if(Time[i]>=iTime(NULL,PERIOD_D1,Show_For_Last_N_Days)) {
         MacdBuffer[i+1]       = iMA(NULL,0,MA1_Period,0,MODE_EMA,PRICE_CLOSE,i+1) - iMA(NULL,0,MA2_Period,0,MODE_EMA,PRICE_CLOSE,i+1);

         for(int k=0; k<=MA3_Period; k++) {                                  //---- signal line counted in the 2-nd buffer
            SignalBuffer[k+1]  = iMAOnArray(MacdBuffer,0,MA3_Period,0,MODE_SMA,k+1);
         }
      }

      i--;
   } // while(i>=0) {

   return(0);
}



- ¿Por qué no funciona iMAOnArray en este ejemplo (y como consecuencia no se muestra la línea de señal)?
Gracias.