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

 
novichok2018 :

Herkese merhaba!

Forumda , fiyatın belirli bir saniyede kaç puan geçtiğini sayan bir fonksiyon buldum int ItemsPerSecond(const int saniye, MqlTick &tick), onu koda ekledim, derledim - her şey yolunda, ama denediğimde onu ara, derleyici yanlış parametre sayımı çığlıkları atıyor.

Neyi yanlış yapıyorum?

Okuma:

Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...
 
novichok2018 :

Ne oldu?

Herkes uyuyor mu yoksa öldü mü?

Kahkaha ile :)

 
Artyom Trishkin :

Okuma:

Igor Makanu : Saçma sorulara cevap yazamayacak kadar tembel

Beyler "akıllı"!

Bir şekilde forumun hangi dalında olduğunuzu sürekli unutuyorsunuz. Size hatırlatabilirim: Konunun adı " Yeni başlayanlardan herhangi bir soru ...". Ve zaten yeni başlayanlara yardım edebileceğinizi düşünüyorsanız (göstermemek, buraya geldiniz mi?), o zaman size aptalca ve saçma gelen ve yeni başlayanlar için zor olan sorularda kaşlarını çatarak kaşlarını çatmaya gerek yoktur. yardımın olmadan dışarı.

Amacı nedir - Dilin Temelleri bölümünde "işlev çağrısı" nı en az yirmi kez okudum ve bu özel durumda hangi parametrelerin girilmesi gerektiği belirsizliğini koruyor.

Yani, belki birileri gıdıklanmanın üstesinden gelir ve özel tavsiyeler verir?

Teşekkür ederim.

 
novichok2018 :

Beyler "akıllı"!

Bir şekilde forumun hangi dalında olduğunuzu sürekli unutuyorsunuz. Size hatırlatabilirim: Konunun adı " Yeni başlayanlardan herhangi bir soru ...". Ve zaten yeni başlayanlara yardım edebileceğinizi düşünüyorsanız (göstermemek, buraya geldiniz mi?), o zaman size aptalca ve saçma gelen ve yeni başlayanlar için zor olan sorularda kaşlarını çatarak kaşlarını çatmaya gerek yoktur. yardımın olmadan dışarı.

Amacı nedir - Dilin Temelleri bölümünde "işlev çağrısı" nı en az yirmi kez okudum ve bu özel durumda hangi parametrelerin girilmesi gerektiği belirsizliğini koruyor.

Yani, belki birileri gıdıklanmanın üstesinden gelir ve özel tavsiyeler verir?

Teşekkür ederim.

Bunun benim şubem olup olmadığını nasıl unutabilirim? :)

"Herhangi biri" - içeceklerin gücü hakkında konuşabileceğimiz anlamına gelmez ... Herhangi bir, oldukça "anlamlı" sorular. Ve sorduğunuz şey, herhangi bir programlama dilinin temelleri ve basitçe sorunuzla insanları durduruyorsunuz - temelleri öğretmeye başlamalı mısınız? Ancak bu, hem bu konunun hem de forumun kendisinin kapsamı dışındadır.

Sana yardım edecek bir link verdim - burnunu kaldırıyorsun. Buna göre, size bilgiye giden yolu gösterenlere karşı böyle bir tavırla ve "her şeyi sizin için yapmak" değil, insanları uzun süre sarsacaksınız - "neden sessizler, kimse bir şey biliyor mu?" derler. ?"...

Yardım, işlevler ve onların biçimsel parametreleri hakkında her şeyi içerir. Ve üzgünüm, CodeBase'de tonlarca örnek. Herhangi bir kodu açarsınız, resmi parametreleri olan herhangi bir işlevin tanımını ararsınız ve orada nasıl çağrıldığını görürsünüz...

Pekala, basit - tembel olmayın ve cennetten man beklemeyin, ama en azından gri maddeyi biraz kendiniz hareket ettirin.

