[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 241

 

Ciao cari membri del forum!!!

Se non è troppo disturbo, puoi darmi un suggerimento?

C'è un tale indicatore

signalTable.mq4

situato
https://www.mql5.com/ru/code/8179
Ho deciso a mio piacimento di rifarlo per me........L'errore
'\end_of_program' - unbalanced left parenthesis	C:\Program Files\MetaTrader - Alpari\experts\indicators\signalTable_v1.mq4 (114, 1)
continua ad apparire durante la compilazione

114 linea - è chiaro, ma la PRIMA CONOSCENZA come non è molto

Forse qualcuno suggerirà un sensato .......

Il codice stesso è qui sotto. (Ho deciso di sostituire il SAR con il 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 >> :

Come si assegnano i nomi ai buffer negli indicatori personalizzati?


SetIndexLabel(int index, string label);

 
igrok2008 >> :

Ciao cari membri del forum!!!

Se non è troppo disturbo, puoi darmi un suggerimento?

C'è un tale indicatore

situato ho deciso ad un certo punto di riorganizzarlo per me........Continuo ad ottenere un errore durante la compilazione

114 linea - è chiaro, ma la PRIMA CONOSCENZA come non è molto

Forse qualcuno suggerirà un sensato .......

Il codice stesso è qui sotto. (ha deciso di sostituire il SAR al 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);

nella prima e nella terza riga, fate attenzione all'ultima parentesi di chiusura - le avete mancanti

 

Grazie mille alsu, ma la linea 114 è

      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);
così quando si compila, il collegamento va a quella linea, ecco cosa c'è di sbagliato in.........................................
 

Saluti a tutti!

Ci ho pensato a lungo, così ho deciso di chiedere aiuto agli esperti.

Tanto più che la domanda è banale, per come la vedo io.

Penso che tu possa farcela. :)

Ecco l'accordo.

C'è un file exel. Le celle contengono dati. (Cercherò di essere il più letterato possibile).

kolo/6895.jpg

kolo/6896.jpg

kolo/6897.jpg

kolo/7353.jpg

kolo/8899.jpg

....

ecc.

Come posso farlo funzionare 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

c'è così tanto da scrivere..... :)

Grazie mille per il consiglio!


 
Sokil >> :

Saluti a tutti!

Ci ho pensato a lungo, così ho deciso di chiedere aiuto agli esperti.

Tanto più che la domanda è banale, per come la vedo io.

Penso che tu possa farcela. :)

Ecco l'accordo.

C'è un file exel. Le celle contengono dati. (Cercherò di essere il più letterato possibile).

kolo/6895.jpg

kolo/6896.jpg

kolo/6897.jpg

kolo/7353.jpg

kolo/8899.jpg

....

ecc.

Come posso farlo funzionare 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

c'è così tanto da scrivere..... :)

Grazie mille per il buon consiglio!



Devi duplicare il contenuto tre volte e separarlo con la virgola. Il modo più semplice per farlo è usare la formula =RC[-1]&","&RC[-1]&","&RC[-1]".

Potete poi copiare le celle e incollare il contenuto come valori.

 
Grazie, è un pensiero!
 

Che ne dite di rendere il compito più difficile?

Trovato: kolo/6895.jpg

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

=RC[-1]&","&RC[-1]&","&RC[-1]" non va bene qui, per quanto mi riguarda.

 
Per alcuni strumenti, ad esempio EUR/USD, le quotazioni sono 5 decimali. Ma nelle mie variabili d'ambiente, i valori hanno solo 4 cifre. Come posso ottenere il valore completo delle variabili d'ambiente?
 
Sokil >> :

Che ne dite di rendere il compito più difficile?

Trovato: kolo/6895.jpg

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

=RC[-1]&","&RC[-1]&","&RC[-1]" non aiuterà qui per quanto ho capito


Qual è la complicazione?

Ci sono almeno due opzioni, la prima rimuovendo il ".jpg" e poi aggiungerlo nella formula, il secondo nella formula più lunga come =RC[-1]&","&RC[-1]&","&LEVSIMV(RC[-1]; DLSTR(RC[-1])-4)&"_"&PRAWSIMW(RC[-1];4), se necessario si può cercare il separatore tramite find, o in generale si fa un ciclo elementare tramite VBA.

C'è una soluzione per ogni problema, ma il problema deve essere impostato con precisione.

Motivazione: