Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 159

 

Merhabalar SEVGİLİ PROGRAMCILAR, bu Uzman Danışmanı düzeltmek için yardımlarınızı rica ediyorum.



1.Siparişlerin otomatik olarak açılması.
2. + 'a ulaşıldığında, ilk lot ile aynı yönde bir emir açar.
3. Ulaştığında - siparişi tersine çevirir (siparişi alındığı yönde açar - ).
Dosyalar:
 
Size sağlık diliyorum, meslektaşlarım!
Bu sorunla karşılaşan varsa haber versin:
1) MT4 danışmanında test edilmiştir. Günlükte change1 siparişinde hata belirdi. Modifiye1 siparişi verme hatasına neden olan nedir ve nasıl düzeltilir?
2) Danışmanı kuramıyorum ve çalıştıramıyorum. Danışmanı grafik penceresine aktarıyorum ve ya sağ üst köşede düzelmiyor ya da düzeliyor ama başlamıyor. Kolobok yerine bir dikdörtgen! (ekran görüntüsüne bakın)
3) MT4'ü ROSA OS'ye (Lunix) nasıl kurabilirim? MT4'ü c/Program Files (x86)/MT4 üzerine kurdum. Dosyaları c/Program Files (x86)/MT4'ten c/users/xxl/AppData/'ya ve _c/users/xxl/Application Data/MetaQuotes/'e kopyalamam gerekir mi? Öyleyse, LocalLow ve Roaming klasörlerine hangi dosyalar, Terminal ve WebInstall klasörlerine hangi dosyalar yerleştirilmelidir?
Genişletilmiş cevap için teşekkürler! )

 

Herkese selam. Konu şu. Timsahın N. çubukla kesiştiği bir nokta var. Bu kesişme noktasından timsah ile örneğin 1. çubuğun alt tarafı arasındaki açıyı bulmanız gerekir. Zorluk, iki uyumsuz değere sahip olmamızdır - çubuk sayısı ve fiyat. Birinin önerdiği gibi, grafikteki hücrenin boyutu üzerinde dans etmek istedim. Ancak bir hücredeki çubuk sayısı ölçek değişikliğiyle orantılıysa, fiyatın böyle bir oranı yoktur.

Yukarıdakilere dayanarak, iki sorum var:

1. Belki birisi tanışmıştır veya bu sorunun çözümünü biliyordur.

2. Danışman belirli bir çizelge ölçeğiyle mi çalışıyor yoksa tamamen fiyatla mı?

 
Alexander Dubovik :

Geliştiricilere bir not daha.

typedef dil yapısı için belgeler (ve typedef'in kendisinin çalışması) şaşırtıcıdır.

typedef karakter My_Char; - derleme yapmaz.

Belgelerden: "C++ dilindeki typedef anahtar sözcüğü , kullanıcı tanımlı veri türleri oluşturmanıza olanak tanır .....". Affedersiniz, ama aslında MQL yalnızca işlev işaretçileri bildirimini uygularsa, MQL belgelerinde NEDEN C++'a atıfta bulunulur?

MQL4/5'te typedef hadım edilir ve yalnızca işlev işaretçilerini bildirmek için kullanılır, başka hiçbir şey için uygun değildir.


 typedef int (*TFunc)( int , int );

int add( int x, int y) 
{
     return (x+y); 
}

void OnStart ()
{
    TFunc pfunc = add;   
     Print (pfunc( 4 , 5 ));    
}
 
Alex Pirate :

Herkese selam!

basit bir danışman, genellikle basit, bir şeyler ters gidiyor, hata veriyor... sonra trol eklemek istiyorum ama açılmıyor bile... yazıyor - 'OrderSend' dönüş değeri kontrol edilmeli

Neden daha fazla çek gönderiyor??? Yanlış olan ne??? Görünüşe göre programcılar ve herkese yardım etmek için burada uğraşanlar .... üzgünüm (((

https://translate.google.ru/?hl=ru&tab=TT#en/ru/return%20value%20of%20'OrderSend'%20should%20be%20checked

Google Переводчик
  • translate.google.ru
Бесплатный сервис Google позволяет мгновенно переводить слова, фразы и веб-страницы с английского на более чем 100 языков и обратно.
 
Alex Pirate :

Herkese selam!


 
Artyom Trishkin :


teşekkürler, bu biliniyor... Ben sadece alttan çevrilmiş soruyu sordum ... ilginç yazdığından değil .. neden? kodda yanlış olan ne??? neyi yanlış yazdım???

 
Alex Pirate :

teşekkürler, bu biliniyor... Ben sadece alttan çevrilmiş soruyu sordum ... ilginç yazdığından değil .. neden? kodda yanlış olan ne??? neyi yanlış yazdım???

 
Artyom Trishkin :

 extern int     MA_1_Period   = 22 ;
extern int     MA_1_MAShift  = 1 ;
extern int     MA_1_Method   = 1 ;
extern int     MA_1_Price    = 1 ;
extern int     MA_1_Shift    = 0 ;

extern int     MA_2_Period   = 55 ;
extern int     MA_2_MAShift  = 1 ;
extern int     MA_2_Method   = 1 ;
extern int     MA_2_Price    = 1 ;
extern int     MA_2_Shift    = 0 ;

extern int     MA_3_Period   = 163 ;
extern int     MA_3_MAShift  = 1 ;
extern int     MA_3_Method   = 1 ;
extern int     MA_3_Price    = 1 ;
extern int     MA_3_Shift    = 0 ;

extern double lot           = 0.1 ;
extern int     TP            = 60 ;
extern int     SL            = 40 ;
extern int     Slippage      = 5 ;
extern int     Magic         = 888 ;

int timeprev;

//+------------------------------------------------------------------+
int init()
{ 
   if ( Digits == 3 || Digits == 5 )
   {
     TP           *= 10 ;
     SL           *= 10 ;
     Slippage     *= 10 ;
     
   }

   return ( 0 ); 
}
//+------------------------------------------------------------------+
int deinit() 
{
   return ( 0 );
}
//+------------------------------------------------------------------+

int start()
{
   if (timeprev == Time [ 0 ]) return ( 0 );
   timeprev = Time [ 0 ];
   
   double MA_1_1 = iMA ( Symbol (), 0 , MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift);
   double MA_1_2 = iMA ( Symbol (), 0 , MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift);
   
   double MA_2_1 = iMA ( Symbol (), 0 , MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift);
   double MA_2_2 = iMA ( Symbol (), 0 , MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift);
   
   double MA_3_1 = iMA ( Symbol (), 0 , MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift);
   double MA_3_2 = iMA ( Symbol (), 0 , MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift);
     
 //+------------------------------------------------------------------+  
 // покупаем
 
   if (CountBuy() + CountSell() == 0 && MA_1_1 > MA_1_2 && MA_2_1 > MA_2_2 && MA_3_1 > MA_3_2 )
   
      {
         OrderSend ( Symbol (), OP_BUY , lot, Ask , Slippage, SL, TP, "" , Magic, 0 , Green);
      }
// продаём
   
   if (CountBuy() + CountSell() == 0 && MA_1_1 < MA_1_2 && MA_2_1 < MA_2_2 && MA_3_1 < MA_3_2 )
   
      {
         OrderSend ( Symbol (), OP_SELL , lot, Bid , Slippage, SL, TP, "" , Magic, 0 , Red);
      }
          
   return ( 0 );
}
//+------------------------------------------------------------------+
int CountBuy()
{
   int count = 0 ;
   
   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i --)
   {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () ==  Magic && OrderType () == OP_BUY )
           count++;
      }
   }
   return (count);
}
//+------------------------------------------------------------------+
int CountSell()
{
   int count = 0 ;
   
   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i --)
   {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () ==  Magic && OrderType () == OP_SELL )
           count++;
      }
   }
   return (count);
}
//+------------------------------------------------------------------+
 
Alex Pirate :

Neyle neyi karşılaştırıyorsun?

   double MA_1_1 = iMA ( Symbol (), 0 , MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift );
   double MA_1_2 = iMA ( Symbol (), 0 , MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift );
   
   double MA_2_1 = iMA ( Symbol (), 0 , MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift );
   double MA_2_2 = iMA ( Symbol (), 0 , MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift );
   
   double MA_3_1 = iMA ( Symbol (), 0 , MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift );
   double MA_3_2 = iMA ( Symbol (), 0 , MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift );
     
 //+------------------------------------------------------------------+  
 // покупаем
 
   if (CountBuy() + CountSell() == 0 && MA_1_1 > MA_1_2 && MA_2_1 > MA_2_2 && MA_3_1 > MA_3_2 )

0 > 0 ve 0 > 0 ve 0 > 0 ise

Neden: