[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 241

 

¡¡¡Hola Queridos miembros del foro!!!

Si no es mucha molestia, ¿puede darme una pista?

Existe un indicador de este tipo

signalTable.mq4

localizado
https://www.mql5.com/ru/code/8179
He decidido a mi antojo rehacerlo para mí........El error
'\end_of_program' - unbalanced left parenthesis	C:\Program Files\MetaTrader - Alpari\experts\indicators\signalTable_v1.mq4 (114, 1)
sigue apareciendo durante la compilación

114 línea - está claro, pero el PRIMER CONOCIMIENTO como no es muy

Tal vez alguien sugiera un ....... sensato

El código propiamente dicho se encuentra a continuación. (He decidido sustituir el SAR por el MACD)

//----
#property indicator_chart_window
extern int scaleX=20,
           scaleY=20,
           offsetX=35,
           offsetY=20,
           fontSize=20,
           corner=2,
           symbolCodeBuy=67,
           symbolCodeSell=68,
           symbolCodeNoSignal=73;
extern color signalBuyColor=Gold,
             signalSellColor=MediumPurple,
             noSignalColor=WhiteSmoke,
             textColor=Gold;
int period[]={1,5,15,30,60,240,1440,10080,43200};
string periodString[]={"M1","M5","M15","M30","H1","H4","D1","W1","MN1"},
       // создаем еще один массив с названиями индикаторов
       signalNameString[]={"MA","WPR","MACD"};
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   // таблица сигналов
   for(int x=0; x<9; x++)
      for(int y=0; y<3; y++)
        {
         ObjectCreate("signal"+ x+ y,OBJ_LABEL,0,0,0,0,0);
         // изменяем угол привязки
         ObjectSet("signal"+ x+ y, OBJPROP_CORNER, corner);
         ObjectSet("signal"+ x+ y, OBJPROP_XDISTANCE, x* scaleX+ offsetX);
         ObjectSet("signal"+ x+ y, OBJPROP_YDISTANCE, y* scaleY+20);
         ObjectSetText("signal"+ x+ y,CharToStr( symbolCodeNoSignal),
                       fontSize,"Wingdings", noSignalColor);
        }
   // названия таймфреймов    
   for( x=0; x<9; x++)
     {
      ObjectCreate("textPeriod"+ x,OBJ_LABEL,0,0,0,0,0);
      // изменяем угол привязки      
      ObjectSet("textPeriod"+ x, OBJPROP_CORNER, corner);
      ObjectSet("textPeriod"+ x, OBJPROP_XDISTANCE, x* scaleX+ offsetX);
      ObjectSet("textPeriod"+ x, OBJPROP_YDISTANCE, offsetY-10);
      ObjectSetText("textPeriod"+ x, periodString[ x],8,"Tahoma", textColor);
     }
   // названия индикаторов 
   for( y=0; y<3; y++)
     {
      ObjectCreate("textSignal"+ y,OBJ_LABEL,0,0,0,0,0);
      // изменяем угол привязки      
      ObjectSet("textSignal"+ y, OBJPROP_CORNER, corner);
      ObjectSet("textSignal"+ y, OBJPROP_XDISTANCE, offsetX-25);
      ObjectSet("textSignal"+ y, OBJPROP_YDISTANCE, y*( scaleY)+ offsetY+8);
      ObjectSetText("textSignal"+ y, signalNameString[ y],8,"Tahoma", textColor);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   for(int x=0; x<9; x++)
     {
      // сигнал на покупку
      if(iMA(Symbol(), period[ x],13,0,0,0,0)>iMA(Symbol(), period[ x],24,0,0,0,0))
         ObjectSetText("signal"+ x+"0",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(iMA(Symbol(), period[ x],13,0,0,0,0)<iMA(Symbol(), period[ x],24,0,0,0,0))
          ObjectSetText("signal"+ x+"0",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);
     }
   for( x=0; x<9; x++)
     {
      // сигнал на покупку
      if(MathAbs(iWPR(Symbol(), period[ x],13,0))<20.0)
         ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(MathAbs(iWPR(Symbol(), period[ x],13,0))>80.0)
            ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);
      // нет сигнала
      else
           ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeNoSignal), fontSize,"Wingdings", noSignalColor);
     }
   for( x=0; x<9; x++)
     {
      // сигнал на покупку
      if(iMACD(Symbol(), period[ x],(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)<Close[0])
         ObjectSetText("signal"+ x+"2",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(iMACD(Symbol(), period[ x],(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)>Close[0])
         ObjectSetText("signal"+ x+"2",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   // при удалении нашего индикатора нужно удалить все объекты,
   // которые мы уже создали
   ObjectsDeleteAll();
   return(0);
  }
//+------------------------------------------------------------------+
 
dmmikl86 >> :

¿Cómo asignar nombres a los búferes en los indicadores personalizados?


SetIndexLabel(int index, string label);

 
igrok2008 >> :

¡¡¡Hola Queridos miembros del foro!!!

Si no es mucha molestia, ¿puede darme una pista?

Existe un indicador de este tipo

localizado decidí en algún momento reorganizarlo para mí........ sigo recibiendo un error durante la compilación

114 línea - está claro, pero el PRIMER CONOCIMIENTO como no es muy

Tal vez alguien sugiera un ....... sensato

El código propiamente dicho se encuentra a continuación. (se ha decidido sustituir el SAR por el MACD)

      if(iMACD(Symbol(), period[ x],(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)<Close[0]))
         ObjectSetText("signal"+ x+"2",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(iMACD(Symbol(), period[ x],(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)>Close[0]))
         ObjectSetText("signal"+ x+"2",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);

en la primera y tercera línea, preste atención a los últimos paréntesis de cierre - le faltan

 

Muchas gracias alsu, pero la línea 114 es

      if(MathAbs(iWPR(Symbol(), period[ x],13,0))<20.0)
         ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(MathAbs(iWPR(Symbol(), period[ x],13,0))>80.0)
            ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);
      // нет сигнала
      else                                      это114 строка
           ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeNoSignal), fontSize,"Wingdings", noSignalColor);
por lo que cuando se compila, el enlace va a esa línea, eso es lo que está mal con.........................................
 

¡Saludos a todos!

He estado pensando durante mucho tiempo, así que he decidido pedir ayuda a los expertos.

Sobre todo porque la pregunta es trivial, tal y como yo la veo.

Creo que puedes manejarlo. :)

Este es el trato.

Hay un archivo exel. Las celdas contienen datos. (Intentaré ser lo más literario posible).

kolo/6895.jpg

kolo/6896.jpg

kolo/6897.jpg

kolo/7353.jpg

kolo/8899.jpg

....

etc.

¿Cómo puedo hacer que funcione con Find/Replace?

kolo/6895.jpg,kolo/6895.jpg,kolo/6895.jpg

kolo/6896.jpg,kolo/6896.jpg,kolo/6896.jpg

kolo/7353.jpg,kolo/7353.jpg,kolo/7353.jpg

kolo/8898.jpg,kolo/8898.jpg,kolo/8898.jpg

kolo/6899.jpg,kolo/6899.jpg,kolo/6899.jpg

hay mucho que escribir sobre ..... :)

¡Muchas gracias por el consejo!


 
Sokil >> :

¡Saludos a todos!

He estado pensando durante mucho tiempo, así que he decidido pedir ayuda a los expertos.

Sobre todo porque la pregunta es trivial, tal y como yo la veo.

Creo que puedes manejarlo. :)

Este es el trato.

Hay un archivo exel. Las celdas contienen datos. (Intentaré ser lo más literario posible).

kolo/6895.jpg

kolo/6896.jpg

kolo/6897.jpg

kolo/7353.jpg

kolo/8899.jpg

....

etc.

¿Cómo puedo hacer que funcione con Find/Replace?

kolo/6895.jpg,kolo/6895.jpg,kolo/6895.jpg

kolo/6896.jpg,kolo/6896.jpg,kolo/6896.jpg

kolo/7353.jpg,kolo/7353.jpg,kolo/7353.jpg

kolo/8898.jpg,kolo/8898.jpg,kolo/8898.jpg

kolo/6899.jpg,kolo/6899.jpg,kolo/6899.jpg

hay mucho que escribir sobre ..... :)

Muchas gracias por los útiles consejos.



Tienes que duplicar el contenido tres veces y separarlo por comas. La forma más fácil de hacerlo es utilizar la fórmula =RC[-1]&","&RC[-1]&","&RC[-1]".

A continuación, puede copiar las celdas y pegar el contenido como valores.

 
Gracias, ¡es una idea!
 

¿Qué tal si hacemos la tarea más difícil?

Lo tengo: kolo/6895.jpg

Do: kolo/6895.jpg,kolo/6895.jpg,kolo/6895_.jpg

=RC[-1]&","&RC[-1]&","&RC[-1]" no sirve aquí, en mi opinión.

 
Para algunos instrumentos, como el EUR/USD, las cotizaciones tienen 5 decimales. Pero en mis variables de entorno, los valores tienen sólo 4 dígitos. ¿Cómo puedo obtener el valor completo de las variables de entorno?
 
Sokil >> :

¿Qué tal si hacemos la tarea más difícil?

Lo tengo: kolo/6895.jpg

Do: kolo/6895.jpg,kolo/6895.jpg,kolo/6895_.jpg

=RC[-1]&","&RC[-1]&","&RC[-1]" no servirá de nada, según tengo entendido


¿Cuál es la complicación?

Hay al menos dos opciones, la primera es eliminar el ".jpg" y luego añadirlo en la fórmula, el segundo en fórmula más larga como =RC[-1]&","&RC[-1]&","&LEVSIMV(RC[-1]; DLSTR(RC[-1])-4)&"_"&PRAWSIMW(RC[-1];4), si es necesario se puede buscar el separador a través de find, o se hace un bucle elemental a través de VBA por completo.

Hay una solución para cada problema, pero hay que fijar el problema con precisión.

Razón de la queja: