Hatalar, hatalar, sorular - sayfa 2095

 

Test cihazında yeni yayılma hatası. Hem görsel modda hem de normal modda bulunur (çünkü uzman şişirilmiş spreadler görür).

MA Expert'i standart örneklerden varsayılan parametrelerle çalıştırarak kontrol edebilirsiniz.

Bazı tarihler için, tüm gün için 0:00'dan 23:59'a kadar spread 2-5'ten 200 - 500'e çıkarıldı. 2 DC'de kontrol edildi - görünüşe göre sorun tırnak içinde değil, test cihazının kendisinde.

İşte 10/16/2017 tarihi için bir örnek. Test, 10/16/2017 tarihinden itibaren çalıştırılmalıdır. Arka planda, bu tarih için kaydırılan bir grafiği olan bir terminal var - orada yayılma normal aralıkta.

Diğer DC'lerde başka bir örnek

Yayılmayı kontrol eden bir uzman yapıyorum ve gördüğü bu 200 - 500. Sonuç olarak, bütün gün çalışma algoritmaya göre değildir.

Diğer bir bulunan tarih ise 19/09/2017'dir. Testi Eylül'den bugüne kadar yaptım - günlerin yaklaşık %20-30'u fazla tahmin edilmiş bir yayılma ile. 2000'e kadar bir artış gördüm.

SD'ye gönderiyorum.

not. yanıtladı. Yeni yapıda düzeltilecektir.
 
elibrarius :

...

SD'ye gönderiyorum.

Ben de şu soruya cevap bekliyorum:

Açıldı, Başladı: 2017.12.16 14:36, #1911211

 

MetaQuotes-Demo'da OrderSend askıda kalıyor - bazen birkaç saniye çalışıyor, bazen komut dosyasını kaldırmıyor (yalnızca terminali kapatarak ).

 
TRADE_ACTION_CLOSE_BY'de aynı anda birkaç hata
 #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble ( _Symbol , SYMBOL_BID )
#define Ask SymbolInfoDouble ( _Symbol , SYMBOL_ASK )

void OnStart ()
{
   MqlTradeRequest Request = { 0 };
   MqlTradeResult Result;      
      
  Request.action = TRADE_ACTION_CLOSE_BY ;
  Request.position = OrderSend ( _Symbol , OP_SELL , 0.01 , Bid , 100 , 0 , 0 );
  Request.position_by = OrderSend ( _Symbol , OP_BUY , 1 , Ask , 100 , 0 , 0 );

  Request.symbol = _Symbol ; // Если убрать эту строку, то сообщения в логе изменятся

   Print ( OrderSend (Request, Result)); // false
}

Sonuç

'7489613': instant sell 0.01 GBPUSD at 1.34334 (deviation: 100)
'7489613': accepted instant sell 0.01 GBPUSD at 1.34334 (deviation: 100)
'7489613': deal #176902665 sell 0.01 GBPUSD at 1.34334 done (based on order #193547458)
'7489613': order #193547458 sell 0.01 / 0.01 GBPUSD at 1.34334 done in 73.458 ms
'7489613': instant buy 1.00 GBPUSD at 1.34342 (deviation: 100)
'7489613': accepted instant buy 1.00 GBPUSD at 1.34342 (deviation: 100)
'7489613': deal #176902666 buy 1.00 GBPUSD at 1.34342 done (based on order #193547459)
'7489613': order #193547459 buy 1.00 / 1.00 GBPUSD at 1.34342 done in 76.044 ms
'7489613': failed close position #193547459 buy 0.99 GBPUSD by position #193547458 [Invalid request]


Aslında, her şey mükemmel bir şekilde örtüşüyor, ancak günlüklerde yalnızca hatalı mesajlar var ve OrderSend'in dönüşü olumsuz. Kaynak kodda vurgulanan satırı kaldırırsanız, günlüklerde tamamen yetersiz bir mesaj görülebilir.

 

ME Styler hatası MT4/MT5

 #define f(x) x   //пробел вначале строки и перед конечным выражением
#define f(x) x     //стилизатор удалил пробел в начале строки. Пробел перед конечным выражением остался

 #define f(x) (x)   //пробел вначале строки и перед конечным выражением, ЗАКЛЮЧЕННЫМ В СКОБКИ
#define f(x)(x) //стилизатор удаляет не только пробел в начале строки, но и разделяющий пробел между аргументом и конечным выражением. 

//В итоге компилятор выдает ошибку во втором случае
//'(' - unexpected in macro definition

 

Gerçek keneler M1. Test cihazı veri penceresinde (görsel mod) negatif bir yayılma ile, yayılma yanlış olur. Sunucunuz, 2017.10.23 01:00 ve 01:01 dakika

Yayılmayı kontrol eden bir uzman yaptım. Yayılma negatifse, EA yanlış yayılmayı görür - 1 artar. Ekran görüntüsünde EA'da -1, grafikte -2. Yayılma pozitif ise Expert Advisor'da her şey doğrudur.

Gerçek kenelerdeki spread, açılış fiyatlarındaki spread'den çok farklı olabilir. İşte 39 pt farkla bir örnek. 2017.10.23 00:53
Açılış fiyatları:


Gerçek keneler ile :

Bana her iki modda da karşılık gelmesi gerektiği gibi geldi ...

 
elibrarius :

Yayılmayı kontrol eden bir uzman yaptım. Yayılma negatifse, EA yanlış yayılmayı görür - 1 artar. Ekran görüntüsünde EA'da -1, grafikte -2. Yayılma pozitif ise Expert Advisor'da her şey doğrudur.

Yayılmayı hesaplarken kodda bir hata yaptığınıza eminim. Bulamazsanız, kodu gösterin.

 

Kopyala... işlevlerine ne oldu? eskiden bir zaman serisi döndürürlerdi, ama şimdi dönmüyorlar:


Prensipte diziyi kendiniz indeksleyerek genişletmek zor değil ama Kopyaladıktan sonra zaman serisini genişleten fonksiyonları kullandığım önceki kod... muhtemelen şimdi çalışmayacak
 
Konstantin :

Kopyala... işlevlerine ne oldu? eskiden bir zaman serisi döndürürlerdi, ama şimdi dönmüyorlar:


Prensipte diziyi kendiniz indeksleyerek genişletmek zor değil ama Kopyaladıktan sonra zaman serisini genişleten fonksiyonları kullandığım önceki kod... muhtemelen şimdi çalışmayacak

Başlangıçta öyleydi ve sertifikada bunun hakkında yazılmıştı.


 
fxsaber :

Yayılmayı hesaplarken kodda bir hata yaptığınıza eminim. Bulamazsanız, kodu gösterin.

hm. Bulacağız)))

int OnInit()
  {
   return(INIT_SUCCEEDED);
}

void OnTick()
  {
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  }

Neden: