Geceleri çok garip bir şey fark ettim, çubuğun başlangıç zamanı bir hatayla işleniyor - hata bir dakikadan fazlaydı. Şimdi kontrol etmeye karar verdim, bir test göstergesi oluşturdum
#property indicator_chart_windowdatetime old_time= 0 ;
int MaxBars= 10 ; // ограничение //+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit () { return ( 0 );}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate ( constint rates_total,
constint prev_calculated,
constdatetime & time[],
constdouble & open[],
constdouble & high[],
constdouble & low[],
constdouble & close[],
constlong & tick_volume[],
constlong & volume[],
constint & spread[])
{
if (rates_total< 10 ) return ( 0 ); // ничего не считаем и ничего не рисуем на графике int start_pos, // точка старта
count_tick;
MqlDateTime str1,str2;
if (prev_calculated== 0 )
{
old_time= 0 ;
count_tick= 0 ;
start_pos=rates_total- 3 ;
}
else start_pos=prev_calculated- 1 ;
//--- расчет for ( int i=start_pos;i<rates_total;i++)
{
TimeToStruct ( TimeCurrent (),str1); // время сервераTimeToStruct (time[i], str2); // время бара if (str1.min!=str2.min) {
// Сбой - тик принадлежит не своему бару
count_tick++;
Print ( "тик №=" ,count_tick, " i=" , i, " c=" ,close[i], " time[i]=" ,time[i], " time=" , TimeCurrent (), " delta=" ,str1.sec);
}
} // end for(...return (rates_total);
}
İlk iki tik açık, bu göstergenin lansmanı. Ve işte sonrakiler... Sunucu saatine göre yeni bir barın uzun süredir devam ettiği ve bu tik eski bara ait olduğu ortaya çıktı. Geceleri bu delta genellikle bir kabus olur...
Geliştiricilere soru bu bir hata mı? Yoksa böyle mi amaçlanıyordu?
Geceleri çok garip bir şey fark ettim, çubuğun başlangıç zamanı bir hatayla işleniyor - hata bir dakikadan fazlaydı. Şimdi kontrol etmeye karar verdim, bir test göstergesi oluşturdum
Çıktıya oranları_toplam değerini eklerseniz, mevcut dakikaları bir önceki çubuğun dakikalarıyla karşılaştırdığınızda hataların oluştuğunu göreceksiniz.
open[], high[], low[] ve close[] parametreleri, mevcut zaman çerçevesinin açılış fiyatları, yüksek, düşük ve kapanış fiyatlarına sahip dizileri içerir. time[] parametresi, açılış zamanı değerlerine sahip bir dizi içerir , spread[] parametresi, spreadlerin geçmişini içeren bir dizi içerir (bu işlem aracı için bir spread sağlanmışsa). Volume[] ve tick_volume[] parametreleri sırasıyla ticaretin ve tik hacminin geçmişini içerir.
Geceleri çok garip bir şey fark ettim, çubuğun başlangıç zamanı bir hatayla işleniyor - hata bir dakikadan fazlaydı. Şimdi kontrol etmeye karar verdim, bir test göstergesi oluşturdum
İlk iki tik açık, bu göstergenin lansmanı. Ve işte sonrakiler... Sunucu saatine göre yeni bir barın uzun süredir devam ettiği ve bu tik eski bara ait olduğu ortaya çıktı. Geceleri bu delta genellikle bir kabustur...
Geliştiricilere soru bu bir hata mı? Yoksa böyle mi amaçlanıyordu?
oops anladım. teşekkür etmek. Döngünün içinde bir kontrol yaptım
if (old_time<time[i])
{
Print ( "НОВЫЙ бар" );
old_time=time[i];
//...
}
// а нужно вот такif (old_time<time[rates_total- 1 ]) // работаем только по завершенным барам
{
Print ( "НОВЫЙ бар" );
old_time=time[rates_total- 1 ];
//...
}
Yeni bir barın ortaya çıkması sırasında değişmedim. Ekonomik olarak değil, aynı veriler yeniden hesaplanır. Rağmen...
durum şu: https://book.mql4.com/ru/samples/icustom fig.119 MQL5'te hariç tutuluyor, değilse? ve böyle bir gösterge şablonu her zaman doğru kapanışı verir mi? Yoksa tuzaklar mı var?
sergey1294 : Ayrıca test cihazıyla ilgili bir tür şeytanlığım var, danışmanımı başlatmaya başlıyorum, tüm terminal test cihazında çöküyor, grafiğe atarsam her şey yolunda. diğer Uzman Danışmanlar test cihazında iyi çalışır.
Yaklaşık 110 parametrenin (ve yani soruların) bir garanti ile sindirilebileceği deneysel olarak elde edilmiş ve kanıtlanmıştır. 120'de, test cihazında EA belirtilmişse terminal çöker.
PM'de zaten bazı çözümler verdim, ancak herhangi bir şey varsa, bu soru ile geliştiricilerle de iletişime geçebilirsiniz. Bence bu sınırlamayı aşmada yardımcı olmalılar ...
Yaklaşık 110 parametrenin (ve yani soruların) bir garanti ile sindirilebileceği deneysel olarak elde edilmiş ve kanıtlanmıştır. 120'de, test cihazında EA belirtilmişse terminal çöker.
PM'de zaten bazı çözümler verdim, ancak herhangi bir şey varsa, bu soru ile geliştiricilerle de iletişime geçebilirsiniz. Bence bu sınırlamayı aşmada yardımcı olmalılar ...
Tabii ki, böyle bir kısıtlamanın testçiyi etkilemesi garip. Dördüncüsü, örneğin, böyle bir sorun yoktur.
Yaklaşık 110 parametrenin (ve yani soruların) bir garanti ile sindirilebileceği deneysel olarak elde edilmiş ve kanıtlanmıştır. 120'de, test cihazında EA belirtilmişse terminal çöker.
PM'de zaten bazı çözümler verdim, ancak herhangi bir şey varsa, bu soru ile geliştiricilerle de iletişime geçebilirsiniz. Bence bu sınırlamayı aşmada yardımcı olmalılar ...
stringo : 64 parametreye kadar optimize edebilirsiniz.
64'ü optimize edin ve test cihazında yaklaşık 110 kullanın (optimizasyon olmadan). Her ne kadar 110, elbette, bir Uzman Danışman için "kabus" sayıda parametre olsa da (ama oluyor)...
Geceleri çok garip bir şey fark ettim, çubuğun başlangıç zamanı bir hatayla işleniyor - hata bir dakikadan fazlaydı. Şimdi kontrol etmeye karar verdim, bir test göstergesi oluşturdum
Kayıt2010.06.18 10:42:03 prov_tick (EURUSD,M1) tick #=6 i=50558 c=1,23797 saat[i]=2010.06.18 08:41:00 saat=2010.06.18 08:42:05 delta=5
2010.06.18 10:40:59 prov_tick (EURUSD,M1) tick #=5 i=50557 c=1,23848 saat[i]=2010.06.18 08:40:00 saat=2010.06.18 08:41:01 delta=1
2010.06.18 10:40:01 prov_tick (EURUSD,M1) tick #=4 i=50556 c=1.23862 saat[i]=2010.06.18 08:39:00 saat=2010.06.18 08:40:04 delta=4
2010.06.18 10:39:03 prov_tick (EURUSD,M1) tick #=3 i=50555 c=1.23881 saat[i]=2010.06.18 08:38:00 saat=2010.06.18 08:39:05 delta=5
2010.06.18 10:38:30 prov_tick (EURUSD,M1) tick #=2 i=50554 c=1,23859 saat[i]=2010.06.18 08:37:00 saat=2010.06.18 08:38:31 delta=31
2010.06.18 10:38:30 prov_tick (EURUSD,M1) tick #=1 i=50553 c=1.23858 saat[i]=2010.06.18 08:36:00 saat=2010.06.18 08:38:31 delta=31
İlk iki tik açık, bu göstergenin lansmanı. Ve işte sonrakiler... Sunucu saatine göre yeni bir barın uzun süredir devam ettiği ve bu tik eski bara ait olduğu ortaya çıktı. Geceleri bu delta genellikle bir kabus olur...
Geliştiricilere soru bu bir hata mı? Yoksa böyle mi amaçlanıyordu?
ZY bunu günlüğe yazarken
2010.06.18 10:45:09 prov_tick (EURUSD,M1) tick #=9 i=50561 c=1,23787 saat[i]=2010.06.18 08:44:00 saat=2010.06.18 08:45:12 delta=12
Geceleri çok garip bir şey fark ettim, çubuğun başlangıç zamanı bir hatayla işleniyor - hata bir dakikadan fazlaydı. Şimdi kontrol etmeye karar verdim, bir test göstergesi oluşturdum
Çıktıya oranları_toplam değerini eklerseniz, mevcut dakikaları bir önceki çubuğun dakikalarıyla karşılaştırdığınızda hataların oluştuğunu göreceksiniz.
Yani, zaman[oran_toplam-2].
Ek olarak, deltanın çıktısı tamamen net değildir.
https://www.mql5.com/ru/docs/basis/function/events#oncalculate diyor ki:
open[], high[], low[] ve close[] parametreleri, mevcut zaman çerçevesinin açılış fiyatları, yüksek, düşük ve kapanış fiyatlarına sahip dizileri içerir. time[] parametresi, açılış zamanı değerlerine sahip bir dizi içerir , spread[] parametresi, spreadlerin geçmişini içeren bir dizi içerir (bu işlem aracı için bir spread sağlanmışsa). Volume[] ve tick_volume[] parametreleri sırasıyla ticaretin ve tik hacminin geçmişini içerir.
Geceleri çok garip bir şey fark ettim, çubuğun başlangıç zamanı bir hatayla işleniyor - hata bir dakikadan fazlaydı. Şimdi kontrol etmeye karar verdim, bir test göstergesi oluşturdum
Kayıt2010.06.18 10:42:03 prov_tick (EURUSD,M1) tick #=6 i=50558 c=1,23797 saat[i]=2010.06.18 08:41:00 saat=2010.06.18 08:42:05 delta=5
2010.06.18 10:40:59 prov_tick (EURUSD,M1) tick #=5 i=50557 c=1.23848 saat[i]=2010.06.18 08:40:00 saat=2010.06.18 08:41:01 delta=1
2010.06.18 10:40:01 prov_tick (EURUSD,M1) tick #=4 i=50556 c=1.23862 saat[i]=2010.06.18 08:39:00 saat=2010.06.18 08:40:04 delta=4
2010.06.18 10:39:03 prov_tick (EURUSD,M1) tick #=3 i=50555 c=1.23881 saat[i]=2010.06.18 08:38:00 saat=2010.06.18 08:39:05 delta=5
2010.06.18 10:38:30 prov_tick (EURUSD,M1) tick #=2 i=50554 c=1,23859 saat[i]=2010.06.18 08:37:00 saat=2010.06.18 08:38:31 delta=31
2010.06.18 10:38:30 prov_tick (EURUSD,M1) tick #=1 i=50553 c=1.23858 saat[i]=2010.06.18 08:36:00 saat=2010.06.18 08:38:31 delta=31
İlk iki tik açık, bu göstergenin lansmanı. Ve işte sonrakiler... Sunucu saatine göre yeni bir barın uzun süredir devam ettiği ve bu tik eski bara ait olduğu ortaya çıktı. Geceleri bu delta genellikle bir kabustur...
Geliştiricilere soru bu bir hata mı? Yoksa böyle mi amaçlanıyordu?
ZY bunu günlüğe yazarken
2010.06.18 10:45:09 prov_tick (EURUSD,M1) tick #=9 i=50561 c=1,23787 saat[i]=2010.06.18 08:44:00 saat=2010.06.18 08:45:12 delta=12
Aşağıdaki gibi kontrol etmeye çalışın. Döngü yok.
Metinde daha fazla.
Aşağıdaki gibi kontrol etmeye çalışın. Döngü yok.
Metinde daha fazla.
oops anladım. teşekkür etmek. Döngünün içinde bir kontrol yaptım
Yeni bir barın ortaya çıkması sırasında değişmedim. Ekonomik olarak değil, aynı veriler yeniden hesaplanır. Rağmen...
durum şu: https://book.mql4.com/ru/samples/icustom fig.119 MQL5'te hariç tutuluyor, değilse? ve böyle bir gösterge şablonu her zaman doğru kapanışı verir mi? Yoksa tuzaklar mı var?
ZY bilim için teşekkürlerAyrıca test cihazıyla ilgili bir tür şeytanlığım var, danışmanımı başlatmaya başlıyorum, tüm terminal test cihazında çöküyor, grafiğe atarsam her şey yolunda. diğer Uzman Danışmanlar test cihazında iyi çalışır.
Yaklaşık 110 parametrenin (ve yani soruların) bir garanti ile sindirilebileceği deneysel olarak elde edilmiş ve kanıtlanmıştır. 120'de, test cihazında EA belirtilmişse terminal çöker.
PM'de zaten bazı çözümler verdim, ancak herhangi bir şey varsa, bu soru ile geliştiricilerle de iletişime geçebilirsiniz. Bence bu sınırlamayı aşmada yardımcı olmalılar ...
Yaklaşık 110 parametrenin (ve yani soruların) bir garanti ile sindirilebileceği deneysel olarak elde edilmiş ve kanıtlanmıştır. 120'de, test cihazında EA belirtilmişse terminal çöker.
PM'de zaten bazı çözümler verdim, ancak herhangi bir şey varsa, bu soru ile geliştiricilerle de iletişime geçebilirsiniz. Bence bu sınırlamayı aşmada yardımcı olmalılar ...
Hafta sonu fiyatları şu anda çalışmıyor. betiği çalıştırıyorum
Yazdır( ZamanCurrent() );
sonuç
2010.06.20 00:26:06 00 (USDJPY,M1) 2010.06.18 22:35:52
son çubuğun saati olmasına rağmen 2010.06.18 23:00:00
garip olduğu için, bazı işlevlerin doğru çalışıp çalışmadığını test etmek çok elverişsizdir.
Gösterge ayarları penceresindeki "Uygula" düğmesi eksik.
Yaklaşık 110 parametrenin (ve yani soruların) bir garanti ile sindirilebileceği deneysel olarak elde edilmiş ve kanıtlanmıştır. 120'de, test cihazında EA belirtilmişse terminal çöker.
PM'de zaten bazı çözümler verdim, ancak herhangi bir şey varsa, bu soru ile geliştiricilerle de iletişime geçebilirsiniz. Bence bu sınırlamayı aşmada yardımcı olmalılar ...
64 parametreye kadar optimize edebilirsiniz.