Hatalar, hatalar, sorular - sayfa 445

 
komposter :

Partinin normalleşmesinin peşinde

Beyler, neden teori üretiyorsunuz?

Kişnemek ve kafada paslanmamak için.

Her şey ölçülü olmalı. Sürümüm, farklı brokerler, hesap türleri , araçlar ile 5 yıldan fazla bir süredir gerçek para üzerinde çalışıyor - hiçbir zaman bir hata olmadı.
Ve olmayacak. Kusura bakmayın ciddi değiliz.
 
komposter :

Adım, min'in katı olmalıdır. çok güzelsin.

Neden böyle bir güven? Alıştırma - Anlıyorum, ancak motorun bir sınırlaması değil.
Tarafların iddiaları açıktır. Her durumda, nezaketinizi içtenlikle takdir ediyorum. :)

Kuğu :

Baktım, şampiyonluk hesaplarında tüm enstrümanlar aynı anda işlem görüyor. Kayıt olmak)

Evet, kayıt oldum. İşte bu hatayı alıyorum.

Kuğu :

şunları da deneyebilirsiniz:

if( cari fiyat == 0.0) getiri;

Fikir için teşekkürler! Bu seçeneği denemek zorunda kalacak. :)

 

voix_kas :

Evet, kayıt oldum. İşte bu hatayı alıyorum.

GBPCHF 2011.01.03 için 00:00'da bir dakika çubuğu vardır. Servis masası ile iletişime geçtiniz mi?
 
Swan :
GBPCHF 2011.01.03 için 00:00'da bir dakika çubuğu vardır. Servis masası ile iletişime geçtiniz mi?

SD ile iletişime geçmedim.

Burada sonuçta burada ne situevina. Çoklu para birimi danışmanı yazıyorum. Eurobaks grafiğine attım ve danışmana parametre olarak iletilen tüm geçerli döviz çiftlerini takip etmeye çalıştım.

Metodoloji/belge eksikliği var. İşte örnek olarak bazı sorular:

1. Fiyat neden sıfır olabilir? Sonuçta, bu zamana kadar (2011.01.03 00:00:00) bilinen son fiyat (hem Bid hem de Ask) hala geçerli miydi? Terminal ona hangi prensipleri veriyor?

2. Bir teklif oturumu var. Ticaretten temel olarak nasıl farklıdır? İkinci dönemde ticaret yapmanın mümkün olduğunu varsaymak mantıklıdır. Ve eğer ilk (teklif) seans sırasında işlem yapmak mümkün değilse, fiyat tekliflerindeki değişiklik nereden geliyor? Sonuçta, ikincisi, böyle bir yorum için kusura bakmayın, "arz ve talep dengesizliği" nedeniyle değişiyor.

3. Diyelim ki bir döviz çifti için bir Onay aldık. Aynı olayda, başka bir çiftin durumunu "görmeye" çalışıyoruz. Başka bir çift için gelen son teklifin hala geçerli olduğunun garantisi nerede? Bir alıntının ömrü nedir? Gördüğüm en mantıklı açıklama, sipariş defterindeki parti hacminin eşzamanlı kontrolü ile son teklifi kontrol etmektir. Onlar. anladığım kadarıyla: eurusd'un gelmesi için N alıntısı. Bir sebepten dolayı geliyor, ancak bu alıntıda belirli bir hacim için bir seçenek yer alıyor. Almak/satmak isteyenler bu pastayı kapıyor. Bir noktada (turta) biter ve bu alıntı "yaşamayı durdurur". Ayrıca, terminal bir sonraki teklifi verir (daha az çekici). Ve hiç fiyat teklifi yoksa (kimse döviz satmak / satın almak istemez)? O zaman fiyat sıfır mı?

Genel olarak borsa/forex konusunda uzman değilim.

Sorularıma detaylı cevap verebilecek olan olursa sevinirim. Gerçekten nasıl olduğuna ve MT5 terminalinde belirli durumların nasıl sunulduğuna ne dersiniz?

 
voix_kas :

SD ile iletişime geçmedim.

