MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1939

 
Valeriy Yastremskiy # :
iTime != OldTime ise Alert ve OldTime =iTime sıfır vardiya/barda ise yeni bir çubuğun görünümü için işlevler.

ve OldTime'da   hangi değer yazılmalıdır? O_o

okun kendisi sıfır çubuğu açma anında çizilir.

öyle bir şart koşmuş

 if ( iTime ( NULL , 0 , 0 )!= iTime ( NULL , 0 , 1 ))
      {
       Alert ( "ДИВЕРГЕНЦИЯ НА " + Symbol ());
      }

düzgün çalışmıyor - test cihazında bile günlükte çok sayıda uyarı var. böyle değiş tokuş

 if ( iTime ( NULL , 0 , 1 )!= iTime ( NULL , 0 , 0 ))
      {
       Alert ( "ДИВЕРГЕНЦИЯ НА " + Symbol ());
      }

bir sürü uyarı da uçuyor - bu şeyi nasıl yazacağımı anlamıyorum (((

 
DanilaMactep # :

ve OldTime'da   hangi değer yazılmalıdır? O_o

okun kendisi sıfır çubuğu açma anında çizilir.

öyle bir şart koşmuş

düzgün çalışmıyor - test cihazında bile günlükte çok sayıda uyarı var. böyle değiş tokuş

bir sürü uyarı da uçuyor - bu şeyi nasıl yazacağımı anlamıyorum (((

 
static datetime OldTime= 0 ;
if ( iTime ( NULL , 0 , 0 )!=OldTime)
      {
       Alert ( "ДИВЕРГЕНЦИЯ НА " + Symbol ()); OldTime= iTime ( NULL , 0 , 0 );
      }

Yani yükleme sırasında bir uyarı da olacak. Yeni bir çubuk göründüğünde, iTime ( NULL , 0 , 0 ) değişecek ve bir kez eşitlik olmayacak, o zaman eşitlik olacak ve eğer yanlış olacaktır.

Hala mümkün.

 static bool FlagNewBar= false ;
   if (BarTime!=Time[ 0 ])
     {
      BarTime=Time[ 0 ];
      FlagNewBar= true ;
     }

ya da herhangi bir zaman diliminde yeni bir çubuk alacaktı.

 bool FlagNewBarF( int prd, datetime &ArgBarTime, bool &FlagNbar)
  {
   FlagNbar= false ;
   if (ArgBarTime!= iTime ( NULL ,prd, 0 ))
     {
      ArgBarTime= iTime ( NULL ,prd, 0 );
      FlagNbar= true ;
     }

   return (FlagNbar);
  }

çağrı olacak

 if (FlagNewBarF( 1 , BarTime1,FlagNewBar1))
     {
       Alert ( "FlagNbar1 " ,FlagNewBar1, "BarTime1 " ,TimeToStr(BarTime1, TIME_DATE | TIME_SECONDS ));
      
     }

   if (FlagNewBarF( 5 , BarTime5,FlagNewBar5))
     {
       Alert ( "FlagNbar5 " ,FlagNewBar5, "BarTime5 " ,TimeToStr(BarTime5, TIME_DATE | TIME_SECONDS ));
     
     }
 
Valeriy Yastremskiy # :

Yani yükleme sırasında bir uyarı da olacak. Yeni bir çubuk göründüğünde, iTime ( NULL , 0 , 0 ) değişecek ve bir kez eşitlik olmayacak, o zaman eşitlik olacak ve eğer yanlış olacaktır.

Yardımınız için çok teşekkür ederim - Her şeyi mahvettim - Derleme sırasında 1 uyarı geldi - bakalım sonra ne olacak :-)
 

"Yeni çubuk" kötüdür, bu olayla "son çubuk" göstergesinden veri alabilirsiniz, yani. yeni çubuk-1.

bir sunucuda 3 terminal çalıştırın ve alım satım sıklığına bağlı olarak, bazı sinyal atlamaları başlayacaktır, yani sinyal, yani. siparişi göndermeden önce, baskıyı (örneğin satın alma sinyali) ayarladık ve gösterge değerinin baskısı son çubuğun değerini gösterecektir.

Elbette kontrol edebilirsiniz...

 
Valeriy Yastremskiy # :
Ortak metaquota terminal klasörüdür, içinde sayı klasörleri vardır, bunlar terminallerin ortak klasörleridir, terminal günlükleri, veriler ve test klasörü vardır, kendi günlükleri ve klasör dosyaları vardır. µl klasörü danışmanların, komut dosyalarının, göstergelerin, pencerelerin, alt pencerelerin çalışmalarının günlüklerini içerir.
Tümü. TEŞEKKÜR. Dün temizlendi. Bugün tekrar kontrol edeceğim. 30 GB temizlendi. Yaklaşık 10 terminal ve ağırlıklı olarak araçlar ve kütük geçmişi ile...
 
Artyom Trishkin :

Bu başlıkta, yeni MQL4'te programlamayı gerçekten anlamak ve öğrenmek isteyenlere ve MQL5'e kolayca geçmek isteyenlere yardım etmeye başlamak istiyorum - diller çok benzer.

Burada görevleri, bunları çözmek için algoritmaları ve bu arada, MT için programlama ile ilgili soruları bir şekilde tartışmak mümkün olacak.

Umarım forumumuzun diğer deneyimli üyeleri sorunların çözümüne gelir ve konu herkesin ilgisini çeker.

Merhaba, sipariş kapatma işlevinde bana kimse yardım edemez, şöyle deniyorum,

(int i=1; i<=SiparişToplam(); i++) için

{

if( OrderSelect (i-1,SELECT_BY_POS)==true)

{

if( Ask<= OrderOpenPrice())CloseBay();

}

}

Satış, Bay emrinden daha yüksek olduğunda, her şey yolundadır, Teklif, Bay emrinden daha yüksek olur olmaz, emir kaldırılır ve talep, açık fiyattan düşük olduğunda kaldırılmalıdır. Lütfen bunu çözmeme yardım et, çok yardımcı olacağım. Saygılarımla, İskender.

 
Alexandr Spravchikov # :

Merhaba, sipariş kapatma işlevinde kimse bana yardım edemez, şöyle deniyorum,

Yani denemedin mi?

 void CloseBuy()
{
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
      {
         if ((OrderSymbol()== _Symbol ) && (OrderMagicNumber()==Magic) && (OrderType()==OP_BUY))
         {
             if ( Ask<= OrderOpenPrice())
             if (!OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Green))
            {
               Print ( "Error closing a buy order!" +   IntegerToString ( _Period , 0 ) + " Error code = " + IntegerToString ( GetLastError (), 0 ));
            }
         }
      }
   }
   return ;
}
 

Selamlar. Söyleyin bana, lütfen, örneğin "BTCUSDT" çifti için bir alım satım api talebi yaparken, lot sayısının BTC'de değil USDT'de belirtilmesi için binance üzerinde nasıl yapabilirim?

 

Herkese selam! Lütfen bana söyle.


Fikir basit. Global kanalın sınırlarından biri kırıldığında bir pozisyon açıp bir öncekini kapatacak bir Uzman Danışman yazın . Kanal bir gösterge oluşturur.

İnternetteki kılavuzlara göre bir varyant yaptım. Bot, strateji test cihazında pozisyonları açar/kapatır ama grafiğe bakarsanız hiç de benim şartlarıma göre değil. Arabellekteki tüm değişkenleri zaten inceledim, hataları kontrol ettim. Boşuna.


Birisi yapabilirse, lütfen bana neyin yanlış olduğunu, hangi yöne kazılacağını söyle. :3


Arabellekteki değişkenleri, göstergenin bir gösterimini, ilk değişkenlerini ve Expert Advisor'ın sürümünü içeren bir dosya ekledim.

Dosyalar:
9.png  14 kb
f2.png  26 kb
second.mq4  15 kb
 
E1Macho1 # :

Herkese selam! Lütfen bana söyle.

hangi yöne kazılacak. :3

Hata ayıklayıcıyı kullanmaya doğru ilerleyin