Akademilerden mezun olmadım... Ordudan geldiğimde XZ Spectrum için program yazmakla ilgilenmeye başladım. BASIC'te .. ve kendisi için zaten assembler'da programlar yazdığı ve sonra tekrar tekrar açtığı noktaya ulaştı.

Ve hiç forum yoktu ve interneti üçe böldük (bugün bir, yarın ikinci, yarından sonraki gün - ben). Ve İnternet pahalıydı ve hatta telefon kabloları üzerinden bir modem aracılığıyla.
Radyo bit pazarından programlama üzerine kitaplar aldım. Ve geldiğim yere geldim ve şimdi enstitüden programcı olarak mezun olan ağabeyim, nasıl ve ne yapacağım konusunda benden tavsiye istiyor.
Ama öğrenmek istedim, onunla yandım. peki sen? Ve bence, senin için her şeyi yapacak birine ihtiyacın var.

 
Artyom Trishkin :

Akademilerden mezun olmadım... Ordudan geldiğimde XZ Spectrum için program yazmakla ilgilenmeye başladım. BASIC'te .. ve kendisi için zaten assembler'da programlar yazdığı ve sonra tekrar tekrar açtığı noktaya ulaştı.

Ve hiç forum yoktu ve interneti üçe böldük (bugün bir, yarın ikinci, yarından sonraki gün - ben). Ve İnternet pahalıydı ve hatta telefon kabloları üzerinden bir modem aracılığıyla.
Radyo bit pazarından programlama üzerine kitaplar aldım. Ve geldiğim yere geldim ve şimdi enstitüden programcı olarak mezun olan ağabeyim, nasıl ve ne yapacağım konusunda benden tavsiye istiyor.
Ama öğrenmek istedim, onunla yandım . peki sen? Ve bence, senin için her şeyi yapacak birine ihtiyacın var.

Azim ve amaçlılık için sizi onurlandırın ve övün. Söylediğiniz her şey kesinlikle saygıyı hak ediyor ama bence herkesten aynı şeyi istemek anlamsız. Üstelik kendi robotunu yazmak isteyen herkes bir programlama dili öğrenmek için çabalamıyor. Yukarıda zaten bir şey söyledim, örneğin, böyle bir hedefim yok. Bunun ve bunun nasıl yapılacağı sorusu ortaya çıktı - referans kitaplarında, ders kitaplarında, forumlarda, konuyu çok derinlemesine incelemeden bir çözüm arıyorsunuz. Belki de bu yüzden, görünüşte basit şeyler aniden anlaşılmaz olduğunda benzer durumlar ortaya çıkar. Tabii ki, "gri maddeyi hareket ettirdim", yine de bir çözüm bulacağım. Evet, muhtemelen "tonlarca CodeBase örneği" ile uğraşmak ve çok fazla zaman kaybetmek. Ancak, bu dalı neden yarattığınız ve neden böyle adlandırıldığı anlaşılmaz hale gelir, yeni başlayanlar için ilan edilen yardım yerine, dil çalışmasına dalmak zorunda kalırsanız. Bu yüzden buna "MKL4 ve MKL5'i birlikte çalışıyoruz" derlerdi. Bence yardım isteyenlerin hiçbiri onun için her şeyin yapılmasını istemiyor, neyin ne olduğunu açıklamak ya da belirli bir ipucu vermek yeterli, bir ders kitabına link vermek değil. Bir kişinin onun için yapılması gerekiyorsa, o zaman özellikle diyor ki: Bana şunu şunu yazmanı rica ediyorum.

Eh, boşuna döndü. Daha fazla gelişmende iyi şanslar.

 
novichok2018 :

