MQL4 ve MQL5'te Rakamları () atlayarak herhangi bir sayıdan (sadece tırnak işaretleri değil) sonra ondalık basamak sayısını alma - sayfa 18

 
Dmitry Fedoseev :

Görünüşe göre, ama umutsuzluğa kapılma, her şey kaybolmadı, sana inanıyorum.

Peki, neden burada? Lütfen geçin.

 
fxsaber :

MQL'nin ötesine geçmeden.

 #import "msvcrt.dll"
   long memcpy( MqlTick &dst[], int &src[], uint cnt);
   long memcpy( int &dst[], MqlTick &src[], uint cnt);
#import

int TicksToIntArray_thexpert( MqlTick &Ticks[], int &Array[] )
{
   const int Size1 = ArraySize (Ticks);
   const int Size2 = ArrayResize (Array, Size1 * sizeof ( MqlTick ) / sizeof ( int ));

  memcpy(Array, Ticks, Size2 * sizeof ( int ));
  
   return Size2;
}

// Перевод массива int[] в массив тиков.
int IntArrayToTicks_thexpert( int &Array[], MqlTick &Ticks[] )
{
   const int Size1 = ArraySize (Array);
   const int Size2 = ArrayResize (Ticks, Size1 * sizeof ( int ) / sizeof ( MqlTick ));

  memcpy(Ticks, Array, Size2 * sizeof ( MqlTick ));
  
   return Size2;
}

Time [TicksToIntArray_fxsaber2(TicksIn,Array)] = 140528
Time [IntArrayToTicks_fxsaber2(Array,TicksOut)] = 159885
true
Time [TicksToIntArray_thexpert(TicksIn,Array2)] = 58099
Time [IntArrayToTicks_thexpert(Array2,TicksOut2)] = 65944
true
 
TheXpert :

Şimdiye kadar teşekkür ederim

 https: //www.mql5.com/ru/forum/287618/page18#comment_9813963
TicksToIntArray_thexpert
Time [TicksToIntArray(TicksIn,Array)] = 80994
IntArrayToTicks_thexpert
Time [IntArrayToTicks(Array,TicksOut)] = 80410
true

https: //www.mql5.com/ru/forum/287618/page18#comment_9814108
TicksToIntArray_fxsaber4
Time [TicksToIntArray(TicksIn,Array)] = 102718
IntArrayToTicks_fxsaber4
Time [IntArrayToTicks(Array,TicksOut)] = 103835
true


DLL varyantı, en iyi MQL varyantından %20 daha hızlıdır ve büyük olasılıkla artık hızlandırılamayacak (basit değil).

Dosyalar:
 
Ben şahsen %20 kazanma uğruna bile dll kullanmazdım, çünkü. bu, güvenliği en aza indirir, kullanımın karmaşıklığını artırır ve belirsiz görünür. Başkalarının programlarını kullanırken, dll çağrılarını tamamen devre dışı bırakmak daha iyidir...
 

fxsaber :

DLL varyantı, en iyi MQL varyantından %20 daha hızlıdır ve büyük olasılıkla artık hızlandırılamayacak (basit değil).

yani bu aslında düşük seviyeli bir sistem işlevine yapılan tek çağrıdır. Dizinin boyutunu artırırsanız kodunuz hızlandırılabilir - diyelim ki 128'den 10000'e.

İlya Malev :
Ben şahsen %20 kazanma uğruna bile dll kullanmazdım, çünkü. bu, güvenliği en aza indirir, kullanımın karmaşıklığını artırır ve belirsiz görünür. Başkalarının programlarını kullanarak, dll çağrılarını tamamen devre dışı bırakmak daha iyidir...

Yerel uygulamalara kıyasla çıplak bellekle çalışmanın ne kadar verimli olduğunu görebilmeniz için bir örnek daha yayınladım. Ve bana gelince, yerel kodda %20'lik bir gecikme çok, çok iyi bir sonuçtur.

ve evet - daha az güvenlik ve diğer her şey. AMA kendin için hız istiyorsan, yapabilirsin)

 
TheXpert :

yani bu aslında düşük seviyeli bir sistem işlevine yapılan tek çağrıdır. Dizinin boyutunu artırırsanız kodunuz hızlandırılabilir - diyelim ki 128'den 10000'e.

Tabii ki, farklı boyutlarda denedim. Nedense sonucu etkilemezler.

 
fxsaber :

HistoryTicks-kütüphanesine ihtiyacım var. Katıldığınız için teşekkürler.

Bu arada, kitaplıklarınızda, siparişler ve sipariş geçmişi ile aynı MT4 çalışması için ticaret fonksiyonlarını değiştirmeden baykuşları MT4'ten MT5'e aktarabileceğiniz var mı? Varsa link atın lütfen

 
Ilya Malev :

Bu arada, kitaplıklarınızda, siparişler ve sipariş geçmişi ile aynı MT4 çalışması için ticaret fonksiyonlarını değiştirmeden baykuşları MT4'ten MT5'e aktarabileceğiniz var mı? Varsa link atın lütfen

Yayınlar bölümündeki profilde tüm kütüphaneler yer almaktadır.

 
fxsaber :

Yayınlar bölümündeki profilde tüm kütüphaneler yer almaktadır.

Anladım. Ne kadar eksiksiz uygulandığına dair içeriden bir cevap ve oraya kendim bakmamak için bir bağlantı almayı umuyordum. Pekala, tamam, önemli değil, yine de sonunda kendim yazacağım. Başkalarının fikirlerini severim ama başkasının kodunu pek sevmem :)

 
Ilya Malev :

Anladım. Ne kadar eksiksiz uygulandığına dair içeriden bir cevap ve oraya kendim bakmamak için bir bağlantı almayı umuyordum. Pekala, tamam, önemli değil, yine de sonunda kendim yazacağım. Başkalarının fikirlerini severim ama başkasının kodunu pek sevmem :)

https://www.mql5.com/ru/code/16006


Tam kimlik. Yazmaya başladığımda, atlamam gereken tuzakların sayısından şüphelenmedim bile. Yenisi daha fazla almazdı.

MT4Orders
MT4Orders
  • www.mql5.com
Данная библиотека позволяет работать с ордерами в MQL5 (MT5-hedge) точно так же, как в MQL4. Т.е. ордерная языковая система (ОЯС) становится идентичной MQL4. При этом сохраняется возможность параллельно использовать MQL5-ордерную систему. В частности, стандартная MQL5-библиотека будет продолжать полноценно работать. Выбор между ордерными...