mql5语言的特点、微妙之处以及技巧 - 页 56 1...495051525354555657585960616263...247 新评论 fxsaber 2017.10.05 07:09 #551 安德烈-哈蒂姆连斯基。你衡量过性能吗?我很好奇它的速度会慢多少。特别是自定义指标。没有测量,但应该不会比MT4慢。 测量#define AMOUNT 1 e7 void OnStart() { int handle = iMA(NULL, PERIOD_CURRENT, 1, 0, MODE_SMA, PRICE_CLOSE); const ulong StartTime = GetMicrosecondCount(); for (int i = 0; i < AMOUNT; i++) handle = iMA(NULL, PERIOD_CURRENT, 1, 0, MODE_SMA, PRICE_CLOSE); Print((string)((GetMicrosecondCount() - StartTime) / AMOUNT) + " mcs per iMA"); Print(handle); }其结果是0.3383469 mcs per iMA三分之一微秒的时间来测试。这意味着,每1000万次的单次运行将减慢3秒。 Andrey Khatimlianskii 2017.10.05 08:36 #552 fxsaber:测量奇怪的是,你没有将创建句柄+在循环中获取值与你的原始版本进行比较,这就是有趣的区别。 fxsaber 2017.10.05 08:38 #553 安德烈-哈蒂姆连斯基。奇怪的是,你没有将创建句柄+在循环中获取值与你的原始版本 进行比较,这就是有趣的区别。因为这些数值取自同一个手柄。iMA总是以相同的参数返回相同的句柄。 Vitaly Muzichenko 2017.10.05 12:09 #554 fxsaber: 在MQL5中,可以很好地接受这样的写法也就是说,在每一个刻度 上 "创建 "一个手柄。新的指标实体将不会被创建,时间将只浪费在iMA输入参数与那些已经在以前的ticks上运行的指标的比较上。也就是说,与MT4中的做法完全相同。有趣的设计。请检查在OnInit中创建句柄的速度,用这种方法。 fxsaber 2017.10.05 12:17 #555 维塔利-穆齐琴科。请检查用这种方法创建OnInit句柄的速度。 关于交易、自动交易系统和策略测试的论坛 mql5语言的特点、微妙之处以及技巧 fxsaber, 2017.10.05 09:09 每1000万次的单次运行将减慢3秒。这是与你的选择相比。 Artyom Trishkin 2017.10.06 04:36 #556 如何替换标准的OrderCalcProfit() 和OrderCalcMargin(),使函数可以跨平台?它似乎已经在这里的某个地方,但我在这里找不到它--也许我很困......。但我一定是在搜索的一个小时内就醒了 :) fxsaber 2017.10.06 04:42 #557 阿尔乔姆-特里什金。如何替换标准的OrderCalcProfit()和OrderCalcMargin()函数,使其跨平台?它似乎已经被张贴在某个地方,但我在这里找不到它--也许我是醒着的......。但我一定是在一个小时的搜索过程中醒过来了 :)https://www.mql5.com/ru/search#!keyword=myordercalcmargin&module=mql5_module_forum MQL5.Community www.mql5.com Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы... Artyom Trishkin 2017.10.06 04:50 #558 fxsaber:https://www.mql5.com/ru/search#!keyword=myordercalcmargin&module=mql5_module_forum:)SymbolInfoMarginRate()在4中没有出现。该问题提出如下。 关于交易、自动交易系统和交易策略测试的论坛 mql5语言的特殊性,技巧和窍门 Artyom Trishkin, 2017.10.06 06:36 什么可以取代标准的OrderCalcProfit()和OrderCalcMargin(),使函数可以跨平台?似乎已经有了,但我在这里找不到--可能是我太困了......。但我应该在一个小时的搜索过程中醒过来的:) 也没有关于OrderCalcProfit()的内容。 fxsaber 2017.10.17 09:22 #559 一个礼物,而不是一个语言机会struct MQLTICK : public MqlTick { bool operator >( const MqlTick &Tick ) { return(this.bid > Tick.bid); } bool operator <( const MqlTick &Tick ) { return(this.ask < Tick.ask); } }; void OnStart() { MQLTICK Ticks[]; Print(CopyTicks(_Symbol, Ticks)); Print(Ticks[0] < Ticks[1]); } A100 2017.10.17 12:53 #560 fxsaber:一个礼物,而不是一个语言机会以难以捉摸的运行时错误形式出现的礼物struct MqlTick1 : MqlTick { }; struct MqlTick2 : MqlTick { int i; }; void Copyticks( MqlTick& []) {} void OnStart() { MqlTick1 ticks1[]; MqlTick2 ticks2[]; int i1 = ::CopyTicks( _Symbol, ticks1 ); //нормально ?????????????? Copyticks( ticks1 ); //error: 'ticks1' - parameter conversion not allowed int i2 = ::CopyTicks( _Symbol, ticks2 ); //нормально ?????????????? Print( "i2=", i2, ":", GetLastError()); //Результат: -1:4006 } ::CopyTicks比Copyticks好在哪里?而为什么结果总是-1。这些错误(4006)应该在编译时报告 1...495051525354555657585960616263...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你衡量过性能吗?我很好奇它的速度会慢多少。特别是自定义指标。
没有测量,但应该不会比MT4慢。
测量其结果是
三分之一微秒的时间来测试。这意味着,每1000万次的单次运行将减慢3秒。
测量
奇怪的是,你没有将创建句柄+在循环中获取值与你的原始版本进行比较,这就是有趣的区别。
奇怪的是,你没有将创建句柄+在循环中获取值与你的原始版本 进行比较,这就是有趣的区别。
因为这些数值取自同一个手柄。iMA总是以相同的参数返回相同的句柄。
在MQL5中,可以很好地接受这样的写法
也就是说,在每一个刻度 上 "创建 "一个手柄。新的指标实体将不会被创建,时间将只浪费在iMA输入参数与那些已经在以前的ticks上运行的指标的比较上。也就是说,与MT4中的做法完全相同。
有趣的设计。
请检查在OnInit中创建句柄的速度,用这种方法。
请检查用这种方法创建OnInit句柄的速度。
关于交易、自动交易系统和策略测试的论坛
mql5语言的特点、微妙之处以及技巧
fxsaber, 2017.10.05 09:09
每1000万次的单次运行将减慢3秒。
这是与你的选择相比。
如何替换标准的OrderCalcProfit() 和OrderCalcMargin(),使函数可以跨平台?它似乎已经在这里的某个地方,但我在这里找不到它--也许我很困......。但我一定是在搜索的一个小时内就醒了 :)
如何替换标准的OrderCalcProfit()和OrderCalcMargin()函数,使其跨平台?它似乎已经被张贴在某个地方,但我在这里找不到它--也许我是醒着的......。但我一定是在一个小时的搜索过程中醒过来了 :)
https://www.mql5.com/ru/search#!keyword=myordercalcmargin&module=mql5_module_forum
https://www.mql5.com/ru/search#!keyword=myordercalcmargin&module=mql5_module_forum
:)
SymbolInfoMarginRate()在4中没有出现。该问题提出如下。
关于交易、自动交易系统和交易策略测试的论坛
mql5语言的特殊性,技巧和窍门
Artyom Trishkin, 2017.10.06 06:36
什么可以取代标准的OrderCalcProfit()和OrderCalcMargin(),使函数可以跨平台?似乎已经有了,但我在这里找不到--可能是我太困了......。但我应该在一个小时的搜索过程中醒过来的:)
一个礼物,而不是一个语言机会
一个礼物,而不是一个语言机会
以难以捉摸的运行时错误形式出现的礼物
::CopyTicks比Copyticks好在哪里?
而为什么结果总是-1。这些错误(4006)应该在编译时报告