Azim ve amaçlılık için sizi onurlandırın ve övün. Söylediğiniz her şey kesinlikle saygıyı hak ediyor ama bence herkesten aynı şeyi istemek anlamsız. Üstelik kendi robotunu yazmak isteyen herkes bir programlama dili öğrenmek için çabalamıyor. Yukarıda zaten bir şey söyledim, örneğin, böyle bir hedefim yok. Bunun ve bunun nasıl yapılacağı sorusu ortaya çıktı - referans kitaplarında, ders kitaplarında, forumlarda, konuyu çok derinlemesine incelemeden bir çözüm arıyorsunuz. Belki de bu yüzden, görünüşte basit şeyler aniden anlaşılmaz olduğunda benzer durumlar ortaya çıkar. Tabii ki, "gri maddeyi hareket ettirdim", yine de bir çözüm bulacağım. Evet, muhtemelen "tonlarca CodeBase örneği" ile uğraşmak ve çok fazla zaman kaybetmek. Ancak, bu dalı neden yarattığınız ve neden böyle adlandırıldığı anlaşılmaz hale gelir, yeni başlayanlar için ilan edilen yardım yerine, dil çalışmasına dalmak zorunda kalırsanız. Bu yüzden buna "MKL4 ve MKL5'i birlikte çalışıyoruz" derlerdi. Bence yardım isteyenlerin hiçbiri onun için her şeyin yapılmasını istemiyor, neyin ne olduğunu açıklamak ya da belirli bir ipucu vermek yeterli, bir ders kitabına link vermek değil. Bir kişinin onun için yapılması gerekiyorsa, o zaman özellikle diyor ki: Bana şunu şunu yazmanı rica ediyorum.

Eh, boşuna döndü. Daha fazla gelişmende iyi şanslar.

Sözlerde çok acı var. Ama işlevini bile göstermedin.
 
Artyom Trishkin :
Sözlerde çok acı var. Ama işlevini bile göstermedin.

Bu bir hakaret değil, hayal kırıklığıdır. Uzun zamandır rahatsız edilecek bir çocuk yok. Ve kimse bir işlev istemedi, hemen sokmaya başladılar.

Peki, işte fonksiyon:

 int ItemsPerSecond( const int seconds, MqlTick &tick)
{
//---
   static MqlTick rates[];
   datetime time_start;
   int count= 0 ,size;
   bool insert= false ;
   double price_start= 0 ;
   long msc= 0 ;
//---
   time_start= TimeCurrent ()-seconds;
   
   for ( int i= 0 ;i< ArraySize (rates);i++)
   {
       if (rates[i].time> 0 && rates[i].time<time_start)
      {
         ZeroMemory (rates[i]);
      }
       else if (!insert && rates[i].time== 0 )
      {
         rates[i]=tick;
         insert= true ;
      }
       if (rates[i].time_msc> 0 && (rates[i].time_msc<msc || msc== 0 ))
      {
         price_start=rates[i].bid;
         msc=rates[i].time_msc;
      }
      
   }
   if (!insert)
   {
      size= ArraySize (rates);
       ArrayResize (rates,size+ 1 , 300 );
      rates[size]=tick;
   }
   if (price_start> 0 )count=( int )((tick.bid-price_start)/ Point );
   
   Comment ( "size: " + IntegerToString ( ArraySize (rates))+ "\r\n" + "count: " + IntegerToString (count));
//---
   return (count);   
} 

ve işte onu nasıl çağırmaya çalışıyorum:

 void OnTick ()
  { 
  ItemsPerSecond( 3 ); 
  }

3, üç saniyedir (sanırım).

 
novichok2018 :

Forumda , fiyatın belirli bir saniyede kaç puan geçtiğini sayan bir fonksiyon buldum int ItemsPerSecond(const int saniye, MqlTick &tick), onu koda ekledim, derledim - her şey yolunda, ama denediğimde onu ara, derleyici yanlış parametre sayımı çığlıkları atıyor.

Neyi yanlış yapıyorum?


novichok2018 :

ve işte onu nasıl çağırmaya çalışıyorum:

 void OnTick ()
  { 
  ItemsPerSecond( 3 ); 
  }

https://www.mql5.com/ru/docs/basis/function ve https://www.mql5.com/ru/docs/basis/variables/formal yardımını okuyun

çağrılan fonksiyonda kaç parametreniz var?

 int ItemsPerSecond( const int seconds , MqlTick & tick )



novichok2018 :

Üstelik kendi robotunu yazmak isteyen herkes bir programlama dili öğrenmek için çabalamıyor. Mesela benim böyle bir amacım olmadığını yukarıda söylemiştim. Bunun ve bunun nasıl yapılacağı sorusu ortaya çıktı - referans kitaplarında, ders kitaplarında, forumlarda, konuyu çok derinlemesine incelemeden bir çözüm arıyorsunuz. Belki de bu yüzden, görünüşte basit şeyler aniden anlaşılmaz olduğunda benzer durumlar ortaya çıkar. Tabii ki, "gri maddeyi taşıdım", yine de bir çözüm bulacağım

ne yazık ki MQL'deki materyallerde ustalaşmadın bile, bu kendi başına program yazmakla ilgili bile değil, ne yazık ki hiçbir şey öğrenmedin... parmaklarınla... İngiliz alfabesini öğrendin "Hey, B, C, D ..." ve şimdi foruma İngilizce "Horosho" yazmaya çalışıyorsunuz, size bunun İngilizce bilgisi olmadığını yazıyorlar, bu hiç bir şey değil .... ve siz Burada bir forum olduğu için tekrar rahatsız oldum, işte yeni başlayanlarla destek olan bir konu ve zaten her şeyi okudum !!! ve yine bir daire içinde, hey inekler! neden bu konu! Ben alınganlardan değilim!!! ...

 
Igor Makanu :


https://www.mql5.com/ru/docs/basis/function ve https://www.mql5.com/ru/docs/basis/variables/formal yardımını okuyun

çağrılan fonksiyonda kaç parametreniz var?



ne yazık ki MQL'deki materyallerde ustalaşmadın bile, bu kendi başına program yazmakla ilgili bile değil, ne yazık ki hiçbir şey öğrenmedin... parmaklarınla... İngiliz alfabesini öğrendin "Hey, B, C, D ..." ve şimdi foruma İngilizce "Horosho" yazmaya çalışıyorsunuz, size bunun İngilizce bilgisi olmadığını yazıyorlar, bu hiç bir şey değil .... ve siz Burada bir forum olduğu için tekrar rahatsız oldum, işte yeni başlayanlarla destek olan bir konu ve zaten her şeyi okudum !!! ve yine bir daire içinde, hey inekler! neden bu konu! Ben alınganlardan değilim!!! ...

Bir sürü mektup - ve narsisizm ve muhatabın aşağılanmasından başka bir şey değil. Ve ikinci parametreyi hangi biçimde eklemeliyim? İkinci parametreyi aynı sonuca sahip bir sayıya ayarladım. Neden bu kadar çok "kelime" vardı? Daha önce derlenmiş ve test edilmiş olan örneğimi kullanarak çözümü gösterin. Yoksa şişirilmiş özgüvene izin vermiyor mu?

 
novichok2018 :

Yoksa şişirilmiş özgüvene izin vermiyor mu?

Tamam, sizinle iletişim kurmama hakkımı kullanacağım (neyse ki, beni buna zorlayamazsınız), ancak foruma yazma hakkını kullanıyorsunuz, ancak size sunulan materyalleri okumayacaksınız. çalışmak?

 void OnTick ()
  { 
   MqlTick t;
// судя по исходнику в t нужно скопировать тики и вызывать так:
ItemsPerSecond( 3 ,t); 
  }

novichok2018 :

İkinci parametreyi aynı sonuca sahip bir sayıya ayarladım. Neden bu kadar çok "kelime" vardı? Derleyip test ettikten sonra çözümü örneğimde göster

Örneğinize ItemsPerSecond() işlevine doğruçağrıyı ekledim, derlemedim, test etmedim ve terminali başlatmayacağım - sorunuzu yanıtladım

Neden: