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

 

Hiçbir şey anlamıyorum. Sorum moderatör tarafından MKL5'ten MKL4'e aktarıldı. Bağlantıyı takip ettim - evet, sorum asılı, ancak son cevap 02/05/2018. Buraya gittim - ayrıca MKL4 ve hayat tüm hızıyla devam ediyor ... Peki moderatör neden onu ölü bir konuya atıyor? Boşver. Şimdi, özünde: "sorunumu" buraya atıyorum.


Vladimir Karputov :

Koşul 1 için tanımlayıcıyı sihirli sayı +1'e, koşul 2 için sihirli sayı +2'ye vb. ayarlayın. Böylece daha sonra bu pozisyonun koşul 1 veya koşul 2'ye göre açıldığı anlaşılabilir...

Tünaydın. Sadece bir pozisyon BY için ortaya çıktı. HÜCRE için sihir seti bir nedenden dolayı çalışmıyor. Elbette sihirbaz dışında her şey kesinlikle aynıdır. Neyi yanlış yaptım?

 int total= OrdersTotal ();

       for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)

      {

         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))

         {

         if ( TimeCurrent ()> OrderOpenTime ()+ 100 && OrderTicket () && OrderType ()== OP_BUY && ( MathAbs (WPR1)< 5 ))

         rez =   OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( MarketInfo ( OrderSymbol (), MODE_BID ), int ( MarketInfo ( OrderSymbol (), MODE_DIGITS ))),slippage,Yellow); 

        

         if ( TimeCurrent ()> OrderOpenTime ()+ 100 && OrderTicket () && OrderType ()== OP_BUY && OrderMagicNumber == 111 && MathAbs (WPR1)< 20 )

         rez =   OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( MarketInfo ( OrderSymbol (), MODE_BID ), int ( MarketInfo ( OrderSymbol (), MODE_DIGITS ))),slippage,Yellow);

      

         if ( TimeCurrent ()> OrderOpenTime ()+ 100 && OrderTicket () && OrderType ()== OP_SELL && OrderMagicNumber == 222 && MathAbs (WPR1)> 97.55 )

         rez =   OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( MarketInfo ( OrderSymbol (), MODE_ASK ), int ( MarketInfo ( OrderSymbol (), MODE_DIGITS ))),slippage,Yellow); 

           

         if ( TimeCurrent ()> OrderOpenTime ()+ 100 && OrderTicket () && OrderType ()== OP_SELL && MathAbs (WPR1)> 96 )

         rez =   OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( MarketInfo ( OrderSymbol (), MODE_ASK ), int ( MarketInfo ( OrderSymbol (), MODE_DIGITS ))),slippage,Yellow);               

         }

       continue ;  

      } 
 
novichok2018 :

Hiçbir şey anlamıyorum. Sorum moderatör tarafından MKL5'ten MKL4'e aktarıldı. Bağlantıyı takip ettim - evet, sorum asılı, ancak son cevap 02/05/2018. Buraya gittim - ayrıca MKL4 ve hayat tüm hızıyla devam ediyor ... Peki moderatör neden onu ölü bir konuya atıyor? Boşver. Şimdi, özünde: "problemimi" buraya atıyorum.


Tünaydın. Sadece bir pozisyon BY için ortaya çıktı. HÜCRE için sihir seti bir nedenden dolayı çalışmıyor. Elbette sihirbaz dışında her şey kesinlikle aynıdır. Neyi yanlış yaptım?

1. mql4'ü bilmiyor.

2. Magic 222 ile bir emri kapatmak için önce magic 222 ile açmalısınız. SATIŞ emirlerinin hangi büyü ile açıldığına bakın.

3. OrderMagicNumber'dan sonra parantezler () olmalıdır

 if ( TimeCurrent ()> OrderOpenTime ()+ 100 && OrderTicket () && OrderType ()== OP_SELL && OrderMagicNumber == 222 && MathAbs (WPR1)> 97.55 )

4. Durumda neden vurgulanıyor?

 if ( TimeCurrent ()> OrderOpenTime ()+ 100 && OrderTicket () && OrderType ()== OP_BUY && ( MathAbs (WPR1)< 5 ))
 

İnsanların böyle bir sorusu var - bir değişkenin değerlerini tek boyutlu bir diziye nasıl koyabilirim?

Yardıma göndermeyin - benzer bir görev için HİÇBİR örnek yoktur.


Diyelim ki belirli koşullar altında değişen bir a değişkeni var.

Bu değişkenin son 3 değerini diziye yazmam gerekiyor. mql4'te nasıl uygulanır?


int mas[3] yazıyorum;

kütle[]=a; bir değişikliğin olduğu koşuldan sonra döngü içinde,

ama mantıklı olması gerektiği halde nifiga çalışmıyor. derleyici ']' - ifade bekleniyor, parantez içindeki mas[]=a içine bilinmeyen bir ifade koymamı istiyor.

MQL4'te, döngünün her yinelemesinde diziyi değişkenin değeriyle dolduracak herhangi bir işlev var mı?


 
John Smith :

İnsanların böyle bir sorusu var - bir değişkenin değerini tek boyutlu bir diziye nasıl koyacağız?

Yardıma göndermeyin - benzer bir görev için HİÇBİR örnek yoktur.


Diyelim ki belirli koşullar altında değişen bir a değişkeni var.

Bu değişkenin son 3 değerini diziye yazmam gerekiyor. mql4'te nasıl uygulanır?


int mas[3] yazıyorum;

kütle[]=a; bir değişikliğin olduğu koşuldan sonra döngü içinde,

ama mantıklı olması gerektiği halde nifiga çalışmıyor. derleyici ']' - ifade bekleniyor, parantez içindeki mas[]=a içine bilinmeyen bir ifade koymamı istiyor.

MQL4'te, döngünün her yinelemesinde diziyi değişkenin değeriyle dolduracak herhangi bir işlev var mı?


Dizinin hangi hücresine 'a' değişkeninin değerini şu şekilde yerleştireceğinizi düşünüyorsunuz: mas[]=a; ?

Seni yardıma gönderirdim, en baştan oku :)

 
John Smith :

İnsanların böyle bir sorusu var - bir değişkenin değerlerini tek boyutlu bir diziye nasıl koyabilirim?

Yardıma göndermeyin - benzer bir görev için HİÇBİR örnek yoktur.


Diyelim ki belirli koşullar altında değişen bir a değişkeni var.

Bu değişkenin son 3 değerini diziye yazmam gerekiyor. mql4'te nasıl uygulanır?


int mas[3] yazıyorum;

kütle[]=a; bir değişikliğin olduğu koşuldan sonra döngü içinde,

ama mantıklı olması gerektiği halde nifiga çalışmıyor. derleyici ']' - ifade bekleniyor, parantez içindeki mas[]=a içine bilinmeyen bir ifade koymamı istiyor.

MQL4'te, döngünün her yinelemesinde diziyi değişkenin değeriyle dolduracak herhangi bir işlev var mı?


Muhtemelen sadece kod örneklerini değil, diğer harfleri de okumanız gerekir.

İşte belgelerden bir alıntı:

Dizilerle çalışmak için işlevler grubu

En fazla dört boyutlu dizilere izin verilir. Her boyut 0 ile size_size-1 arasında indekslenir . 50 elemanlı tek boyutlu bir dizinin özel durumunda , ilk elemana erişim, son eleman - dizi[49] olan dizi[0] gibi görünecektir .

 
Alexey Viktorov :

1. mql4'ü bilmiyor.

2. Magic 222 ile bir emri kapatmak için önce magic 222 ile açmalısınız. SATIŞ emirlerinin hangi büyü ile açıldığına bakın.

3. OrderMagicNumber'dan sonra parantezler () olmalıdır

4. Durumda neden vurgulanıyor?

Cevap için teşekkürler. İlk önce bir sihirbazla açmanız gerektiği açıktır. Ve sipariş biletini kaldırdı ve mantığı yorumlarla kontrol etti. İlk açık pozisyonu kapatma şartlarına göre pozisyonların kapatıldığı ortaya çıktı. Yani, önce kapanma koşulu 1 olan bir AL veya HÜCRE açtıysanız ve ardından ikinci bir benzer pozisyon açıldı, ancak kapanma koşulu 2 ile bu kapatma koşulu yok sayılır ve diğer sihire rağmen ikinci konum yok sayılır. , ayrıca koşul 1'e göre kapalıdır.

Emri kapattıktan sonra ara verdim ama çözüm yarım çıktı: Sadece aynı tip pozisyonlar açılırsa. Örneğin, önce HÜCRE açıldı ve henüz kapanmadıysa ve o sırada BUY açılıp kapanıyorsa, başka bir HÜCRE açılıp kapanana kadar (kendi koşullarına göre) HÜCRE artık kapanma koşullarını görmez. Ve BAI aniden açılıp tekrar kapanırsa, yine kapanma koşullarını kaçırır. Ve nasıl olunur?

 
Herkese iyi günler. Sevgili programcılar, her Alert3 .Lv1;2;3 için, belirttiğiniz farklı bir sesin tetiklenmesi için, lütfen göstergeye bir ses dosyası belirleme yeteneği ile bir satır eklemeye yardımcı olun. Ben kendim kodu ve programlamayı anlamıyorum.
Dosyalar:
 
İyi günler programcılar ve MQL uzmanları! Haberlerde otomatik alım satımı durdurmak için bir danışmana mı ihtiyacınız var, belki birileri vardır? Ağda bulduklarım ya artık çalışmıyor ya da beceriksizce çalışıyor. Veya birisi urdala göstergesine göre yazabilir mi?
 
Merhaba millet. [Ticaret bağlamı meşgul] hatasından nasıl kurtulacağımı söyle
 
Rustam Bikbulatov :
Merhaba millet. [Ticaret bağlamı meşgul] hatasından nasıl kurtulacağımı söyle
 if (! IsTradeContextBusy ())   //торговый поток свободен
  {
 // здесь оформляем запрос
 // на торговую операцию

  }