MQL5 dilini sıfırdan kendi kendine öğrenme - sayfa 65

 
MrBrooklin :

Merhaba Valery! çok teşekkür ederim çünkü "... sihrimiz ve sembolümüz üzerindeki pozisyonlar sıfırsa, zamanı kontrol et ve bir pozisyon aç ..." seçeneğiniz en basit ve en etkili olduğu ortaya çıktı. Zaman kontrolü koşuluna && PositionTotal()==0 ekledim ve gerekli hacme sahip sadece bir pozisyon açılmaya başladı!

Saygılarımla, Vladimir.


Ne yazık ki, MCL'de bir sembol üzerindeki konumların sayısını döndüren bir komut yoktur. TotalPosition, tüm sembollerdeki hesaptaki tüm pozisyonları döndürür. Bu nedenle, sembol üzerindeki konumları elde etmek için, tüm konumları numaralandırmamız ve sembolün bizimki üzerindeki konumunu karşılaştırmamız gerekir.

Ve ilerisi. İlk anda mantık alnını açıyoruz, pozisyonumuzu kontrol ediyoruz, trol yapıyoruz her zaman optimal olmuyor. Bazen önce pozisyonun sihrimizle açık olup olmadığını, açık ise kapanış saatini kontrol etmek daha iyidir.

Amaç, danışmanın eylem sayısını azaltmaktır.

 
Valeriy Yastremskiy :

Ne yazık ki, MCL'de bir sembol üzerindeki konumların sayısını döndüren bir komut yoktur. TotalPosition, tüm sembollerdeki hesaptaki tüm pozisyonları döndürür. Bu nedenle, sembol üzerindeki konumları elde etmek için, tüm konumları numaralandırmamız ve sembolün bizimki üzerindeki konumunu karşılaştırmamız gerekir.

Ve ilerisi. İlk anda mantık alnını açıyoruz, pozisyonumuzu kontrol ediyoruz, trol yapıyoruz her zaman optimal olmuyor. Bazen önce pozisyonun sihrimizle açık olup olmadığını, açık ise kapanış saatini kontrol etmek daha iyidir.

Amaç, danışmanın eylem sayısını azaltmaktır.

Her şey açık Valery! Bahsettiğiniz ipuçlarını uygulamaya çalışıyorum.

Saygılarımla, Vladimir.

 
Valeriy Yastremskiy :

Eğer sihrimiz ve sembolümüz üzerindeki pozisyon sıfır ise, o zaman zamanı kontrol edip pozisyonu açıyoruz, eğer 1 ise pozisyonu açmıyoruz, kapanış saatini ve izi kontrol ediyoruz, 1'den fazla ise, o zaman Uyarı çalışmıyor. Bir anahtarda mümkündür, varsa kontrolleri yapmak mümkündür.

Merhaba Valery! Konumları saymadan kodu yazmaya çalıştım. Yazdı, kontrol etti, her şey çalışıyor.

   if ( PositionSelect ( Symbol ())== false && PositionGetInteger ( POSITION_MAGIC )!=Magic_Number
   && time_current.hour==time_open.hour && time_current.min>=time_open.min && time_current.min<time_open1.min)
      OpenBUY();
Saygılarımla, Vladimir.
 
MrBrooklin :

Merhaba Valery! Konumları saymadan kodu yazmaya çalıştım. Yazdı, kontrol etti, her şey çalışıyor.

Saygılarımla, Vladimir.

Başlangıç için sorun yok ama sadece bir başlangıç. Çok sert koşullar. Sembolümüzde pozisyon yoksa ve sihrimizle tüm enstrümanlarda pozisyonlar yoksa, dahası normlar gibi. Hayatta, bir sembolde 2 pencere açabilirsiniz ve diğerinde bir pozisyon olabilir. Kayıtları basitçe Magic'e göre tutabilirsiniz, örneğin Trishkin gibi ilk üç hane sembol kodu ve sonraki 2 hane script/danışman kodudur. Ve ilk aşamada, manuel olarak kodlayın veya pencere sembolüne ve komut dosyası koduna bağlı olarak dizelerin eklenmesini alarak sihir oluşturun ve ardından dizeyi bir sayıya çevirin.

Bazı nedenlerden dolayı, tüm siparişlerin veya pozisyonların sayımı bir klasik olarak kabul edilir.

Ama bu başlamak için çok fazla.

Bu nedenle, kuralları başlatmak için.

 
Valeriy Yastremskiy :

Başlamak tamam, ama sadece bir başlangıç. Çok sert koşullar. Sembolümüzde pozisyon yoksa ve sihrimizle tüm enstrümanlarda pozisyonlar yoksa, dahası normlar gibi. Hayatta, bir sembolde 2 pencere açabilirsiniz ve diğerinde bir pozisyon olabilir. Kayıtları basitçe Magic'e göre tutabilirsiniz, örneğin Trishkin gibi ilk üç hane sembol kodu ve sonraki 2 hane script/danışman kodudur. Ve ilk aşamada, manuel olarak kodlayın veya pencere sembolüne ve komut dosyası koduna bağlı olarak dizelerin eklenmesiyle sihir oluşturun ve ardından dizeyi bir sayıya çevirin.

Bazı nedenlerden dolayı, tüm siparişlerin veya pozisyonların sayımı bir klasik olarak kabul edilir.

Ama bu başlamak için çok fazla.

Bu nedenle, kuralları başlatmak için.

Teşekkürler Valery! Tüm pozisyonlardan geçmek, kesinlikle yapacağım kendi kendine çalışmadaki sonraki adımlardan biri.

Saygılarımla, Vladimir.

 
Valeriy Yastremskiy :

Bazı nedenlerden dolayı, tüm siparişlerin veya pozisyonların sayımı bir klasik olarak kabul edilir.

Ne yazık ki, bu MQL topluluğunun geleneğidir, tüm EA'lar ani bir iletişim kaybı ve / veya PC'nin elektrik kesintisi dikkate alınarak geliştirilmiştir.

bir yandan, bu iyi bir tekniktir, ancak diğer yandan, uzman kodu yazma stiline büyük kısıtlamalar getirir - EA yalnızca sipariş sihirleriyle çalışır, örneğin, bir martingale yazmanız gerekiyorsa, sonra EA sihriyle tarihteki son düzeni arar ve kar/zararına bakar ve yeni bir lot artırılıp artırılmayacağına karar verilir.

... genel olarak, MT'nin yaratılmasından bu yana - herkes İnternet'in ortadan kalkmasını bekliyor ve stratejinin kendisi artık o kadar önemli değil))

 
Igor Makanu :

Ne yazık ki, bu MQL topluluğunun geleneğidir, tüm EA'lar ani bir iletişim kaybı ve / veya PC'nin elektrik kesintisi dikkate alınarak geliştirilmiştir.

bir yandan, bu iyi bir tekniktir, ancak diğer yandan, uzman kodu yazma stiline büyük kısıtlamalar getirir - EA yalnızca sipariş sihirleriyle çalışır, örneğin, bir martingale yazmanız gerekiyorsa, sonra EA sihriyle tarihteki son düzeni arar ve kar/zararına bakar ve yeni bir lot artırılıp artırılmayacağına karar verilir.

... genel olarak, MT'nin yaratılmasından bu yana - herkes İnternet'in ortadan kalkmasını bekliyor ve stratejinin kendisi artık o kadar önemli değil))

Merhaba Igor! Çok faydalı bilgiler paylaştığınız için teşekkür ederiz.

Saygılarımla, Vladimir.

 
Igor Makanu :

Ne yazık ki, bu MQL topluluğunun geleneğidir, tüm EA'lar ani bir iletişim kaybı ve / veya PC'nin elektrik kesintisi dikkate alınarak geliştirilmiştir.

bir yandan, bu iyi bir tekniktir, ancak diğer yandan, uzman kodu yazma stiline büyük kısıtlamalar getirir - EA yalnızca sipariş sihirleriyle çalışır, örneğin, bir martingale yazmanız gerekiyorsa, sonra EA sihriyle tarihteki son düzeni arar ve kar/zararına bakar ve yeni bir lot artırılıp artırılmayacağına karar verilir.

... genel olarak, MT'nin yaratılmasından bu yana - herkes İnternet'in ortadan kalkmasını bekliyor ve stratejinin kendisi artık o kadar önemli değil))

Yangından, selden ve budaladan korunma her zaman olmalı!) DC ile iletişimin kesilmesi durumunda genellikle kendimi ayaklarla sınırlandırırım.

 

Herkese iyi günler ve iyi bir ruh hali!

MQL5 programlama dilini öğrenmeye devam ediyorum. MQL5 Referansına göre alıntı yaptığım for döngüsü operatörüyle ilgili ayrıntılı bir çalışmaya başladım:

döngü ifadesi için

Test edilen ifade yanlış olana kadar bir ifade yürütür. İfade her yinelemeden önce kontrol edilir


for döngüsü operatörünün açıklamasına giriyorum ve orada şunu okudum:

Оператор for состоит из трех выражений и выполняемого оператора:

for (выражение 1 ; выражение 2 ; выражение 3 ) 
   оператор;

Выражение 1 описывает инициализацию цикла. Выражение 2 - проверка условия завершения цикла.
Если оно истинно, то выполняется оператор тела цикла for . Все повторяется, пока выражение 2 не станет ложным. 
Если оно ложно, цикл заканчивается и управление передается следующему оператору. 
ВыражениеЗ вычисляется после каждой итерации.

Operatör, operatörü yürütür mü? Tamam ozaman. Tüm açık pozisyonları yinelemek için for döngüsü operatörünü alıp çalıştırıyorum, sonra ihtiyacım olan koşullarla if operatörünü yazıyorum:

   for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( PositionSelect ( Symbol ())== false && PositionGetInteger ( POSITION_MAGIC )!=Magic_Number
         && time_current.hour==time_open.hour && time_current.min>=time_open.min && time_current.min<time_open1.min)
         OpenBUY();
     }

ve sonra hiçbir şey olmuyor. Satın alma pozisyonu açılmadı. Nasıl anlaşılır? Görünüşe göre yanlış bir şey yapıyorum veya for döngüsü operatörünün özünü hiç anlamıyorum?

Sevgili uzmanlar! Lütfen bana söyleyin, ancak düzeltilmiş kodla değil, kelimelerle , aksi takdirde MQL5 programlama dilini asla öğrenemeyeceğim.

Saygılarımla, Vladimir.
 
MrBrooklin :

Herkese iyi günler ve iyi bir ruh hali!

MQL5 programlama dilini öğrenmeye devam ediyorum. MQL5 Referansına göre alıntı yaptığım for döngüsü operatörüyle ilgili ayrıntılı bir çalışmaya başladım:

döngü ifadesi için

Test edilen ifade yanlış olana kadar bir ifade yürütür. İfade her yinelemeden önce kontrol edilir


for döngüsü operatörünün açıklamasına giriyorum ve orada şunu okudum:

Operatör, operatörü yürütür mü? Tamam ozaman. Tüm açık pozisyonları yinelemek için for döngüsü operatörünü alıp çalıştırıyorum, sonra ihtiyacım olan koşullarla if operatörünü yazıyorum:

ama hiçbir şey olmadı. Satın alma pozisyonu açılmadı. Nasıl anlaşılır? Görünüşe göre yanlış bir şey yapıyorum veya for döngüsü operatörünün özünü hiç anlamıyorum?

Sevgili uzmanlar! Lütfen bana söyleyin, ancak düzeltilmiş kodla değil, kelimelerle , aksi takdirde MQL5 programlama dilini asla öğrenemeyeceğim.

Saygılarımla, Vladimir.

Döngü gövdesindeki döngü ifadesi ve ifadeler. Pek klasik Rusça değil.

Elbette her şey yolunda, ama döngü gövdesindeki i yineleyici nerede? Ve pozisyon sembolünü ve büyüsünü elde etmek için önce onu seçmelisiniz. Pozisyonun tanımı bir yapıdır (µl5'te tüm yapı ve siparişler ve zaman ve fırsatlar) ve seçim yoluyla doldurulur, pozisyon bileti değil, pozisyon numarası olan yineleyici tarafından seçilir. ve pozisyon tanımlama yapısında pozisyonun son seçiminin her zaman olduğu unutulmamalıdır.

Neden: