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

 
leonerd :


Terminaldeki tüm grafik kimlikleri nasıl sıralanır? kodumda current_chart_id 1662429437, first_chart_id 1859831371. ChartNext() zaten -1 döndürür. ChartFirst() nedir?

ilk ne demek? İlk açıldı mı? Kimliği neden mevcut grafiğin kimliğinden daha büyük (bu arada daha sonra açıldı)?

Görünüşe göre bu uzun -> int dönüşümünden kaynaklanıyor.

 
Artyom Trishkin :

Teşekkürler, evet eskiden öyleydi.

 
Kim bilir nasıl yapılır while döngüleri vs. Teknolojime göre bir döngü oluşturmak istiyorum, ne çalışabilirim?
 
leonerd :

Görünüşe göre bu uzun -> int dönüşümünden kaynaklanıyor.

böyle bir mantık yok, yardımdaki örneğe bakın https://www.mql5.com/en/docs/chart_operations/chartnext

grafik tanımlayıcı numaralarının oluşum mantığı yoktur, belki bunlar Windows'taki pencere tutamaçlarıdır veya diğer bazı sayılardır, terminaldeki yardımdan tüm örnek grafik kimliklerini sıralamak için yeterlidir, kod tabanında bir gösterge koydum bu ikinci TF'leri oluşturur, oradaki yardımdan bir örnek kullandım - her şey bir saat gibi çalışır - özel grafiğimi bul - grafik kimliğini ezberleyin ve daha sonra keneler oluşturun


Serik29 :
Kim bilir nasıl yapılır while döngüleri vs. Teknolojime göre bir döngü oluşturmak istiyorum, ne çalışabilirim?

hmm, birkaç gündür sorunuzu görüyorum ama ne cevap duymak istiyorsunuz? - bunlar dil operatörleridir, geliştiriciler tarafından tanımlandığı gibi çalışırlar, yardımda belirtilir, dil operatörleri hiçbir programlama dilinde "düzenlendiği gibi" tanımlanır - dil operatörleri her zaman "olduğu gibi sağlanır" - ne eksik ne fazla

işte MQL4 dil operatörleri https://docs.mql4.com/ru/basis/operators - bunlar "aynen böyle" - bu, herhangi bir programlama dilinin temelidir

 
Igor Makanu :

hmm, birkaç gündür sorunuzu görüyorum ama ne cevap duymak istiyorsunuz? - bunlar dil operatörleridir, geliştiriciler tarafından tanımlandığı gibi çalışırlar, yardımda belirtilir, dil operatörleri hiçbir programlama dilinde "düzenlendiği gibi" tanımlanır - dil operatörleri her zaman "olduğu gibi sağlanır" - ne eksik ne fazla

işte MQL4 dil operatörleri https://docs.mql4.com/ru/basis/operators - bunlar "aynen böyle" - bu, herhangi bir programlama dilinin temelidir

Bu nedenle, gerekli bilgilerin yarısının gizli olduğu açıklanmamaları kötü. Evet, nasıl çalıştıklarıyla ilgileniyorum. Mql'nin c++ ve pascal'da olan en az 3 döngüyü basitleştirdiği ortaya çıktığı için kendi döngülerimi oluşturmak istiyorum ve bu döngüler ayrıca kontrol sayısını azaltmayı ve gereksiz bayrak ve değişkenlerin başlatılmasını kolaylaştırabilir, ancak ben kendiminkini oluşturmak istedim ama bu yinelemelerin nasıl olduğunu, nasıl yapıldığını anlayamıyorum, böylece herhangi bir kod bloğunda bir döngü yazabilir ve kodun da uyduğu küme parantezlerini açabilirsiniz. Çok ilginç arkadaşlar pliz yazacak biri varsa.

 
Seric29 :

ayrıca, ortaya çıktığı gibi, mql, c++ ve pascal'da bulunan en az 3 döngüyü basitleştirdi

icat etmeyin, Üniversitede hem Pascal hem de C ++ okudum, her şey hala orada:

C++ : for , while , do...while

Pascal: for, while, tekrarla

MQL: for , while , do...while

????


Serik29 :

Bu nedenle, gerekli bilgilerin yarısının gizli olduğu açıklanmamaları kötü. Evet, nasıl çalıştıklarıyla ilgileniyorum.

Sorunuzun saçmalığını nasıl açıklayacağımı bile bilmiyorum ama yine de deneyeceğim, yani siz diyorsunuz ki:

Siz: - "Rusça çalışıyorum ve alfabenin nasıl çalıştığını bilmem gerekiyor"

Ben: "Alfabe hiçbir şekilde düzenlenmemiştir, sadece harflerdir ve kelimeler oluştururlar" ( MQL'de yaklaşık bir düzine operatör vardır ve bir program oluştururlar ) https://docs.mql4.com/ru/basis/ operatörler

Siz: "Olamaz! Zimbabwe alfabesinin harflerinin çok şey ifade ettiğini biliyorum!"

Ben: "Maalesef bu dili bilmiyorum ama Rusça'da harf sadece harf olduğu anlamına gelir, elbette fonetik analiz yapabilirsiniz ama bu harfin kelimenin asli unsuru olmasını engellemez"

Siz: "hmm, garip, ama Zimbabwe dilinde, "a" derseniz - bu bir harf olacaktır ve "A" evinize barış ise ve "aAaAaAa!" ise - en büyüğüne sahip olduğum anlamına gelir. kedi! - Rusça'da harflerin nasıl düzenlendiği görülemez! - gizli bir teknoloji var....


genel olarak sizinle diyaloğumuz bu şekilde görüyorum ingilizcem için kusura bakmayın başka türlü yapamam

)))

 
Igor Makanu :

böyle bir mantık yok, yardımdaki örneğe bakın https://www.mql5.com/en/docs/chart_operations/chartnext

grafik tanımlayıcı numaralarının oluşum mantığı yoktur, belki bunlar Windows'taki pencere tutamaçlarıdır veya diğer bazı sayılardır, terminaldeki yardımdan tüm örnek grafik kimliklerini sıralamak için yeterlidir, kod tabanında bir gösterge koydum bu ikinci TF'leri oluşturur, oradaki yardım örneğini kullandım - her şey bir saat gibi çalışır - özel grafiğimi bul - kimlik çizelgesini ezberle ve daha sonra üzerinde onay işaretleri oluştur

ChartFirst(), açık çizelgelerden en küçük kimliği mi döndürür?

 
leonerd :

ChartFirst(), açık çizelgelerden en küçük kimliği mi döndürür?

yine hayır! - ChartFirst()'in sayısal değeri mantıklı değil

Not: ......yanılıyor olabilirim ama bir yerde ChartFirst()'in ilk açılan grafiğin tanımlayıcısını döndürdüğünü okudum ), ancak terminalde ilk açılan - genel olarak, bu konuda haklı olduğum bir gerçek değil


ChartFirst() size, ChartNext() ile çizelgeler üzerinde yineleyebileceğiniz bir başlangıç noktası verir, şöyle görünür: ilk tanımlayıcıyı alın ChartFirst() - değeri hatırlayın, bu değeri ChartNext()'e iletin - ve bu şekilde devam edin. ChartFirst()'in ilk değerini tekrarlar - bu, tüm olası çizelgeleri gözden geçirdiğiniz anlamına gelir,

İşte KB'deki göstergemin kodu - Yardımda buldum, kontrol ettim ve grafiğimi bulmak için kullandım:

 //+------------------------------------------------------------------+
//| поиск  идентификатора графика                                    |
//+------------------------------------------------------------------+
long CheckChart( string sym, int period, int &wh)
  {
   long result= 0 ,id= ChartFirst ();
   while (id>= 0 )
     {
       if ( ChartSymbol (id)==sym && ChartPeriod (id)==period && ChartGetInteger (id, CHART_IS_OFFLINE ))
        {
         result=id;
         ChartSetInteger (id, CHART_AUTOSCROLL , true );
         ChartSetInteger (id, CHART_SHIFT , true );
         ChartNavigate (id, CHART_END );
         ChartRedraw (id);
         wh=WindowHandle(sym,period);
         PrintFormat ( "Найдено окно графика: [%s,%d]" ,sym,period);
         break ;
        }
      id= ChartNext (id);
     }
   return (result);
  }
//+------------------------------------------------------------------+
 
Igor Makanu :

yine hayır! - ChartFirst()'in sayısal değeri mantıklı değil

Not: ......yanılıyor olabilirim ama bir yerde ChartFirst()'in ilk açılan grafiğin tanımlayıcısını döndürdüğünü okudum ), ancak terminalde ilk açılan - genel olarak, bu konuda haklı olduğum bir gerçek değil


ChartFirst() size, ChartNext() ile çizelgeler üzerinde yineleyebileceğiniz bir başlangıç noktası verir, şöyle görünür: ilk tanımlayıcıyı alın ChartFirst() - değeri hatırlayın, bu değeri ChartNext()'e iletin - ve bu şekilde devam edin. ChartFirst()'in ilk değerini tekrarlar - bu, tüm olası çizelgeleri gözden geçirdiğiniz anlamına gelir ,

İşte KB'deki göstergemin kodu - Yardımda buldum, kontrol ettim ve grafiğimi bulmak için kullandım:

Garip. "ChartFirst()'in ilk değeri tekrar edene kadar" ile ilgili yardım yazılmamış. Grafik listesinin sonunda -1 döndürür

Geri dönüş değeri

Grafik kimliği. Grafik listesi bittiyse, işlev -1 değerini döndürür.

Документация по MQL5: Операции с графиками / ChartNext
Документация по MQL5: Операции с графиками / ChartNext
  • www.mql5.com
Операции с графиками / ChartNext - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin :

Garip. "ChartFirst()'in ilk değeri tekrar edene kadar" ile ilgili yardım yazılmamış. Grafik listesinin sonunda -1 döndürür

Tövbe ediyorum - günahkar! Sertifikayı okumadım, sarhoşken foruma yazdım!