Hatalar, hatalar, sorular - sayfa 662

 

Güzel gün!

Lütfen açık bir pozisyonun "donma" durumunda olup olmadığını belirlemesi gereken fonksiyonun doğruluğunu kontrol edin.

Özellikle, Sor/Bid ile aşırıya mı kaçtım?

 bool IsPositionFrozen( const string Symbol ) {
   if (! PositionSelect ( Symbol )) return false ;
   bool FreezTP = true , FreezSL = true ;
   double FreezLevel = SymbolInfoInteger ( Symbol , SYMBOL_TRADE_FREEZE_LEVEL ) * SymbolInfoDouble ( Symbol , SYMBOL_POINT );
   switch ( PositionGetInteger ( POSITION_TYPE )) {
     case POSITION_TYPE_BUY :
         if (( NormalizeDouble ( PositionGetDouble ( POSITION_TP ), ( int ) SymbolInfoInteger ( Symbol , SYMBOL_DIGITS )) == 0 ) ||
            ( PositionGetDouble ( POSITION_TP ) - SymbolInfoDouble ( Symbol , SYMBOL_BID ) > FreezLevel))
          FreezTP = false ;
         if (( NormalizeDouble ( PositionGetDouble ( POSITION_SL ), ( int ) SymbolInfoInteger ( Symbol , SYMBOL_DIGITS )) == 0 ) ||
            ( SymbolInfoDouble ( Symbol , SYMBOL_BID ) - PositionGetDouble ( POSITION_SL ) > FreezLevel))
          FreezSL = false ;
         break ;
       case POSITION_TYPE_SELL :
         if (( NormalizeDouble ( PositionGetDouble ( POSITION_TP ), ( int ) SymbolInfoInteger ( Symbol , SYMBOL_DIGITS )) == 0 ) ||
            ( SymbolInfoDouble ( Symbol , SYMBOL_ASK ) - PositionGetDouble ( POSITION_TP ) > FreezLevel))
          FreezTP = false ;
         if (( NormalizeDouble ( PositionGetDouble ( POSITION_SL ), ( int ) SymbolInfoInteger ( Symbol , SYMBOL_DIGITS )) == 0 ) ||
            ( PositionGetDouble ( POSITION_SL ) - SymbolInfoDouble ( Symbol , SYMBOL_ASK ) > FreezLevel))
          FreezSL = false ;
       break ;
     default : return false ;
  }
   if (FreezTP || FreezSL) return true ;
   else return false ;
}
 
tol64 :

Hayır, sunucuda her şey yolunda gitti ( MQ demo hesabı). Yani, bağlantı eksikliğim sırasında duraklar çalıştı. Ama bağlandığımda market çoktan kapanmıştı. Piyasa İzleme penceresi, bağlantım kesilmeden önceki son tik saatini kaydetti. İşlemlerin tarihçesini talep ederken , ikinci değer olarak TimeCurrent () belirterek tüm geçmişi almadım. TimeCurrent () için Yardım şunları söylese de:

Yani anladığım kadarı ile bu fonksiyon, eğer bağlantı varsa, piyasa genel bakış penceresindeki enstrümanlardan birinin bir kotasyonunun sunucudan son gelişinin değerini, bağlantı kopmuş olsa bile döndürmesi gerekir. ve bağlantı, piyasa zaten kapalıyken gerçekleşti. Benim durumumda bu olmadı ve sırasıyla tüm hikayeyi alamadım. Piyasa kapalıyken Market Watch'ta saatin sunucu ile senkronize edilip edilmemesi gerektiğini bilmiyorum, Yardım'da bahsedilmiyor.

Bu durumda, tüm geçmişe ihtiyacınız varsa, bir gün öncesinden daha büyük bir sayı ekleyebilirsiniz ve bu, tüm işlemlerin seçileceğini garanti eder. :)

Ve test cihazında, HistoryDealsTotal () işlevinde bir hata var ve Görselleştirme modunda kendini gösteriyor. Orada zaman doğru bir şekilde modellenmiştir. Bazı durumlarda sadece bir koltuk değneği yardımcı olur.


Evet, iletişimde bir kopukluk olduğu özünü hatırladım. Görünüşe göre terminal, yalnızca sembole bir onay işareti geldiğinde ve hafta sonu gelmediğinde uzlaşmaya ve geçmişi sürdürmeye başlıyor. Elbette, çizelgeleri manuel olarak güncelleyebilirsiniz, ardından en son sunucu saati de güncellenecektir. Ve makinedeyse, bağlantı kopmasını düzeltin ve hafta sonu geri yüklenirse, geçmişi kontrol etme ve yükleme işlevini CheckLoadHistory() çalıştırın. Bir zamanlayıcı kullanın.

Genel olarak, bazen terminalde "şaşırtıcı" şeyler olur. Dün, dizüstü bilgisayar telefonda modem olarak çalıştı. Çoklu para birimi Uzman Danışmanı, izleme modunda çalıştı (otomatik ticaret devre dışı bırakıldı). Telefonla 15 dakika çıktı, döndü, bağlantıyı kurdu. Terminal, sunucuyla bağlantıyı yeniden kurdu. Kaçırılan alıntıları indirmek çocuk oyuncağı gibi görünüyor. Ama terminal öfkeyle hikayeyi yaymaya başladı - başka ne var? Aynı zamanda her şey dondu: piyasaya genel bakış, ticaret sekmesi, çizelgeler. Telefon 3G'yi desteklemiyor, ancak EDGE üzerinde çalışıyor, bu nedenle prosedür ertelendi. 20 MB'a geldiğinde, bu durumda manuel olarak bir şeyler takas etmenin mümkün olup olmadığını kontrol etmeye karar verdim? Pozisyonu kapatmaya çalıştım, iletişim eksikliği nedeniyle reddedildi ve indirme durduruldu. Bağlantı geri yüklendikten sonra her şey yolunda gitti. İşte terminal günlüğünden bir alıntı:

Tamam 0 Ağ 09:45:09 '709704': Singapur Erişim Noktası aracılığıyla MetaQuotes-Demo'da yetkilendirildi
IR 0 Ağı 09:45:09 '709704': 2012.03.04 06:10:12 tarihinde 77.35.11.181'den önceki başarılı yetkilendirme gerçekleştirildi
KP 0 Ağ 09:45:12 '709704': MetaQuotes Software Corp. ile senkronize terminal
GI 0 Uzmanları 09:45:12 uzman Fraktallar_ (EURUSD,H1) başarıyla yüklendi
OI 0 İşlemleri 10:43:29 '709704' : anlaşma #8671794 0,10 GBPJPY sat 129.268'den yapıldı (sipariş #9494984'e göre) // Bu anlaşma başka bir bilgisayarda çalışan bir EA tarafından yapıldı
RM 0 İşlemler 10:51:22 '709704' : anlaşma #8671842 0,10 USDJPY'yi 81.586'dan sattı (sipariş #9495037'ye göre) // Benzer
KL 1 Ağı 12:00:38 '709704': MetaQuotes-Demo bağlantısı kesildi // Ayrıldı
IE 0 Ağı 12:16:15 '709704': Erişim Noktası Hong Kong aracılığıyla MetaQuotes-Demo'da yetkilendirildi // Geldi
IS 0 Ağı 12:16:15 '709704': 2012.03.04 23:45:03 tarihinde 80.83.239.67'den önceki başarılı yetkilendirme gerçekleştirildi
OS 0 Ağı 12:16:18 '709704': MetaQuotes Software Corp. ile senkronize terminal // İletişim geri yüklendi
IQ 0 İşlemler 12:18:12 '709704' : anlaşma #8672388 1.44540'tan 0.10 GBPCHF sat tamamlandı (sipariş #9495596) // Bu anlaşma başka bir bilgisayarda çalışan bir EA tarafından yapıldı
DF 0 İşlemler 12:35:37 '709704' : 0.83422'den anında 0.10 EURGBP satın al // Pozisyonu manuel olarak kapatmaya çalışırken, geçmiş daha önce indiriliyordu
IN 2 İşlem 12:35:44 '709704' : 0,83422'den 0,10 EURGBP anında satın alma başarısız oldu [Ağ bağlantısının olmaması nedeniyle istek reddedildi] // Başarısız
JP 1 Ağı 12:35:44 '709704': MetaQuotes-Demo bağlantısı kesildi
EI 0 Ağı 12:36:00 '709704': Erişim Noktası Hong Kong aracılığıyla MetaQuotes-Demo'da yetkilendirildi
IG 0 Ağı 12:36:00 '709704': 2012.03.05 02:16:12'de 80.83.239.67'den önceki başarılı yetkilendirme gerçekleştirildi
PG 0 Ağ 12:36:08 '709704': MetaQuotes Software Corp. ile senkronize terminal // İletişim geri yüklendi, ardından normal çalışma
HANIM

 
Günlükten, moladan önce terminalin bir sunucu ile çalıştığı ve aradan sonra diğerine bağlanıp geçmişi indirmeye başladığı görülebilir. Farklı sunucular arasındaki geçmişin senkronize olmadığı sonucuna varılabilir.
 
Valmars :

Evet, iletişimde bir kopukluk olduğu özünü hatırladım. Görünüşe göre terminal , yalnızca enstrümana bir onay işareti geldiğinde ve hafta sonu gelmediğinde uzlaşmaya ve tarihin devam etmesine başlıyor. Elbette, çizelgeleri manuel olarak güncelleyebilirsiniz, ardından en son sunucu saati de güncellenecektir. Ve makinedeyse, bağlantı kopmasını düzeltin ve hafta sonu geri yüklenirse, geçmişi kontrol etme ve yükleme işlevini CheckLoadHistory() çalıştırın. Bir zamanlayıcı kullanın.