Burada sonuçta burada ne situevina. Çok para birimli bir danışman yazıyorum. Eurobaks grafiğine attım ve danışmana parametre olarak iletilen tüm geçerli döviz çiftlerini takip etmeye çalıştım.

Metodoloji/belge eksikliği var. İşte örnek olarak bazı sorular:

1. Fiyat neden sıfır olabilir? Sonuçta, bu zamana kadar (2011.01.03 00:00:00) bilinen son fiyat (hem Bid hem de Ask) hala geçerli miydi? Terminal ona hangi prensipleri veriyor?

2. Bir teklif oturumu var. Ticaretten temel olarak nasıl farklıdır? İkinci dönemde ticaret yapmanın mümkün olduğunu varsaymak mantıklıdır. Ve eğer ilk (teklif) seans sırasında işlem yapmak mümkün değilse, fiyat tekliflerindeki değişiklik nereden geliyor? Sonuçta, ikincisi, böyle bir yorum için kusura bakmayın, "arz ve talep dengesizliği" nedeniyle değişiyor.

3. Diyelim ki bir döviz çifti için bir Onay aldık. Aynı olayda, başka bir çiftin durumunu "görmeye" çalışıyoruz. Başka bir çift için gelen son teklifin hala geçerli olduğunun garantisi nerede? Bir alıntının ömrü nedir? En mantıklı açıklamayı, sipariş defterindeki parti hacminin aynı anda kontrol edilmesiyle son teklifi kontrol etmek olarak görüyorum. Onlar. anladığım kadarıyla: eurusd'un gelmesi için N alıntısı. Bir sebepten dolayı geliyor, ancak bu alıntıda belirli bir hacim için bir seçenek yer alıyor. Almak/satmak isteyenler bu pastayı kapıyor. Bir noktada, (turta) biter ve bu alıntı "yaşamayı durdurur". Ayrıca, terminal bir sonraki teklifi verir (daha az çekici). Ve hiç fiyat teklifi yoksa (kimse döviz satmak / satın almak istemez)? O zaman fiyat sıfır mı?

Genel olarak borsa/forex konusunda uzman değilim.

Sorularıma detaylı cevap verebilecek olan olursa sevinirim. Gerçekten nasıl olduğuna ve MT5 terminalinde belirli durumların nasıl sunulduğuna ne dersiniz?

Noktaları geçelim. Expert Advisor çoklu para birimidir, yani buna göre davranması gerekir.

1. Temel olası sorunu 0 fiyat elde etme sorununu ortadan kaldıralım - Alım satım işleminin seçici olarak seçilmesi gereken sembollerin listesi mi (yani, MarketWatch'ta gerekli sembollerin mevcudiyeti konusunda endişelenmenize gerek yok)?

2. Geliştiriciler, alım satım ve fiyat oturumları hakkında zaten yorum yaptı (özellikle, burada Rashid Umarov tarafından yorumlandı). Tekliflerin olduğu ancak ticaret yapmanın imkansız olduğu duruma gelince, bu tamamen normal bir durumdur (özellikle borsa için). Ayrıca, alım satım seansı sırasında fiyatların güncelleneceğini kimse garanti etmez.

3. Camın hesabında - ve Forex piyasasında nereden bir bardak alabilirim (önemli olan içine ne koyacağımdır)? Sorular pahasına, cevaplar şuna benzer (her şey yolundaysa ve sunucuyla bir bağlantı varsa):

a) "Son Teklif" (son işaret bilgisi), bir işaretin oluştuğu andan yeni bir işaretin oluştuğu ana kadar geçerlidir. Terminalde, son fiyat teklifinin alınma zamanı "Piyasa İzleme" bölümünde görüntülenebilir.

b) Yalnızca çok para birimli bir Uzman Danışmanın OnTick() işleyicisinde keneler hakkında bilgi toplarsanız, hiç kimse diğer çiftler için bir düzine kenenin ana çiftin keneleri arasından geçmeyeceğini garanti edemez. Çifte ve üzerinde işlem yapma faaliyetine bağlı olarak, keneler arasında bir saniyeden birkaç dakikaya kadar sürebilir.

