[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 241

 

Merhaba sevgili forum kullanıcıları!

Zor değilse söyle.

bir gösterge var

signalTable.mq4

yer alan
https://www.mql5.com/ru/code/8179
Boş zamanımda bir şekilde kendim için yeniden yapmaya karar verdim ........ Derlerken sürekli bir hata oluşuyor
'\end_of_program' - unbalanced left parenthesis	C:\Program Files\MetaTrader - Alpari\experts\indicators\signalTable_v1.mq4 (114, 1)

Satır 114 anlaşılabilir, AMA İLK Aşinalık bir şekilde çok değil

Belki biri bana bir ipucu verebilir .......

Kodun kendisi aşağıdadır. (SAR'ı MACD ile değiştirmeye karar verdi)

 //----
#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 >> :

özel göstergelerdeki arabelleklere nasıl ad atayacağımı söyle?


SetIndexLabel(int dizin, dize etiketi);

 
igrok2008 >> :

Merhaba sevgili forum kullanıcıları!

Söylemesi zor değilse.

bir gösterge var

bulundum bir şekilde boş zamanımda kendim için yeniden yapmaya karar verdim ........ Derlerken sürekli bir hata oluşuyor

Satır 114 anlaşılabilir, AMA İLK Aşinalık bir şekilde çok değil

Belki biri bana bir ipucu verebilir .......

Kodun kendisi aşağıdadır. (SAR'ı MACD ile değiştirmeye karar verdi)

      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 ) ;

birinci ve üçüncü satırlarda, son kapanış parantezine dikkat edin - bunlardan yeterince yok

 

Çok teşekkürler alsu, ama 114. satır

       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 ) ;
yani derlerken, bağlantı tam olarak bu satıra gider, işte bu ................................ ..... .
 

Hepiniz hoşgeldiniz!

Kafamı uzun süre kuruttum, yardım için uzmanlara başvurmaya karar verdim.

Ayrıca, baktığım kadarıyla sorum önemsiz.

Bence yapabilirsin. :)

Mesele şu.

excel dosyası var. Hücreler veri içerir. (Mümkün olduğunca okuryazar olmaya çalışacağım).

kolo/6895.jpg

kolo/6896.jpg

kolo/6897.jpg

kolo/7353.jpg

kolo/8899.jpg

....

vb.

Ne olacağını Bul / Değiştir'i kullanmayı nasıl düşünebilirsiniz:

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

karalamalar HEMEN ... :)

Harika tavsiye için çok teşekkürler!


 
Sokil >> :

Hepiniz hoşgeldiniz!

Kafamı uzun süre kuruttum, yardım için uzmanlara başvurmaya karar verdim.

Ayrıca, baktığım kadarıyla sorum önemsiz.

Bence yapabilirsin. :)

Mesele şu.

excel dosyası var. Hücreler veri içerir. (Mümkün olduğunca okuryazar olmaya çalışacağım).

kolo/6895.jpg

kolo/6896.jpg

kolo/6897.jpg

kolo/7353.jpg

kolo/8899.jpg

....

vb.

Ne olacağını Bul / Değiştir'i kullanmayı nasıl düşünebilirsiniz:

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

karalamalar HEMEN ... :)

Harika tavsiye için çok teşekkürler!



Pekala, bul-değiştir sözü vermiyorum, anladığım kadarıyla içeriği üç kez ve virgülle ayırarak çoğaltmanız gerekiyor, bunu yapmanın en kolay yolu bir formülle örneğin =RC[-1]& ","&RC[-1]&","&RC[-1 ]

Daha sonra hücreleri kopyalayabilir ve içeriği değerler olarak yapıştırabilirsiniz.

 
Teşekkürler, bu bir fikir!
 

Ya daha da zorlaşırsa?

Evet: kolo/6895.jpg

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

=RC[-1]&","&RC[-1]&","&RC[-1] anladığım kadarıyla burada yardımcı olmayacak

 
EUR/USD gibi bazı enstrümanlar için kotasyonlar 5 ondalık basamakla gelir. Ve ortam değişkenlerimde değerler sadece 4 karakter içeriyor. Ortam değişkenlerinin tam değeri nasıl elde edilir?
 
Sokil >> :

Ya daha da zorlaşırsa?

Evet: kolo/6895.jpg

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

=RC[-1]&","&RC[-1]&","&RC[-1] anladığım kadarıyla burada yardımcı olmayacak


Komplikasyon nedir?

En az iki seçenek vardır; birincisi, ".jpg"yi ikame olarak kaldırmak ve ardından formüle eklemek, ikincisi ise =RC[-1]&","&RC[-1]& gibi daha uzun bir formülde eklemektir. ","&LEFT(RC[- 1]; DLSTR(RC[-1])-4)&"_"&RIGHT(RC[-1];4), gerekirse ayırıcıyı bul ile arayabilirsiniz veya genel olarak, temel bir döngü VBA aracılığıyla yapılır.

Her problem için bir çözüm vardır, ancak problem tam olarak belirlenmelidir.