Hatalar, hatalar, sorular - sayfa 529

 

Sorum çoktan uçup gitti.)) Tekrar ediyorum.

tol64:
Uzman Danışmanlar nedense 2001 ve 2006 yılları arasında test edilmemektedir. Euro ve pound'a baktım. Terminali kapattı, geçmişi sildi. Yeniden yüklendi. Önemli değil. 2001 anlaşmaları açılmadan önce. Ve 2001'den 2006'ya kadar, sinyaller varsa, bir geçiş. Niye ya?

---
Ek bilgi. Bu, yalnızca test cihazı ayarlarında D1 zaman çerçevesi seçildiğinde gerçekleşir. Uzman ayarlarında D1 zaman çerçevesini seçerseniz ve test cihazının daha küçük bir TF'si varsa, boşluk olmaz. Bu bir bug mı yoksa bunun bir açıklaması var mı?

Benzer bir sorunla karşılaşan var mı?
 
Yedelkin :
Yani, yazar tarafından verilen koda bakın. Ve bu durumda PositionGetDouble denir :)

Evet, prensipte pozisyon olmadığını ve belirli bir pozisyonun seçiminin başarısızlıkla sonuçlandığını belirledikten sonra verileri alıyoruz…

Bir şekilde garip.

 
papaklass :

Vedelkin'e

Tekrar. Yardım, yeni konum verilerinin alındığından emin olmak için, talep edilmeden hemen önce PositionSelect ( Symbol() ) işlevinin çağrılmasının tavsiye edildiğini söylüyor. Verdiğim kod bu iddiayı çürütüyor. Mantıksal bir bakış açısından, kodun kendisi saçmadır, ancak yardımdaki ifadenin yanlışlığını vurgular.

Şimdi:

Söve, bir pozisyonun yokluğunda, PositionGetDouble (POSITION_VOLUME) fonksiyonunun sıfır döndürmesi gerektiğidir. Herşey. BENİM NACİZANE FİKRİME GÖRE.

Hayır, yanılıyorsun....

Volume=0 ile (PositionSelect() ) konumu varsa sıfır döndürün.

Yoksa pozisyon yoksa pozisyonun iade edilmesi ve açılış fiyatının = 0 olması gerektiğini mi düşünüyorsunuz?!?

 
papaklass :

Ve söve, bir pozisyonun yokluğunda, PositionGetDouble (POSITION_VOLUME) fonksiyonunun sıfır döndürmesi gerektiğidir.

:) "Söve", açık bir pozisyonun yokluğunda, verilerini talep etmenin ve bu verilere dayanarak daha fazla hesaplama yapmanın bir anlamı olmamasıdır.

..Diyelim ki pozisyonun eksik olduğundan eminsiniz. Pozisyon olmadığı zaten biliniyorsa neden bu konuda veri isteyesiniz (ek adımlar atın)? Kodu biraz yeniden yazmak daha kolay.

papaklas :

Tekrar. Yardım, yeni konum verilerinin alındığından emin olmak için, talep edilmeden hemen önce PositionSelect ( Symbol() ) işlevinin çağrılmasının tavsiye edildiğini söylüyor. Verdiğim kod bu iddiayı çürütüyor. Mantıksal bir bakış açısından, kodun kendisi saçmadır, ancak yardımdaki ifadenin yanlışlığını vurgular.

Yukarıdaki kod yalnızca yazarın "yeni verilerin elde edilmesini sağlamak için" PositionSelect() işlevini çağırdığını söylüyor, işlev başarısızlığını bildiriyor, ancak yazar yeni konum verileri talep etmeye devam ediyor. Doğru şekilde?

Ama sonra şu oluyor:

  • (a) PositionSelect işlevinin başarısız olması, yeni konum verilerinin (yazarın istediği gibi) ortama kopyalanmadığı anlamına gelir;
  • ve (b) PositionGetDouble, PositionGetInteger ve PositionGetString'e yapılan sonraki çağrılar, PositionSelect işlevi başarılı olduğunda bir süre önce kopyalanan verileri döndürür.

Başka bir deyişle, geliştiriciler, başarılı olursa yeni konum verileriyle çalışmaya devam etmek için bir işlevi çağırmayı önerir ve işlev false döndürürse kesinlikle hiçbir şey vaat etmez. ...yanlış alındığında, geliştiriciler biraz farklı prosedürler önerir :)

2. Ayrıca, kodun yeni sürümünü göz önünde bulundurun:

 if ( PositionSelect ( Symbol ()))
   { //---еще одно непосредственное обращение
       //---например, расчитываем объем позиции при доливки
   } 
else 
   {
       //---например, расчитываем объем позиции при отсутствии позиции
   }

Burada, PositionSelect() fonksiyonunun başarısız bir şekilde tamamlanması durumunda, derhal "pozisyonun yokluğunda pozisyonun hacminin hesaplanması" önerilmektedir. Ancak, PositionSelect() işlevinin otomatik olarak başarısız olmasının, hiçbir konumun olmadığı anlamına geldiğini kim söyledi? PositionSelect() işlevinin başarısız olmasının nedenleri farklı olabilir.

 

Geliştiriciye geri dönmek istiyorum ...

Çizim yaparak, belirtilen fiyata ulaşıldığında bekleyen emirlerin silinebilmesinin hayati önem taşıdığını söylemek istiyorum. Böyle bir fırsat olmadan, bir MT4 tüccarı olarak benim için çok daha ilginç. Lütfen bize bu yönde gelecek planlarınızı söyleyin. Teşekkür ederim.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
Dosyalar:
zhq04b2p01.png  16 kb
 

Test cihazıyla çalışırken, terminal çok sık çöküyor.

 
tol64 :

Test cihazıyla çalışırken, terminal çok sık çöküyor.

Terminal kilitlenme raporları, geliştiriciler tarafından otomatik modda düzenli olarak alınmaktadır. Ancak dilerseniz, tüm detayları belirttiğiniz ve günlükleri eklediğiniz SD'ye bir başvuru gönderebilirsiniz.
 
tol64 :

Test cihazıyla çalışırken, terminal çok sık çöküyor.

Durumunuzu Hizmet Masası'nda ayrıntılı olarak açıklayın;

  • test sırasında uzmanın giriş parametreleri
  • göstergeyi takın (düzeltmeden sonra gösterge kaldırılacaktır).
 
Interesting :
Terminal kilitlenme raporları, geliştiriciler tarafından otomatik modda düzenli olarak alınmaktadır. Ancak dilerseniz, tüm detayları belirttiğiniz ve günlükleri eklediğiniz SD'ye bir başvuru gönderebilirsiniz.
Yani, Ayrıntılar >> bölümündeki bilgiler, İnternet açıksa geliştiricilere otomatik olarak gönderilir? Eğer öyleyse, o zaman bu harika. Her şey otomatik olmalı.)))
 
ALozovoy :

Durumunuzu Hizmet Masası'nda ayrıntılı olarak açıklayın;

  • test sırasında uzman giriş parametreleri
  • göstergeyi takın (düzeltmeden sonra gösterge kaldırılacaktır).

Tamam, sonra yapacağım.