Hatalar, hatalar, sorular - sayfa 1680

 

dergide

 2016.09 . 12 22 : 20 : 37.728 Books   invalid book item[RTS- 9.16 ,buy, 99040.00000 ,- 4 ]
BCS-MetaTrader5, gerçek, 1415. Demodan gerçek hesaba geçerken oldu. Hiçbir danışman ve gösterge başlatılmadı. Cam pencere açıktı.
 
fxsaber :

dergide

BCS-MetaTrader5, gerçek, 1415. Demodan gerçek hesaba geçerken oldu. Hiçbir danışman ve gösterge başlatılmadı. Cam pencere açıktı.

Bu hata hakkında yazdım

https://www.mql5.com/ru/forum/95131

invalid book transaction
invalid book transaction
  • incelemeler: 2
  • www.mql5.com
Раньше не было, появилось сегодня (реал). Что это...
 
prostotrader :
Peki konu başlığının altındaki bu yıldızlar nelerdir? Ve daha fazla inceleme.
 
fxsaber :
Peki konu başlığının altındaki bu yıldızlar nelerdir? Ve daha fazla inceleme.
Bu arada, uzun zamandır bu yıldızların nerede izleyip konu açacağını merak ediyordum.
 

Hata ayıklama modundaşu anda bulunduğum işlevin nereden çağrıldığını nasıl öğrenebilirim?

Kabaca konuşursak, iç içe geçmiş bir işlev/yöntem çağrıları ağacına erişmek istiyorum. Mümkün mü?

 
fxsaber :
Hata ayıklama modundaşu anda bulunduğum işlevin nereden çağrıldığını nasıl öğrenebilirim?

"Adım adım" modunda, "Hata Ayıklama" sekmesine tek tek bakarak:

adımlar

 
Karputov Vladimir :

"Adım adım" modunda, "Hata Ayıklama" sekmesine tek tek bakarak:

Teşekkür ederim. Göstergenin neden başlangıçta iki kez OnCalculate'i çağırdığını anlayamıyorum. Böyle bir reaksiyonun hangi olay üzerine olduğunu öğrenmek arzu edilir. Hata ayıklamada maalesef olaylar görünmez.
 
fxsaber :
Teşekkür ederim. Göstergenin neden başlangıçta iki kez OnCalculate çağırdığını anlayamıyorum. Böyle bir reaksiyonun hangi olay üzerine olduğunu öğrenmek arzu edilir. Hata ayıklamada maalesef olaylar görünmez.

Çekmek için iki kez, bazen bir veya belki üç kez olur: Aşağıdaki kodu Oncalculate () içine koyarsınız -

 //+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   Print ( __FUNCTION__ , ", rates_total " ,rates_total, ", prev_calculated " ,prev_calculated);

geçmiş değiştirildiğinde açık olacaktır (geçmiş değiştirildiğinde, prev_calculated==0).

 
Karputov Vladimir :

Çekmek için iki kez, bazen bir veya belki üç kez olur: Aşağıdaki kodu Oncalculate () içine koyarsınız -

geçmiş değiştirildiğinde açık olacaktır (geçmiş değiştirildiğinde, prev_calculated==0).

Hayır, şu anda alıntılar durduğunda RTS çalıştırıyorum. Bir kez çağrıldığını öğrendim ve hata ayıklayıcı yalan söylüyor, iki olduğunu gösteriyor. Oynatılacak kod (tiklerin olmadığı bir sembol üzerinde çalıştırın)

 #property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots    1

int Func(){ return ( 0 ); }

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[] )
{
//  return(0); // если расскоментировать и здесь поставить точку останова, то отладчик отработает, как надо
   return (Func()); // здесь поставить точку останова (F9)
}

F5'e bastıktan sonra kesme noktasında bir isabet olacaktır. Ve F5'e ikinci basıştan sonra - benzer şekilde. Bu olmamasına rağmen - bir onay olarak, koddaki satırın yorumunu kaldırabilir ve onunla deneyebilirsiniz.

 
fxsaber :

Hayır, alıntılar durduğunda şimdi RTS çalıştırıyorum. Bir kez çağrıldığını öğrendim, ancak hata ayıklayıcı iki olduğunu göstererek yalan söylüyor. Oynatılacak kod (tiklerin olmadığı bir sembol üzerinde çalıştırın)

F5'e bastıktan sonra bir kesme noktasına ulaşılacaktır. Ve F5'e ikinci basıştan sonra - benzer şekilde. Bu olmamasına rağmen - bir onay olarak, koddaki satırın yorumunu kaldırabilir ve onunla deneyebilirsiniz.

Alıntıların açık veya kapalı olması önemli değil. Göstergede, prev_calculate==0 koşulunu kontrol etmeniz gerekir - bu, geçmişin değiş tokuşudur ve ikinci nokta, değişen çubukları yeniden hesaplamanın koruma modudur, yani, aslında, Rates_total -prev_calculate+1.