Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 144

 
Ihor Herasko :

Evet elbette. Fonksiyon evrensel olarak yazılmıştır. Her tikte ona atıfta bulunursak, döngünün hesabın tüm geçmişinden geçtiğini anlarız. Ve hesap geçmişi oldukça derin olabilir (100.000'den fazla siparişin olduğu durumlarla karşılaştım). Yürütmeyi hızlandırmak için, her seferinde tüm geçmiş üzerinde bir döngü çalıştırmanız gerekmez. Bunu en başta sadece bir kez yapmak ve son işlenen siparişin indeksini hatırlamak yeterlidir. Bir dahaki sefere, yalnızca kayıtlı dizinden daha büyük bir dizine sahip siparişler arasında geçiş yapmanız gerekir. Bundan sonra, son siparişin indeksini tekrar hatırlayın, vb.

Detaylı açıklama için teşekkürler. Artık hangi yöne bakacağımı biliyorum. Ama ne yazık ki bilgim burada sona eriyor (ve kodu kendi başıma bitirmem pek mümkün değil (Bu arada, bir demo hesabında, 5 danışman iyi çalıştı, yani yeniden açılmamış olması anlamında) 5 danışman için 5 pozisyonun tamamını açarken geçerli tarih için işlemler ve gecikmeler hiç mevcut değildi, ancak şimdi neden olduğu açık, çünkü hesap geçmişi boş)
 
Vitaly Muzichenko :

Yüzen yayılma suçlamaktır.

Ben de ilk başta öyle düşündüm, ancak bu hem sabit spreadli (DAX30 gibi) çiftler için hem de tek yönlü siparişlerden oluşan ızgaralar (tek sipariş dahil) için geçerlidir - bu durumda spread yoktur (tek fiyat kârı belirler - Yalnızca Teklif Ver veya Yalnızca Sor).

Vitaly, cevabından anladım ki formüllerde bariz bir hata yok?

 
Igor Zakharov :

Ben de ilk başta öyle düşündüm, ancak bu hem sabit spreadli (DAX30 gibi) çiftler için hem de tek yönlü siparişlerden oluşan ızgaralar (tek sipariş dahil) için geçerlidir - bu durumda spread yoktur (tek fiyat kârı belirler - Yalnızca Teklif Ver veya Yalnızca Sor).

Vitaly, cevabından anladım ki formüllerde bariz bir hata yok?

İşte işçiden gelen formül:

 double poi= SymbolInfoDouble (mSymbol, SYMBOL_POINT );
 int dig=( int ) SymbolInfoInteger (mSymbol, SYMBOL_DIGITS );
 double TickValue= SymbolInfoDouble (mSymbol, SYMBOL_TRADE_TICK_VALUE );

 double BuyAwerage= 0 ,SellAwerage= 0 ;
   if (_GetP.Buy._Lots> 0 )  BuyAwerage= NormalizeDouble (bid-(_GetP.Buy._AllProfit/( TickValue*_GetP.Buy._Lots ))*poi,dig);
   if (_GetP.Sell._Lots> 0 ) SellAwerage= NormalizeDouble (ask+(_GetP.Sell._AllProfit/(TickValue*_GetP.Sell._Lots))*poi,dig);
 
Vitaly Muzichenko :

İşte işçiden gelen formül:

Bu tam bir analog. Benim formülüm biraz daha evrensel - genel durumda, kene boyutu bir noktaya eşit olmayabilir (genellikle indekslerde bulunur).

Teşekkür ederim.

 

Merhaba.

Belki birileri MT4'te aşağıdaki aksaklıkla da karşılaştı.

Bir demo hesabı için birkaç robottan oluşan bir ticaret sistemini test ediyorum.

Ancak periyodik olarak, günde 1-2 kez, robotun bir al-dur emri verdiği veya çalışmayan bir sat-durdur emri verdiği bir durum ortaya çıkıyor. Sarı renkle vurgulanır ve silmeye çalıştığınızda pencerede geçersiz parametrelerle ilgili bir yazı görünür.

Algoritmaya göre kuran robot, çalışmasına devam etmelidir, ancak bunu yalnızca yanlış sırada belirtilenden daha iyi bir fiyat için, yani yukarıda bulunan siparişler için durdurma ayarlandığında ve satın alma için yapar. sadece aşağıda yer alan siparişler için dur.

Ancak diğer tüm siparişler silinirse (neyse ki demo hesap) ve terminal bir süreliğine kapatılırsa, bu sipariş olması gerektiği gibi etkinleştirilir ve program komutuyla veya manuel olarak zamanında kapatılır.

Söyle bana, belki bu hesabın demo olmasından kaynaklanıyordur, ya da nedeni budur. farklı pencerelere bağlı birkaç robotun kullanıldığını.

Böyle bir eklenti, tüm sistemin kalitesini arttırır, çünkü terminal, tüm komutların tek bir danışman programında birleştirilmesinden çok ayrı robotlardan gelen komutlara çok daha iyi yanıt verir. Terminal tepki süresindeki kazanç çok önemlidir ve ticaret sisteminin tüm mantığını birkaç robota yayarken komut yürütme zamanlaması çok daha yüksek ve daha optimaldir.

Ancak bir veya iki siparişin dondurulmasıyla böyle bir tıkaç var.

Belki birisi böyle bir sorunla karşılaşmıştır veya yanlış çalışmanın nedenini ve bunu düzeltmenin bir yolunu önerebilir.

Şimdiden teşekkürler.

 

resimde - terminal ayarlarında olmayan yeşil.

Rakamların verdiği renkleri nerede görebilirim?

spsb

 
Pavel Ipatov :

Ancak periyodik olarak, günde 1-2 kez, robotun bir al-dur emri verdiği veya çalışmayan bir sat-durdur emri verdiği bir durum ortaya çıkıyor. Sarı renkle vurgulanır ve silmeye çalıştığınızda pencerede geçersiz parametrelerle ilgili bir yazı görünür.

Oldu ve bir kereden fazla. Benim durumumda, komisyoncu her zaman suçluydu, robot değil - destek servisine başvurursanız, zorla silerler. Bir demodan bahsediyorsak, başka bir broker ile yeni bir tane açardım.

 
Artsem :

resimde - terminal ayarlarında olmayan yeşil.

Rakamların verdiği renkleri nerede görebilirim?

spsb

uh... photoshop'ta

 
Artsem :

resimde - terminal ayarlarında olmayan yeşil.

Rakamların verdiği renkleri nerede görebilirim?

spsb

  1. Açılır oka tıklayın.
  2. Özel'i seçin.
  3. Bunun gibi bir pencere görünecektir.

Palette istenen renk seçilir, hatta sayısal değerleri manuel olarak belirleyebilirsiniz: kırmızı, yeşil, mavi.

 
Ihor Herasko :

  1. Açılır oka tıklayın.
  2. Özel'i seçin.
  3. Bunun gibi bir pencere görünecektir.

Palette istenen renk seçilir, hatta sayısal değerleri manuel olarak belirleyebilirsiniz: kırmızı, yeşil, mavi.

evet, özel düğmeyi fark etmedim.

Panelinizde rengi "sayı" olarak değiştiremiyorum.