绕过MQL4和MQL5中的Digits(),获取任何数字的小数位数(不仅仅是引号)。 - 页 18

 
Dmitry Fedoseev:

显然,但不要绝望,一切都没有失去,我相信你。

那么,这里是为了什么?请继续。

 
fxsaber:

在没有超越MQL的情况下。

#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:

谢谢,到目前为止还不错。

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变体比更好的MQL变体快20%,MQL变体可能不能再加速了(不是简单的出来了)。

附加的文件:
 
我个人不会使用dll,即使是为了20%的收益,因为它至少降低了安全性,增加了使用的复杂性,而且看起来很含糊。当使用别人的软件时,最好完全禁用dll调用......
 

fxsaber:

DLL变体比更好的MQL变体快20%,可能不能再加速了(不是简单的)。

如果你将数组大小 从128增加到10000,你的代码可能会加快。

Ilya Malev:
我个人不会使用任何dlls,即使是为了20%的速度,因为它至少降低了安全性,增加了使用的复杂性,看起来很模糊。当使用别人的软件时,最好完全禁用dll调用......

我贴出一个例子,更多的是想看看与本地实现相比,裸内存工作的效率有多高。对我来说,20%的本地代码滞后是一个非常、非常好的结果。

但是,是的 -- 减少安全和其他一切。但如果你想要速度,想为自己争取,你可以)

 
TheXpert:

它本质上是一个单一的低级系统函数调用。 你的代码可以通过将数组大小从128增加到10000来加速。

当然,也尝试了不同的尺寸。出于某种原因,它们并不影响结果。

 
fxsaber:

我需要它来做HistoryTicks库。谢谢你的参与。

顺便问一下,你的库中是否有一些东西可以将猫头鹰从MT4转移到MT5而不改变交易功能,以实现与MT4相同的订单和订单历史?如果你有链接,请发给我。

 
Ilya Malev:

顺便问一下,你的库中是否有一个可以将猫头鹰从MT4转移到MT5而不改变交易功能,以实现与MT4相同的订单和订单历史?如果你有这样一个图书馆,请把链接发给我。

我的个人资料中的出版物部分有所有图书馆。

 
fxsaber:

在我的个人资料中,在 "出版物 "下,所有的图书馆都躺在那里。

我明白。我希望得到一个内部人士的答案,如何完全实施,以及一个链接,这样我就不用自己去找了。总之,这并不重要,反正我自己会写,因为我喜欢别人的想法,而不太喜欢别人的代码 :)

 
Ilya Malev:

我明白。我希望得到一个内部人士的答案,即它是如何完全实施的,并提供一个链接,这样我就不必自己去找了。总之,这并不重要,反正我自己会写,因为我喜欢别人的想法,而不太喜欢别人的代码 :)

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


总的身份。当我开始写的时候,我不知道我必须避免多少陷阱。我不会再试了。

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