Mantıksal olarak sıfıra eşit olmamalı - bunun neden olduğu açık değil!
d1'iniz minyatür sayılar üretiyor, fiyatı int'ye çevirerek bu tür sorunlardan kaçınıyorum, yani. örneğin int bid=int((tick_array[0].bid+_Point/10)/_Point);, hesaplamalar çift olarak yapılırsa muhtemelen bazen 5 simgesinde 0.00000999999 verilir
Mantıksal olarak sıfıra eşit olmamalı - bunun neden olduğu açık değil!
Si-9.18'de hata ayıklayıcıda başlatıldı. Bazı nedenlerden dolayı, oranlardaki süre 2016'dır. i değeri 2189 olmasına rağmen likiditenin olmadığı grafiğin başında hesaplamaya başlamaktadır. Başlatma ve durdurma arasındaki ilk süre 1 saattir. Ancak bu saat için - yalnızca bir zaman değeri. Bunu hem başlangıç değişkeni hem de bitiş değişkeni olarak bulur. Sonuç olarak, başla = dur. Elbette. çıkarırsanız sıfır alırsınız. Daha çözemedim.
ovak77 : d1'iniz minyatür sayılar üretiyor, fiyatı int'ye çevirerek bu tür sorunlardan kaçınıyorum, yani. örneğin int bid=int((tick_array[0].bid+_Point/10)/_Point);, hesaplamalar çift olarak yapılırsa muhtemelen bazen 0 verilir
Evet, d1'i tartışmayalım - bu gerekli, o zaman gerekli, orada her şey doğru kabul edilir. Asıl soru, start_time ve stop_time ile start_index ve stop_index için neden aynı değeri alıyoruz?
d1'i tartışmayalım - bu gerekli, bu yüzden gerekli, orada her şey doğru kabul ediliyor. Asıl soru, start_time ve stop_time ile start_index ve stop_index için neden aynı değeri alıyoruz?
Bu size kalmış, örneğin 0.0000099999'u 2'ye bölmeyi deneyin.
Zamanın eşit olması nasıl mümkün olabilir? Yarım yıl boyunca her şey doğru çalıştı ...
void CreateFigure( int i, constdatetime & Time [], constdouble & Open [], constdouble & High [], constdouble & Low [], constdouble & Close [], MqlRates &rates[])
{ //i = 2189 datetime start_time=rates[i].time; //start_time=rates[i].time = D'2016.10.06 12:00:00'datetime stop_time=(start_time+ PeriodSeconds (TimeFrames)); //stop_time = D'2016.10.06 13:00:00'//--- //Time[38572] = D'2016.10.05 19:23:00'int start_index,stop_index,limit; //Time[38571] = D'2016.10.06 12:35:00'datetime vertical_line_time; //Time[38570] = D'2016.10.06 19:05:00'//---
start_index= ArrayBsearch ( Time ,start_time); //start_index = 38571if ( Time [start_index]<start_time) start_index=(start_index> 0 ?start_index- 1 :start_index);
start_time= Time [start_index]; //start_time = D'2016.10.06 12:35:00'if (i> 0 )
{
stop_index= ArrayBsearch ( Time ,stop_time); //stop_index = 38571if ( Time [stop_index]>stop_time) stop_index++;
stop_time= Time [stop_index]; //stop_time = D'2016.10.06 12:35:00'
limit=start_index-stop_index+ 1 ;
vertical_line_time= Time [start_index-(limit>> 1 )];
Önce limit=start_index-stop_index+1, yanilimit==1 yazdınız ve ardından 2'ye bölmeninlimit=(int)(stop_time-start_time)/PeriodSeconds(_Period) olduğu yerde yazdınız. Birim eklenmedi. Sıfır nokta ile bölünür.
Si-9.18'de hata ayıklayıcıda başlatıldı. Bazı nedenlerden dolayı, oranlardaki süre 2016'dır. i değeri 2189 olmasına rağmen likiditenin olmadığı grafiğin başında hesaplamaya başlamaktadır. Başlatma ve durdurma arasındaki ilk süre 1 saattir. Ancak bu saat için - yalnızca bir zaman değeri. Bunu hem başlangıç değişkeni hem de bitiş değişkeni olarak bulur. Sonuç olarak, başla = dur. Elbette. çıkarırsanız sıfır alırsınız. Daha çözemedim.
Giriş parametrelerinde BarsUsed=100 olarak ayarlayın.
Giriş parametrelerinde BarsUsed=100 olarak ayarlayın.
Evet, hata yok. Ancak, düşük likiditeli bir alete veya likit olmayan bir zaman alırsanız - örneğin akşam seansında, o zaman bir saat içinde kolayca 1 alt çubuk olabilir. Burada limit = 0 ve güvenceye sahipsiniz! Ve eğer tırnaklar 2 ise, limit/2 yuvarlama sırasında yine de 0 verecektir.
Evet, hata yok. Ancak, düşük likiditeli bir alete veya likit olmayan bir zaman alırsanız - örneğin akşam seansında, o zaman bir saat içinde kolayca 1 alt çubuk olabilir. Burada limit = 0 ve güvenceye sahipsiniz! Ve eğer tırnaklar 2 ise, limit/2 yuvarlama sırasında yine de 0 verecektir.
Belki yaparım, teşekkürler. Ancak küresel sorun başka bir şey .... sorun, istikrarlı olmaması.
Mantıksal olarak sıfıra eşit olmamalı - bunun neden olduğu açık değil!
Mantıksal olarak sıfıra eşit olmamalı - bunun neden olduğu açık değil!
Si-9.18'de hata ayıklayıcıda başlatıldı. Bazı nedenlerden dolayı, oranlardaki süre 2016'dır. i değeri 2189 olmasına rağmen likiditenin olmadığı grafiğin başında hesaplamaya başlamaktadır. Başlatma ve durdurma arasındaki ilk süre 1 saattir. Ancak bu saat için - yalnızca bir zaman değeri. Bunu hem başlangıç değişkeni hem de bitiş değişkeni olarak bulur. Sonuç olarak, başla = dur. Elbette. çıkarırsanız sıfır alırsınız. Daha çözemedim.
d1'iniz minyatür sayılar üretiyor, fiyatı int'ye çevirerek bu tür sorunlardan kaçınıyorum, yani. örneğin int bid=int((tick_array[0].bid+_Point/10)/_Point);, hesaplamalar çift olarak yapılırsa muhtemelen bazen 0 verilir
Evet, d1'i tartışmayalım - bu gerekli, o zaman gerekli, orada her şey doğru kabul edilir. Asıl soru, start_time ve stop_time ile start_index ve stop_index için neden aynı değeri alıyoruz?
d1'i tartışmayalım - bu gerekli, bu yüzden gerekli, orada her şey doğru kabul ediliyor. Asıl soru, start_time ve stop_time ile start_index ve stop_index için neden aynı değeri alıyoruz?
Bir sonraki donmadan sonra, terminal açılmayı bıraktı .... yeniden yüklemeden nasıl yeniden canlandırılır?
Hafızada asılı olduğu ortaya çıktı - süreci zorla öldürdü - başladı.
Zamanın eşit olması nasıl mümkün olabilir? Yarım yıl boyunca her şey doğru çalıştı ...
Si-9.18'de hata ayıklayıcıda başlatıldı. Bazı nedenlerden dolayı, oranlardaki süre 2016'dır. i değeri 2189 olmasına rağmen likiditenin olmadığı grafiğin başında hesaplamaya başlamaktadır. Başlatma ve durdurma arasındaki ilk süre 1 saattir. Ancak bu saat için - yalnızca bir zaman değeri. Bunu hem başlangıç değişkeni hem de bitiş değişkeni olarak bulur. Sonuç olarak, başla = dur. Elbette. çıkarırsanız sıfır alırsınız. Daha çözemedim.
Giriş parametrelerinde BarsUsed=100 olarak ayarlayın.
Giriş parametrelerinde BarsUsed=100 olarak ayarlayın.
Evet, hata yok. Ancak, düşük likiditeli bir alete veya likit olmayan bir zaman alırsanız - örneğin akşam seansında, o zaman bir saat içinde kolayca 1 alt çubuk olabilir. Burada limit = 0 ve güvenceye sahipsiniz! Ve eğer tırnaklar 2 ise, limit/2 yuvarlama sırasında yine de 0 verecektir.
Evet, hata yok. Ancak, düşük likiditeli bir alete veya likit olmayan bir zaman alırsanız - örneğin akşam seansında, o zaman bir saat içinde kolayca 1 alt çubuk olabilir. Burada limit = 0 ve güvenceye sahipsiniz! Ve eğer tırnaklar 2 ise, limit/2 yuvarlama sırasında yine de 0 verecektir.
Belki yaparım, teşekkürler. Ancak küresel sorun başka bir şey .... sorun, istikrarlı olmaması.
Bu size kalmış, örneğin 0.0000099999'u 2'ye bölmeyi deneyin.
Basılı d1 - görevlerim için
Genel olarak, durum böyle değil, teşekkürler.