...

Evet, bir kene geldiğinde saat güncelleniyor gibi görünüyor, ancak tarih zaten oradaydı ve görsel olarak görüntülenebiliyordu. Çözümler için teşekkürler. Çözümleri denemek için hafta sonundan önce benzer bir durumu yeniden oluşturmaya çalışacağım.
 

EA'yı diğer koşullarda test etmek için AlpariFS-MT5 sunucusuna bağlandı. Yürütme türü başlangıçta EXECUTION_MARKET idi - Emirlerin piyasada yürütülmesi . İşlem panellerini kullanarak başarılı bir şekilde pozisyon açtı/kapattı. Sonra , Pazar Derinliği'nin grafiğin bağlam menüsünde mevcut olduğunu keşfettim. Açtım ve Al/Sat işlemlerinin yapılabildiğini öğrendim. Deneme amaçlı alım yaptım ve aynı yerde Piyasa Derinliği'ndeki pozisyonu kapattım. Bundan sonra, hesap yürütme türü EXECUTION_EXCHANGE - Exchange yürütme olarak değiştirildi. Bu, MQL5 kullanılarak belirlenir ve ayrıca Sipariş penceresinin ( F9 ) açılır listesinde yalnızca iki seçenek vardır: Exchange Yürütme ve Bekleyen Sipariş . Tekrar oturum açmaya veya terminali yeniden başlatmaya çalışmak sorunu çözmedi. Ve şimdi demo hesabındaki yürütme türü EXECUTION_EXCHANGE olarak kalıyor .

Alpari desteğiyle iletişime geçtim, sorunu anlattım ve açıkladım:

//---

Anadolu | 17:55
Şu anda MT5 demo hesaplarında bir EXECUTION_MARKET seçeneği olması gerektiğini doğru anlıyor muyum?

Sergey | 17:56
Evet bu doğru.

//---

Bu bir bug gibi görünüyor.

 

Yardımda bazı tanımlayıcıların açıklaması yok:

ORDER_FILLING_FOK , ORDER_FILLING_IOC ve ORDER_FILLING_RETURN var, ancak ORDER_FILLING_AON ve ORDER_FILLING_CANCEL yok, ancak hepsi aynı açıklama listesine yol açıyor.

 
tol64 : ORDER_FILLING_AON ve ORDER_FILLING_CANCEL yapmaz, ancak hepsi aynı açıklama listesine yol açar.
Zaten kaldırıldılar, onları da indekslerden çıkaracağız.
 
Rosh :
Zaten kaldırıldılar, endekslerden de çıkaracağız.

Teşekkür ederim.

//---

Böyle bir soru ortaya çıktı. Yarışma sunucusu şu anda yarışmadakiyle aynı limitlere sahip testler için mevcut mu ( Volume Limit 15 lot / Volume Max 5 lot )? Eski hesaba bağlanmaya çalıştım ama sunucuya bağlantı kurulmadı. Metatrader 5'in alım satım için uygun olduğu tüm sunucuları inceledim, ancak hiçbir yerde toplam hacim ( Volume Limit ) için bir sınır bulamadım, ancak test etmem gerekiyor. Veya prensipte, soruyu rekabetçi değerlere sahip bir örnek kullanarak cevaplamak yeterli olacaktır:

Açık pozisyon var ve hacmi 14 lot . 2 lot bekleyen sipariş vermeye çalışırsam, istek reddedilir mi? Veya emir belirtilen hacimde verilecek, ancak sonunda pozisyonun aynı hacimde kalması şartıyla ( 1 lot) kısmen yerine getirilecektir ( 14 lot ).

Ve tam tersi. 14 lot bekleyen bir sipariş var. 2 lot hacimli bir pozisyon açılmaya çalışıldığında talep reddedilir mi?

 

Şansımı burada deneyeceğim yoksa "Çaydanlıklar"da sessizlik olur...

Lütfen açıklayın, lütfen: https://www.mql5.com/ru/forum/3775/page113#comment_160125 . Ayrıca gerekli hesaplamaların yazılımla hesaplanmasıyla da ilgileniyorum.

 

Güzel gün.

Yerleşik iADX göstergesinin değerine nasıl başvurulur? Yani, belirtilen çubuk sayısı değerine geri mi? mql4'te bu, shift parametresi ayarlanarak yapıldı.

Şimdiden teşekkürler.

Документация по MQL5: Технические индикаторы / iADX
Документация по MQL5: Технические индикаторы / iADX
  • www.mql5.com
Технические индикаторы / iADX - Документация по MQL5