[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 479

 
Dimka-novitsek :
Burada, özür dilerim.. Parantezleri 8 kez tekrar okudum, iyi dengelenmiş! Dengeli! Ya da değil??


Bu kodda:

            Print(
          "strela1>strela2&&BUY==0&&SELL==0   " , GetLastError()  ,"  Ask ",Ask,
     "   NormalizeDouble( Bid- (stoplos*Point),Digits)  ", NormalizeDouble( Bid- (stoplos*Point),Digits),"  
         NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); }

tırnak işaretlerini sarın (satırın sonundakiler).

 
Evet... şu anda.
 
Vay! yardımcı olmuyor A. Şu anda, yeni Expert Advisor'daki köpeği parçalar halinde derleyeceğim!
 
Dimka-novitsek :
Vay! yardımcı olmuyor A. Şu anda, yeni Expert Advisor'daki köpeği parçalar halinde derleyeceğim!


Bunu böyle durumlarda yapıyorum:

- Fonksiyonun tüm metni hakkında yorum yapıyorum;

- bazı kısımlarda yorumu kaldırıyorum, derliyorum ve hatanın görünmesini bekliyorum.

 
   if (strela1>strela2&&BUY== 0 &&SELL== 0 )    {    
            
           OrderSend ( Symbol ( ), OP_BUY, lot, Ask, 3 , NormalizeDouble ( Bid- (stoplos* Point ), Digits ),  
           NormalizeDouble ( Ask+( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE ); 

 
             Print (
           "strela1>strela2&&BUY==0&&SELL==0   " , GetLastError ()  , "  Ask " ,Ask,
     "   NormalizeDouble( Bid- (stoplos*Point),Digits)  " , NormalizeDouble ( Bid- (stoplos* Point ), Digits ),  
     "     NormalizeDouble( Ask+( takeprofit*Point),Digits) " , NormalizeDouble ( Ask+( takeprofit* Point ), Digits )); }

Böyle

   for ( int A= 0 ; A< 100 ; A++)
   {
       double strela1 = iCustom ( NULL , taymfreym, "индикатор" , 2 , A);
       double strela2 = iCustom ( NULL , taymfreym, "индикатор" , 3 , A);
            
       int BUY= 0 ,SELL= 0 ; int ticket; 
       Print ( A,   "  strela1 " , strela1 , "    strela2  " , strela2 ); 
           
       for ( int i= 1 ; i<= OrdersTotal (); i++)
       {  
         if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) // Если есть следующий
         {                                       // Анализ ордеров:
             if ( OrderSymbol ()!= Symbol ( ) ) continue ;       // Не наш фин. инструм
             if ( OrderMagicNumber ( ) !=magicnumber) continue ;
             if ( OrderType ()== 0 ){ BUY++; ticket= OrderTicket ( );}
             if ( OrderType ()== 1 ) {SELL++;ticket= OrderTicket ( );}
         }
       }
    }

Böyle

       if (strela1<strela2&&BUY== 0 &&SELL== 0 )
      {  

         OrderSend ( Symbol ( ), OP_SELL, lot, Bid, 3 , NormalizeDouble ( Ask- (stoplos* Point ), Digits ),  
         NormalizeDouble ( Bid+( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE ) ; 
         Print ( "strela1<strela2&&BUY==0&&SELL==   " , GetLastError ()  , "  Bid " ,Bid,
         "   NormalizeDouble( Ask- (stoplos*Point),Digits)  " , NormalizeDouble ( Ask- (stoplos* Point ), Digits ),
         "    NormalizeDouble( Bid+( takeprofit*Point),Digits) " , NormalizeDouble ( Bid+( takeprofit* Point ), Digits ) ) ;
      }

böyle

     Print (   "  Конец " );      

İpucu 1: Programınızı girintilerle yapılandırın

ipucu 2: bu tür hataları ve diğerlerini ararken, kodun bir kısmını yorumlayarak kullanın /* */ - sözdizimi hataları çok hızlı aranır

 
Dimka-novitsek :
Teşekkürler!! Şimdi, koda baksam iyi olur... Sonra parantezleri bir kağıt üzerinde saydım, dengelenmişler !!

parça parça doğru anlamına gelmez - yuvalama kuralına uyulmalıdır

 
Dimka-novitsek :
Şube nerede? Yoksa ben mi aptalım... Ne de olsa şu şartlar altında sipariş açıyoruz!
if ifadesi bir daldır, sadece ikinci bir dalınız yoktur (başka)
 

Teşekkürler!!

Ve biliyorsun, bu satır olmadan derleniyor

 Print ( "strela1<strela2&&BUY==0&&SELL==   " ,   GetLastError (),     "  Bid " ,  Bid,   "   NormalizeDouble( Ask- (stoplos*Point),Digits)  " , 
 NormalizeDouble ( Ask- (stoplos* Point ), Digits ),   "    NormalizeDouble( Bid+( takeprofit*Point),Digits) " ,   NormalizeDouble ( Bid+( takeprofit* Point ), Digits );

İçinde suç olan bir şey görmüyorum! Tüm danışmanı parçalara aktardım ve tabiri caizse kök bulunana kadar ayrı ayrı derledim.

 
Dimka-novitsek :

Teşekkürler!!

Ve biliyorsun, bu satır olmadan derleniyor

İçinde suç olan bir şey görmüyorum! Tüm danışmanı parçalara aktardım ve tabiri caizse kök bulunana kadar ayrı ayrı derledim.

Yazdırma için eksik sondaki ayraç

 Print ( "strela1<strela2&&BUY==0&&SELL==   " ,   GetLastError (),     "  Bid " ,  Bid,   "   NormalizeDouble( Ask- (stoplos*Point),Digits)  " , 
 NormalizeDouble ( Ask- (stoplos* Point ), Digits ),   "    NormalizeDouble( Bid+( takeprofit*Point),Digits) " ,   NormalizeDouble ( Bid+( takeprofit* Point ), Digits ) ) ;
 

İyi günler... Basit bir gösterge yazdım (ekteki dosyaya bakın).

Kısaca göstergenin özü: gösterge 3 satırdan oluşur:

1 satır , a ve b dönemleriyle Kapanışta iki MA arasındaki farkı gösterir (şartlı olarak).

Satır 2 , c ve d periyotlarıyla Kapat için iki MA arasındaki farkı gösterir. (şartlı olarak); birbcd .

Satır 3 , Satır1 ve Satır2 arasındaki farkın MA'sını gösterir, yani. MA(Lines1-Lines2) belirli bir süre ile.

Soru : Çizgi3 (siyah) neden grafikte düz bir çizgi olarak görüntüleniyor?


Resme not : üstteki resimde istenen sonuç, alttaki resimde oluşturduğum göstergenin gösterdiği sonuç

Not : Birisi biraz daha söve bulursa, bir ipucu için minnettar olacağım

Not: Forumu kirletmemek adına şimdiden cevap için teşekkürler

Dosyalar:
aom3.mq4  12 kb