Tabii ki Forex piyasası için (özellikle EURUSD çifti için) bu çok önemli değil ama bunu hatırlamanız ve EA mantığında dikkate almanız gerekiyor.

c) MqlTick yapısını analiz ederek ve son teklifin zamanını belirli bir değerle karşılaştırarak son teklifin alınma zamanını programlı olarak belirleyebilir, teklifin ne kadar alakalı olduğunu kolayca belirleyebilirsiniz.

 struct MqlTick
  {
   datetime      time;           // Время последнего обновления цен
   double        bid;        // Текущая цена Bid
   double        ask;        // Текущая цена Ask
   double        last;       // Текущая цена последней сделки (Last)
   ulong         volume;     // Объем для текущей цены Last
  };

d) Yukarıda ima ettiğim gibi, sunucu ile bağlantı durumunu izlemeli ve mümkünse sadece OnTick()'te değil, aynı zamanda OnTimer()'da da alıntıları kontrol etmeli/almalısınız.

 

Karşı taraftan gidelim. Terminalde fiyat (alış/satış) hangi durumlarda sıfır değerler alabilir?

Sonraki ikinci soru. Bu enstrüman için son teklifin 2 saniye/dakika/saat önce geldiğini öğrendik. İşlem seansı kapanmadı. "Fiyat yok" hatası nasıl alınmaz?

Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
voix_kas :

Karşı taraftan gidelim. Terminalde fiyat (alış/satış) hangi durumlarda sıfır değerler alabilir?

Sonraki ikinci soru. Bu enstrüman için son alıntının 2 saniye/dakika/saat önce geldiğini öğrendik. İşlem seansı kapanmadı. "Fiyat yok" hatası nasıl alınmaz?

Sıfır fiyat aldığınızda GetLastError'a sordunuz mu?
 
stringo :
Sıfır fiyat aldığınızda GetLastError'a sordunuz mu?

Hata kodu: 4756. Ekranda görülüyor.

Üstelik. İşte aynı hata. Piyasa saatinin bir fiyatın varlığını göstermesine ve enstrümanın loglarda senkronize olmasına rağmen.

 
voix_kas :

Hata kodu: 4756. Ekranda görülüyor.

Üstelik. İşte aynı hata. Piyasa saatinin bir fiyatın varlığını göstermesine ve enstrümanın loglarda senkronize olmasına rağmen.

"Fiyat yok..."dan sonra hata kodu gerekiyor, "başarısız..." sonrası değil
 
uncleVic :
"Fiyat yok..."dan sonra hata kodu gerekiyor, "başarısız..." sonrası değil
  ...
   // Формирование торгового приказа.
   MqlTradeResult TradeResult;
   MqlTradeRequest TradeRequest;

  TradeRequest.action = TRADE_ACTION_DEAL ;
  TradeRequest.symbol = Instrumet;
  TradeRequest.volume = NormalizeDouble (Volume, 8 );
  TradeRequest.price = SymbolInfoDouble (Instrumet, SYMBOL_ASK );
  TradeRequest.sl = 0 ;
  TradeRequest.tp = 0 ;
  TradeRequest.deviation = Deviation;
  TradeRequest.type = ORDER_TYPE_BUY ;
  TradeRequest.type_filling = TypeFilling;

   // Отправка торгового приказа.
   ResetLastError ();
   if (!IsTradeAllowed()) return ;
   if ( OrderSend (TradeRequest, TradeResult)) TradeResultAnalyse( "Buy.OrderSend" , TradeResult.retcode);
   else Print ( "Buy.OrderSend = false! Код ошибки: \'" , _LastError , "\'." );

Ve belirttiğiniz anda hata kodunu nasıl yakalarsınız? Yukarıdaki kodun son satırında bir hata kaydediyorum.

Aşağıdaki terimi bu kodun hemen önüne eklerseniz bu hata görünmez:

 if (! NormalizeDouble ( SymbolInfoDouble (Instrumet, SYMBOL_ASK ), 8 )) return ;
Neden: