Sergey Dzyublik : Hata MT5 (2323 oluşturun), bir şablon işlevi içinde, açık bir yayın işleminin parçası olarak geçirilen işaretçi bir sınıf gibi davranır ve buna göre bir derleme hatasına neden olur:
MT5 hatası (derleme 2361), C++'daki davranışa kıyasla aşırı yüklenmiş şablon işlevlerine yapılan çağrıların önceliklerinde başka bir sorundur. MT5 derleme hatasında "aşırı yüklenmiş işleve belirsiz çağrı", C++'da her şey yolunda. C++ çevrimiçi ( https://onlinegdb.com/Sy8cqdFr8 );
template < typename _Tp>
struct It_wrapper{
_Tp p;
};
template < typename _Tp>
struct It_g : public It_wrapper<_Tp>{};
template < typename _It, typename _Tp>
int __test_print( const It_wrapper<_It> &it, int n, const _Tp &value){
Print (it.p);
return0 ;
};
template < typename _It>
int test_print( const It_wrapper<_It> &it, int n, constint value){
return __test_print(it, n, value);
}
template < typename _It, typename _ValueType>
int test_print( const It_wrapper<_It> &it, int n, const _ValueType &value){
return __test_print(it, n, value);
}
voidOnStart (){
It_g< int > it;
It_g< string > it_s;
it.p = 4 ;
it_s.p = "test" ;
constint n = 10 ;
test_print(it, 5 , n); // Compile Error: 'test_print' - ambiguous call to overloaded function
test_print(it_s, 5 , n); // Compile Error: 'test_print' - ambiguous call to overloaded function
};
int main(){
OnStart ();
return1 ;
};
Hata 1 position.Comision() test sırasında komisyon her zaman 0'a eşittir (test cihazının kendisinde, komisyon pozisyon geçmişinde gösterilir), bu, komisyonun hesaplandığı Uzman Danışmanlar için parametrelerin optimizasyonunu etkiler.
Hata 2 simbol.Spred(), programın başlangıcından itibaren yalnızca üçüncü çağrıda gerçek değerler üretir
Hata 3, test aracısı kaybolduğunda (yalnızca yerel ağda çalışıyorum), saatlerce unutamıyor ve aracı yerel ağda görünse bile bulmaya çalışıyor - aracının ipini değiştirmeniz gerekiyor ve ancak bundan sonra test cihazı bir saat içinde aracıyı unutur, aracının ipi geri döner ve test cihazı çalışmaya devam eder. Sonuç, 30 dakikadan birkaç saate kadar bir süre için testin durdurulmasıdır - şanslı olarak.
Genetik algoritmanın açıklamasındaki Bug 4, test normal olarak durdurulmadığında veya test manuel olarak durdurulduğunda yazılır, test parametreleri değiştirilmezse optimizasyon önbelleği kaydedilir ve test yeniden başlatıldığında, optimizasyon noktadan devam eder. dur - gerçekte böyle bir şey yok - optimizasyon yeniden başlar ve optimizasyon sonuçları durdurulan optimizasyonun optimizasyon sonuçları dosyasına eklenir. Sonuç olarak - optimizasyon dosyasında sadece daha fazla optimizasyon sonucu vardır - bunun optimal parametreleri bulmak için pratik bir uygulaması yoktur, toplam optimizasyon süresi artar.
Hata 5, mql5 derleyicisi bana basitçe optimize edilmemiş gibi görünüyor - programlar sadece yavaş, bu da parametre optimizasyonunun hızını etkiliyor. 20 satırlık bir program nasıl bu kadar yavaş olabilir?
Anlaşılmaz bir sorunla karşılaştım, bir tikte bir siparişi açıyor ve belirli bir anda diğerini kapatıyor, test cihazında her şey yolunda gidiyor, gerçek oluyor ve bir yerde tef ile dans etmeye başladı, bir pozisyon açıyor , ancak diğerini kapatmaz. Bu bağlamda şu soru ortaya çıktı: Gerçek hayatta alım satım yaparken aynı anda iki emir göndermek (açmak ve kapatmak için) mümkün müdür?
Razgon_y= OrderSend ( Symbol (),OP_BUY,Razgon_Lot,Ask, 100 , 0 , 0 ,Razgon_Comment,Razgon_Magic, 0 , clrBlue );
if (Razgon_y< 0 )
{
Print (" OrderSend завершилась с ошибкой #", GetLastError ());
}
else ( Print ("Функция OrderSend успешно выполнена") );
for ( int Razgon_index= 0 ; Razgon_index<= OrdersTotal (); Razgon_index++)
{
if ( OrderSelect (Razgon_index,SELECT_BY_POS,MODE_TRADES)== true )
{
if (OrderMagicNumber()==Razgon_Magic && OrderType()==OP_SELL && OrderProfit()> 0 )
{
Razgon_OC=OrderClose(OrderTicket(),OrderLots(),Ask, 100 , clrGreen );
if (Razgon_OC== false )
{
Print ("OrderClose завершилась с ошибкой #", GetLastError ());
}
else ( Print ("Функция OrderClose успешно выполнена") );
Razgon_AccountEquity=AccountEquity();
}
}
}
}
Anlaşılmaz bir sorunla karşılaştım, bir tikte bir siparişi açıyor ve belirli bir anda diğerini kapatıyor, test cihazında her şey yolunda gidiyor, gerçek oluyor ve bir yerde tef ile dans etmeye başladı, bir pozisyon açıyor , ancak diğerini kapatmaz. Bu bağlamda şu soru ortaya çıktı: Gerçek hayatta alım satım yaparken aynı anda iki emir göndermek (açmak ve kapatmak için) mümkün müdür?
Hata MT5 (2323 oluşturun),
bir şablon işlevi içinde, açık bir yayın işleminin parçası olarak geçirilen işaretçi bir sınıf gibi davranır ve buna göre bir derleme hatasına neden olur:
Gönderdiğiniz için teşekkürler, düzeltildi
Parantezlerin varlığında bir fark var.
Parantezlerin varlığında bir fark var.
Sana kalmış ama yazmadan önce kontrol edebilirsin
MT5 derleme hatasında "aşırı yüklenmiş işleve belirsiz çağrı", C++'da her şey yolunda.
C++ çevrimiçi ( https://onlinegdb.com/Sy8cqdFr8 );
Markette metin editörü bozuktu, tam ekrana genişletmeye çalıştığınızda sadece kaydet butonu kilitleniyor....
Ayrıca, büyük bir ağırlıkta bir resim yükleyebilirsiniz, resim yüklenir ancak açıklamada doğru şekilde görüntülenmiyor.Markette metin editörü bozuktu, tam ekrana genişletmeye çalıştığınızda sadece kaydet butonu kilitleniyor....
Ayrıca, büyük bir ağırlıkta bir resim yükleyebilirsiniz, resim yüklenir ancak açıklamada doğru şekilde görüntülenmiyor.Merhaba!
Hatayı bildirdiğiniz için teşekkürler!
Resimdeki sorunu daha detaylı anlatabilir misiniz?
Anlaşılmaz bir sorunla karşılaştım, bir tikte bir siparişi açıyor ve belirli bir anda diğerini kapatıyor, test cihazında her şey yolunda gidiyor, gerçek oluyor ve bir yerde tef ile dans etmeye başladı, bir pozisyon açıyor , ancak diğerini kapatmaz. Bu bağlamda şu soru ortaya çıktı: Gerçek hayatta alım satım yaparken aynı anda iki emir göndermek (açmak ve kapatmak için) mümkün müdür?
Anlaşılmaz bir sorunla karşılaştım, bir tikte bir siparişi açıyor ve belirli bir anda diğerini kapatıyor, test cihazında her şey yolunda gidiyor, gerçek oluyor ve bir yerde tef ile dans etmeye başladı, bir pozisyon açıyor , ancak diğerini kapatmaz. Bu bağlamda şu soru ortaya çıktı: Gerçek hayatta alım satım yaparken aynı anda iki emir göndermek (açmak ve kapatmak için) mümkün müdür?
Döngünüz pozisyonları kapatmak için doğru değil. Bir ters döngü yapın.
Gerçek verilere dayalı bir hata ayıklayıcıyla çalışırken terminalde kritik bir hata yakaladım (derleme 2361):
2020.03.16 16:30:41.730 (RTS Splice,M1) crash --> 00000115A15300A5 488D0B lea rcx, [rbx]
2020.03.16 16:30:41.730 (RTS Splice,M1) 00000115A15300A8 E8850B0000 call 0x115a1530c32
2020.03.16 16:30:41.730 (RTS Splice,M1) 00000115A15300AD 90 nop
2020.03.16 16:30:41.730 (RTS Splice,M1) 00000115A15300AE 89842488000000 mov [rsp+0x88], eax
2020.03.16 16:30:41.730 (RTS Splice,M1) 00000115A15300B5 F4 hlt
2020.03.16 16:30:41.730 (RTS Splice,M1) 00000115A15300B6 842488 test [rax+rcx*4], ah
2020.03.16 16:30:41.730 (RTS Splice,M1) 00000115A15300B9 0000 add [rax], al
2020.03.16 16:30:41.730 (RTS Splice,M1)
2020.03.16 16:30:41.730 (RTS Splice,M1) 00: 0x00000115A15300A5
2020.03.16 16:30:41.730 (RTS Splice,M1) 01: 0x00000115A7DFFD64
2020.03.16 16:30:41.730 (RTS Splice,M1) 02: 0x00000001776FA270
2020.03.16 16:30:41.730 (RTS Splice,M1) 03: 0x0000000000000001
2020.03.16 16:30:41.730 (RTS Splice,M1) 04: 0x00000001776FA23C
2020.03.16 16:30:41.730 (RTS Splice,M1)