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

 

Lütfen bana bu siteden kopyaladığım kodda, Magic'ten önce derleyicinin "bildirilmemiş tanımlayıcı" yazdığını söyleyebilir misiniz?

 for ( int pos= 0 ; pos<= OrdersTotal ()- 1 ; pos ++) 
{
 if ( OrderSelect (pos, SELECT_BY_POS)== true )
  { if (OrderSymbol()== Symbol ()&&OrderMagicNumber()==Magic &&OrderCloseTime()== 0 ) // если у Вас есть отложенные ордера и открытие
   return ;}
 else
   Print ( "OrderSelect() вернул ошибку - " , GetLastError ());
}            
 //продолжае
 
VasiliKolchanov :

Lütfen bana bu siteden kopyaladığım kodda, Magic'ten önce derleyicinin "bildirilmemiş tanımlayıcı" yazdığını söyleyebilir misiniz?

beyan edilmediği için olmalı

baştan ilan et. veya bir danışman parametresi veya bir sabit .. veya bir değişken olarak, peki, en azından bir şekilde .. varlık var olmalı :-)

input int Magic=5566; // это чтобы он был в параметрах и можно поменять

// или const int Magic = 8899;

 
VasiliKolchanov :

Lütfen bana bu siteden kopyaladığım kodda, Magic'ten önce derleyicinin "bildirilmemiş tanımlayıcı" yazdığını söyleyebilir misiniz?

Sihirli tanımlayıcı kullanıldığından, türü (ve sırasıyla değeri) hiçbir yerde açıklanmaz. Bu ada sahip bir değişken (veya sabit) tanımlamanız ve ona bir değer atamanız gerekir.

 
VasiliKolchanov :

Lütfen bana bu siteden kopyaladığım kodda, Magic'ten önce derleyicinin "bildirilmemiş tanımlayıcı" yazdığını söyleyebilir misiniz?

Kodunuzun hiçbir yerinde bildirilmediği için - bu çok açık.
 
Artyom Trishkin :
Kodunuzun hiçbir yerinde bildirilmediği için - bu çok açık.
Herkese teşekkürler !
 

Çocuklar, nasıl çözeceğimi ve nereden başlayacağımı söyleyin!

Örneğin: Çok fazla 0.01 olan 15 sipariş var. Bir noktada 0,07 hacimli bir anlaşmayı/anlaşmaları kapatmak gerekir.

Soru, bir OrderClose(..) ile 7 siparişin veya 0.07 lotluk bir hacmin nasıl kapatılacağıdır.

Hemen 0,07 koyarsanız, 0,01 hacimli işlemleri görmez.

Programlamada yeniyseniz

 
Rustam Bikbulatov :

Çocuklar, nasıl çözeceğimi ve nereden başlayacağımı söyleyin!

Örneğin: Çok fazla 0.01 olan 15 sipariş var. Bir noktada 0,07 hacimli bir anlaşmayı/anlaşmaları kapatmak gerekir.

Soru, bir OrderClose(..) ile 7 siparişin veya 0.07 lotluk bir hacmin nasıl kapatılacağıdır.

Hemen 0,07 koyarsanız, 0,01 hacimli işlemleri görmez.

Programlamada yeniyseniz

Tek bir siparişle kapatamazsınız. Sadece bir sipariş seçimi yapabilir ve her bir siparişi sırayla silebilirsiniz. Ayrıca, daha küçük hacimli bir siparişi sildiyseniz, yine de açık bir hacminiz olur. Kalan kapanmamış hacmimizle karşılaştırıyoruz. 0.07'lik hacim kendini tüketene kadar kapatıyoruz. Tek yol.

 
Rustam Bikbulatov :

Çocuklar, nasıl çözeceğimi ve nereden başlayacağımı söyleyin!

Örneğin: Çok fazla 0.01 olan 15 sipariş var. Bir noktada 0,07 hacimli bir anlaşmayı/anlaşmaları kapatmak gerekir.

Soru, bir OrderClose(..) ile 7 siparişin veya 0.07 lotluk bir hacmin nasıl kapatılacağıdır.

Hemen 0,07 koyarsanız, 0,01 hacimli işlemleri görmez.

Programlamada yeniyseniz

Broker karşı kapanış kullanımına izin veriyorsa, 0.07 hacimli bir ters emir açabilir, böylece bu hacim için kar / zarar fiyatını sabitleyebilirsiniz. Peki, o zaman hala 7 kapatma işlemi gerçekleştirmeniz gerekiyor, kapatmanın tersi (OrderCloseBy() işlevi). Bu yaklaşımla, alım satım işlemleri bir tane daha elde edilir. Avantajı, yedi siparişin hepsinin aynı fiyattan kapatılmasıdır.

 

Merhaba.

Lütfen tavsiye verin, esas olarak danışmanın hızı ve muhtemelen yazmanın güvenilirliği ve doğruluğu ile ilgilidir.

Her tikte açık ve bekleyen emirlere erişmek ve gerekirse değiştirmekten bahsediyoruz.

OrderSelect ile ilgili yardım şöyle diyor: " SELECT_BY_POS parametresini kullanarak sıralı olarakemir seçerken , işlem sunucusundan geldiği sıraya göre bilgi verilir. "

Ve buradan soru ortaya çıkıyor, belki de türü, giriş fiyatını ve örneğin benzersiz bir sipariş yorumunu saklamak için bir dizi oluşturun. Her tikte diziyi gözden geçirin ve gerekirse OrderSelect işlevini çağırın ve benzersiz bir sipariş yorumuna dayalı olarak bir seçim yapın?

 
Decromor :

Merhaba.

Lütfen tavsiye verin, esas olarak danışmanın hızı ve muhtemelen yazmanın güvenilirliği ve doğruluğu ile ilgilidir.

Her tikte açık ve bekleyen emirlere erişmek ve gerekirse bunları değiştirmekten bahsediyoruz.

OrderSelect ile ilgili yardım şöyle diyor: " SELECT_BY_POS parametresini kullanarak sıralı olarakemir seçerken , işlem sunucusundan geldiği sıraya göre bilgi verilir. "

Ve buradan soru ortaya çıkıyor, belki de türü, giriş fiyatını ve örneğin benzersiz bir sipariş yorumunu saklamak için bir dizi oluşturun. Her tikte diziyi gözden geçirin ve gerekirse OrderSelect işlevini çağırın ve benzersiz bir sipariş yorumuna dayalı olarak bir seçim yapın?

OrderSelect() terminal içinde yürütülür, sunucuya herhangi bir istek yapılmaz. Bu nedenle, her işarette sipariş listesine erişmekte yanlış bir şey yoktur. Çoğu danışman bunu yapar.

Ancak diziyle ilgili soru zaten programın mimarisine atıfta bulunuyor. Çok sayıda siparişle çalışan karmaşık bir Uzman Danışman söz konusu olduğunda, bu basitçe gereklidir. EA basit mantıkla tek bir sıra ile çalışırsa, dizi gereksiz hale gelir.

Sadece, bir dizi emir olsa bile, OrderSelect()'i çağırmadan yapamayacağınız gerçeğini açıklığa kavuşturmaya değer. Sonuçta, her tikte bu düzenin hala var olup olmadığını kontrol etmek gerekir. Ayrıca ayarlarını değiştirebilir.