İlginç bir ticaret fikri var. Koddaki hataları bulmama yardım et (mql4). - sayfa 17

 
Karputov Vladimir :

Lütfen kodu doğru yapıştırın: Kodu foruma doğru yapıştırıyoruz (Mesajınızı düzelttim).

Eklendi: Ayrıca bir kod şekillendirici kullanılması şiddetle tavsiye edilir - hataların tespit edilmesine yardımcı olacaktır ( Kaynak koduyla çalışma: Styler - Program geliştirme ).

Güncellenen işlevleri kullanmak için güçlü önerilere ekleyeceğim

gibi

 int OnInit ()
 void OnTick ()

diğer...

 
vladislavch19 :

Bana nereye yazacağımı veya '}' danışmanındaki 2 hatayı düzeltmeye kimin yardım edeceğini söyle - beklenmedik program sonu '{' - dengesiz parantezler TMA.mq4



Uuuuuuuuh kaç tane sözdizimsel hata var.

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
extern int    TakeProfit       = 100 ;
extern int    StopLoss         = 50 ;
extern double Lots            = 0.01 ;
extern int     Slippage        = 5 ;
extern string comment         = "Продажа" ;
extern int     Megic           = 123 ;
extern string Indi            = "данные индикатора" ;
extern string TimeFrame= "current time frame" ; //текущее время кадра
extern int     HalfLength      = 56 ;
extern int     Price           = PRICE_CLOSE ;
extern double ATRMultiplier   = 2.0 ;
extern int     ATRPeriod       = 100 ;
extern bool    Interpolate     = true ;

double PriceHigh,PriceLow,SL,TP;
int ticket;
bool res;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   if ( Digits == 3 || Digits == 5 )
     {
      TakeProfit*= 10 ;
      StopLoss*= 10 ;
      Slippage*= 10 ;
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()

  {
   PriceHigh= iCustom ( Symbol (), 0 , "TMA with Distancer" ,TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate, 1 , 0 );
   PriceLow= iCustom ( Symbol (), 0 , "TMA with Distancer" ,TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate, 2 , 0 );

   if ( Bid >=PriceHigh)
     {
      SL= NormalizeDouble ( Bid +StopLoss* Point , Digits );
      TP= NormalizeDouble ( Bid -TakeProfit* Point , Digits );

      ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid ,Slippage, 0 , 0 ,comment, 123 , 0 ,Maroon);

       if (ticket> 0 )
        {
         if ( OrderSelect (ticket, SELECT_BY_TICKET )== true )
            res= OrderModify (ticket, OrderOpenPrice (),SL,TP, 0 );
        }
     }

   if ( Ask <PriceLow)
     {
      SL= NormalizeDouble ( Ask -StopLoss* Point , Digits );
      TP= NormalizeDouble ( Ask +TakeProfit* Point , Digits );

      ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask ,Slippage, 0 , 0 ,comment, 123 , 0 , clrDarkBlue );

       if (ticket> 0 )
        {
         if ( OrderSelect (ticket, SELECT_BY_TICKET )== true )
            res= OrderModify (ticket, OrderOpenPrice (),SL,TP, 0 );
        }
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountSell()
  {
   int count= 0 ;
   for ( int trede= OrdersTotal ()- 1 ;trede>= 0 ;trede--)
     {
       if ( OrderSelect (trede, SELECT_BY_POS , MODE_TRADES ))
        {
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Megic)
           {
             if ( OrderType ()== OP_SELL )count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountBuy()
  {
   int count= 0 ;
   for ( int trede= OrdersTotal ()- 1 ;trede>= 0 ;trede--)
     {
       if ( OrderSelect (trede, SELECT_BY_POS , MODE_TRADES ))
        {
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Megic)
           {
             if ( OrderType ()== OP_BUY )count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
 
Sabah onu gerçek duruma getirmeye karar verdim, ancak baykuşun son versiyonunun tutmadığı bir şey var, ilk seçenekler askıda kalıyor ve bu 6 uçuyor ve yeniden başlatılıyor - demoda iyi çalıştı ... ya da çok iyi - çalışmasına izin vermiyorlar ...))
 
Сергей Криушин :
Sabah onu gerçek duruma getirmeye karar verdim, ancak baykuşun son versiyonunun tutmadığı bir şey var, ilk seçenekler askıda kalıyor ve bu 6 uçuyor ve yeniden başlatılıyor - demoda iyi çalıştı ... ya da çok iyi - çalışmasına izin vermiyorlar ...))
Genel bir temizlik yaptım - şimdi buna değer ... Koddan 13 Truva atı temizledim ... bayat MT5 ... robo uzun süredir kullanılmıyor ... görünüşe göre birikmişler, saklanmışlar ...
 
Сергей Криушин :
Sabah onu gerçek yapmaya karar verdim, ancak baykuşun son versiyonunun tutmadığı bir şey, ilk seçenekler askıda kalıyor ve bu 6 uçuyor ve yeniden başlatılıyor - demoda iyi çalıştı ... veya çok iyi - çalışmasına izin vermiyorlar ...))
d Kilitlendiğinde günlüklerde ne yazıyor? Bugün, MT5 için Martin ile çapraz bir EA'yı yeniden yazmayı bitirdim.
 
Sergey Gritsay :
d Kilitlendiğinde günlüklerde ne yazıyor? Bugün, MT5 için Martin ile çapraz bir EA'yı yeniden yazmayı bitirdim.
Bilmiyorum, zaten dokunmaya korkuyorum ... ve riskli olanlar için bir martin bile, ya da sadece satılık - cesurca 1000 $ 'a bahse girerim - gerçek hayatta faizle ödeyecekler, bugün kâr da 3 dolardan gitti ... yani gidecek ... ve açgözlü olmazsam muhtemelen tuzlamayacağım, o zaman birkaç hesap daha açabilirsiniz ... çok teşekkür ederim ... ))
 
Сергей Криушин :

işte rapor ... ve bu ikinci atılım ...

Ne diyebilirim ki, devam et.
 
'ST' hatası yazıyor - bildirilmemiş tanımlayıcı test3.mq4 69 13 ve tür dönüştürme nedeniyle olası veri kaybı test3.mq4 85 on beş

extern string TMA= "Параметры" ;
extern int    TakeProfit       = 100 ;
extern int    StopLoss         = 50 ;
extern int     Megic           = 123 ;
extern double Lots            = 0.01 ;
extern int     Slippage        = 5 ;
extern string TimeFrame       = "current time frame" ;
extern int     HalfLength      = 56 ;
extern int     Price           = PRICE_CLOSE ;
extern double ATRMultiplier   = 2.0 ;
extern int     ATRPeriod       = 100 ;
extern bool    Interpolate     = true ;


double PriceHigh,PriceLow,SL,TP;
int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {

   if ( Digits == 3 || Digits == 5 )
     {

      TakeProfit*= 10 ;
      StopLoss*= 10 ;
      Slippage*= 10 ;
      }
      



                 return ( INIT_SUCCEEDED );
                
     }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+


//---

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
   void OnTick ()
     {
      PriceHigh= iCustom ( NULL , 0 , "TMA_Fair" ,TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate, 1 , 0 );
      PriceLow= iCustom ( NULL , 0 , "TMA_Fair" ,TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate, 2 , 0 );

   if (CountBuy()== 0 && Ask <=PriceLow)

        {
         ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask ,Slippage, 0 , 0 , "tma" ,Megic, 0 ,Blue);
         if (ticket> 0 )
           {
            TP= NormalizeDouble ( Ask +TakeProfit* Point , Digits );
            ST= NormalizeDouble ( Ask -StopLoss* Point , Digits );

             if ( OrderSelect (ticket, SELECT_BY_TICKET ))

               if ( OrderModify (ticket, OrderOpenPrice (),ST,TP, 0 ))
                 Print ( "Ошибка" );
               }
  
        }

       if (CountSell()== 0 && Bid >=PriceHigh)

        {
         ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid ,Slippage, 0 , 0 , "tma" ,Megic, 0 ,Red);
         if (ticket> 0 )
           {
            ST= NormalizeDouble ( Bid +StopLoss* Point , Digits );
            TP= NormalizeDouble ( Bid -TakeProfit* Point , Digits );

             if ( OrderSelect (ticket, SELECT_BY_TICKET ))

               if ( OrderModify (ticket, OrderOpenPrice (),ST,TP, 0 ))
               Print ( "Ошибка" );
           }
           }
        }
       //+------------------------------------------------------------------+
       int CountSell()
        {
         int count= 0 ;
         for ( int trede= OrdersTotal ()- 1 ;trede>= 0 ;trede--)
           {
             if ( OrderSelect (trede, SELECT_BY_POS , MODE_TRADES ))
              {
               if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Megic && OrderType ()== OP_SELL )

                  count++;
                  
              }
           }
         return (count);
        }

       int CountBuy()
        {
         int count= 0 ;
         for ( int trede= OrdersTotal ()- 1 ;trede>= 0 ;trede--)
           {
             if ( OrderSelect (trede, SELECT_BY_POS , MODE_TRADES ))
              {
               if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Megic && OrderType ()== OP_BUY )

                  count++;
                  
              }
           }
        
       return (count);
     }
//+------------------------------------------------------------------+

 
vladislavch19 :
'ST' hatası yazıyor - bildirilmemiş tanımlayıcı test3.mq4 69 13 ve tür dönüştürme nedeniyle olası veri kaybı test3.mq4 85 on beş


bir değişken adı bildirdin

 double PriceHigh,PriceLow,SL,TP;

ama başka bir şey yaz

ST= NormalizeDouble ( Ask -StopLoss* Point , Digits );
 

"Teşekkür ederim" değişkenlerini anladım, hata yok

şimdi tür dönüşümü nedeniyle olası veri kaybı uyarısı yazıyor test3.mq4 87 on beş

ve test cihazında 'C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\F8B0CF1E1FEED3B00D2D7E193237B799\MQL4\indicators\TMA_Fair.ex4' dosyasını açamıyor [2]