测试 "CopyTicks"。 - 页 21 1...141516171819202122232425262728...47 新评论 fxsaber 2016.10.18 06:26 #201 Network 'xxx': authorized on Alpari-MT5 through mt5.nl.3 (ping: 64.15 ms)在几乎空无一人的Alpari市场观察上,copitix的刹车和BCS上一样多。在Robo上,一切都快了不止一个数量级。 Renat Fatkhullin 2016.10.18 10:38 #202 关于USDCHF M1的结果,CalcLength来自指标https://www.mql5.com/ru/code/16537。RoboForexEU - 23 ms (杯子不在广播中,只有出价/报价)MetaQuotes-Demo - 15-30毫秒(广播里有一个带体积的杯子)。结果是不断波动的+单线程规则没有被观察到--在一个没有挑选和混合CopyTicks的流中,在另一个有挑选的流中。在BCS上没有打开演示,但主要是RoboForex上没有堆栈。奇怪的测量代码。测量了很多不必要的东西,但没有测量CopyTicks请求时间。virtual void Visual( void ) const { const ulong StartTime = ::GetMicrosecondCount(); int X0; int Y0; BARS bars(this.Chart); TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0); this.SetProperty(::OBJPROP_XDISTANCE, X0); this.SetProperty(::OBJPROP_YDISTANCE, Y0); TicksPicture.Fill(ColorBid, ::BID); TicksPicture.Fill(ColorAsk, ::ASK); TicksPicture.Fill(ColorSpread, ::AVG); TicksPicture.SendToResource(this.Resource); ::Comment("LastCalcTime = " + (string)::TimeLocal() + ", Ticks = " + (string)bars.GetAmountTicks() + ", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms."); ::ChartRedraw(this.Chart); return; } 在任何情况下,我们都要优化调用,以复制ticks。这需要很多。 Тиковый индикатор Ticks 投票: 152016.10.14//www.mql5.com/ru/users/fxsaber">www.mql5.com Показывает тиковую ценовую историю (Bid/Ask) внутри всех видимых баров. Testing 'CopyTicks' Reading and modifying resource Keyboard events fxsaber 2016.10.18 10:49 #203 Renat Fatkhullin:关于USDCHF M1的结果,CalcLength来自指标https://www.mql5.com/ru/code/16537。RoboForexEU - 23 ms (广播中没有堆栈,只有买入/卖出)MetaQuotes-Demo - 15-30毫秒(广播里有一个带体积的杯子)。Alpari Real和BCS Real上的问题。打开真实世界的大门是非常容易的。 关于交易、自动交易系统和交易策略测试的论坛 交易所的限价单滑点统计 pivomoe, 2016.08.25 15:15 开始用bx做模拟mt5账户。你将会收到一封电子邮件,里面有一个分发的链接。在选择服务器的阶段,不要选择模拟服务器,而是选择真实交易的服务器。用任意的数据创建一个账户。创建一个证书。所有你有一个零 余额的真实账户,有真实的报价和历史记录。结果是不断浮动的+单线程的规则没有得到尊重--在一个没有堆栈的线程(在那里没有必要为CopyTicks做选择和合并),在另一个有堆栈的线程。该演示在BCS上没有打开,但主要的是Roboforex上没有流媒体。奇怪的测量代码。测量了一堆额外的东西,但决不是CopyTicks请求的时间。这不是由我决定的。这一切都在一起测量。唯一的区别是贸易服务器。所以刹车只与CopyTicks有关。在任何情况下,copyTicks的调用都是优化的。这需要很多。Copyix目前的形式是非常不方便的。例如,绝对不清楚如何获得之前的蜱虫,从。为什么我们不能返回基数的索引并像处理数组一样处理基数?让我们把向数据库添加新数据的问题完全交给用户来解决。如果出了问题,就让他自己解决吧。现在,用Copyix工作是,嗯,非常不方便。我似乎是少数几个非常积极使用它的人之一。而且我可以很负责任地说说这个问题。 [删除] 2016.10.18 10:52 #204 Renat Fatkhullin:关于USDCHF M1的结果,CalcLength来自指标https://www.mql5.com/ru/code/16537。RoboForexEU - 23 ms (广播中没有统计,只有买入/卖出)MetaQuotes-Demo - 15-30毫秒(广播里有一个带体积的杯子)。结果是不断波动的+单线程规则没有被遵守--有一些线程在其中一个上没有挑选和合并CopyTicks,在另一个上有挑选。在BCS上,演示没有打开,但主要的是在Roboforex上没有流媒体奇怪的测量代码。测量了一堆不必要的东西,但决不是CopyTicks请求的时间。virtual void Visual( void ) const { const ulong StartTime = ::GetMicrosecondCount(); int X0; int Y0; BARS bars(this.Chart); TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0); this.SetProperty(::OBJPROP_XDISTANCE, X0); this.SetProperty(::OBJPROP_YDISTANCE, Y0); TicksPicture.Fill(ColorBid, ::BID); TicksPicture.Fill(ColorAsk, ::ASK); TicksPicture.Fill(ColorSpread, ::AVG); TicksPicture.SendToResource(this.Resource); ::Comment("LastCalcTime = " + (string)::TimeLocal() + ", Ticks = " + (string)bars.GetAmountTicks() + ", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms."); ::ChartRedraw(this.Chart); return; } 在任何情况下,我们都要优化调用,以复制ticks。这需要很多。请澄清你说的单线程是什么意思?另一个问题,为了使刻度线尽可能快地到来,有必要在终端中不打开杯子,并且没有从EA/指示器中订阅杯子更新事件?从参考资料来看。输出速度: 终端在快速访问缓存中为每个符号存储了4096个最近的标记(堆栈运行的符号为65536个标记),对这些数据的查询是最快的。 同样,为了快速访问,应该把赌注隐藏起来,不应该有按符号更新赌注的订阅?还是有一个堆栈(隐藏/打开)已经是减速的保证? fxsaber 2016.10.18 10:53 #205 Alexey Kozitsyn:请澄清你所说的单一流量是什么意思? 关于交易、自动交易系统和策略测试的论坛 测试 "CopyTicks"。 fxsaber, 2016.10.13 10:18在蜱虫方面有一个MT的细微差别,由于收到多个来源的蜱虫,蜱虫历史本身被追溯性地覆盖了。 [删除] 2016.10.18 10:58 #206 fxsaber: 谢谢你,但你知道玻璃和收货速度的情况吗? fxsaber 2016.10.18 11:03 #207 Alexey Kozitsyn: 谢谢你,但你知道玻璃和收货速度的情况吗? 没有,很遗憾。雷纳特称,tumblr不断为整个市场观察提供流媒体。但对于大多数情况来说,这不是一个权宜之计(浪费)的解决方案。 [删除] 2016.10.18 11:05 #208 fxsaber: 没有,很遗憾。雷纳特认为,玻璃对整个市场观察来说是永久性的精简。但这对大多数情况来说不是一个合适的解决方案。 每个符号都有自己的杯子,这将是更合理的做法。 Renat Fatkhullin 2016.10.18 11:17 #209 这就是你应该测试CopyTicks的方式。MqlTick ExtArr[2048];//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void OnTick() { ulong from =(TimeTradeServer()-1200)*1000; ulong ticks =GetMicrosecondCount(); int records=CopyTicks(_Symbol,ExtArr,COPY_TICKS_INFO,from,2048); ticks=GetMicrosecondCount()-ticks; Print("Time: ",ticks," msc for ",records," records"); }下面是以微秒为单位的输出:在过去的20分钟里,2048个INFO点的每个样本有95微秒的输出2016.10.18 14:15:38.673 TEST (USDCHF,M1) Time: 95 msc for 1206 records 这与你所说的几十毫秒有很大的不同。那是因为你没有测量CopyTicks。 Testing 'CopyTicks' 构建1485之后,对CopyTicks()和CopyTicksRange()的缺陷和改进建议。 From theory to practice Renat Fatkhullin 2016.10.18 11:21 #210 Alexey Kozitsyn:请澄清你说的单线程是什么意思?买入/卖出流量和带有成交量和最后/成交价格的完整勾选流量是两个很大的区别。 差异很大。 另一个问题,为了使刻度线尽可能快地到来,有必要在终端中不打开玻璃,并且没有订阅专家顾问/指示器中更新玻璃的事件?终端的开放性或EA的订阅并不重要。如果符号在marketwatch中,那么终端就会无条件地接收所有带有赌注的完整tick流。但最重要的是,上面的采样率计算是不相关的。他们做得很笨拙(除了CopyTicks时间的测量外,任何东西都是如此),甚至让人感到惊讶。 1...141516171819202122232425262728...47 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在几乎空无一人的Alpari市场观察上,copitix的刹车和BCS上一样多。
在Robo上,一切都快了不止一个数量级。
关于USDCHF M1的结果,CalcLength来自指标https://www.mql5.com/ru/code/16537。
结果是不断波动的+单线程规则没有被观察到--在一个没有挑选和混合CopyTicks的流中,在另一个有挑选的流中。在BCS上没有打开演示,但主要是RoboForex上没有堆栈。
奇怪的测量代码。测量了很多不必要的东西,但没有测量CopyTicks请求时间。
{
const ulong StartTime = ::GetMicrosecondCount();
int X0;
int Y0;
BARS bars(this.Chart);
TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0);
this.SetProperty(::OBJPROP_XDISTANCE, X0);
this.SetProperty(::OBJPROP_YDISTANCE, Y0);
TicksPicture.Fill(ColorBid, ::BID);
TicksPicture.Fill(ColorAsk, ::ASK);
TicksPicture.Fill(ColorSpread, ::AVG);
TicksPicture.SendToResource(this.Resource);
::Comment("LastCalcTime = " + (string)::TimeLocal() +
", Ticks = " + (string)bars.GetAmountTicks() +
", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms.");
::ChartRedraw(this.Chart);
return;
}
在任何情况下,我们都要优化调用,以复制ticks。这需要很多。
关于USDCHF M1的结果,CalcLength来自指标https://www.mql5.com/ru/code/16537。
Alpari Real和BCS Real上的问题。打开真实世界的大门是非常容易的。
关于交易、自动交易系统和交易策略测试的论坛
交易所的限价单滑点统计
pivomoe, 2016.08.25 15:15
开始用bx做模拟mt5账户。你将会收到一封电子邮件,里面有一个分发的链接。在选择服务器的阶段,不要选择模拟服务器,而是选择真实交易的服务器。用任意的数据创建一个账户。创建一个证书。所有你有一个零 余额的真实账户,有真实的报价和历史记录。
结果是不断浮动的+单线程的规则没有得到尊重--在一个没有堆栈的线程(在那里没有必要为CopyTicks做选择和合并),在另一个有堆栈的线程。该演示在BCS上没有打开,但主要的是Roboforex上没有流媒体。
奇怪的测量代码。测量了一堆额外的东西,但决不是CopyTicks请求的时间。
这不是由我决定的。这一切都在一起测量。唯一的区别是贸易服务器。所以刹车只与CopyTicks有关。
在任何情况下,copyTicks的调用都是优化的。这需要很多。
Copyix目前的形式是非常不方便的。例如,绝对不清楚如何获得之前的蜱虫,从。
为什么我们不能返回基数的索引并像处理数组一样处理基数?让我们把向数据库添加新数据的问题完全交给用户来解决。如果出了问题,就让他自己解决吧。现在,用Copyix工作是,嗯,非常不方便。我似乎是少数几个非常积极使用它的人之一。而且我可以很负责任地说说这个问题。
关于USDCHF M1的结果,CalcLength来自指标https://www.mql5.com/ru/code/16537。
结果是不断波动的+单线程规则没有被遵守--有一些线程在其中一个上没有挑选和合并CopyTicks,在另一个上有挑选。在BCS上,演示没有打开,但主要的是在Roboforex上没有流媒体
奇怪的测量代码。测量了一堆不必要的东西,但决不是CopyTicks请求的时间。
{
const ulong StartTime = ::GetMicrosecondCount();
int X0;
int Y0;
BARS bars(this.Chart);
TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0);
this.SetProperty(::OBJPROP_XDISTANCE, X0);
this.SetProperty(::OBJPROP_YDISTANCE, Y0);
TicksPicture.Fill(ColorBid, ::BID);
TicksPicture.Fill(ColorAsk, ::ASK);
TicksPicture.Fill(ColorSpread, ::AVG);
TicksPicture.SendToResource(this.Resource);
::Comment("LastCalcTime = " + (string)::TimeLocal() +
", Ticks = " + (string)bars.GetAmountTicks() +
", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms.");
::ChartRedraw(this.Chart);
return;
}
在任何情况下,我们都要优化调用,以复制ticks。这需要很多。
请澄清你说的单线程是什么意思?
另一个问题,为了使刻度线尽可能快地到来,有必要在终端中不打开杯子,并且没有从EA/指示器中订阅杯子更新事件?
从参考资料来看。
输出速度: 终端在快速访问缓存中为每个符号存储了4096个最近的标记(堆栈运行的符号为65536个标记),对这些数据的查询是最快的。
请澄清你所说的单一流量是什么意思?
关于交易、自动交易系统和策略测试的论坛
测试 "CopyTicks"。
fxsaber, 2016.10.13 10:18
在蜱虫方面有一个MT的细微差别,由于收到多个来源的蜱虫,蜱虫历史本身被追溯性地覆盖了。
谢谢你,但你知道玻璃和收货速度的情况吗?
没有,很遗憾。雷纳特认为,玻璃对整个市场观察来说是永久性的精简。但这对大多数情况来说不是一个合适的解决方案。
这就是你应该测试CopyTicks的方式。
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnTick()
{
ulong from =(TimeTradeServer()-1200)*1000;
ulong ticks =GetMicrosecondCount();
int records=CopyTicks(_Symbol,ExtArr,COPY_TICKS_INFO,from,2048);
ticks=GetMicrosecondCount()-ticks;
Print("Time: ",ticks," msc for ",records," records");
}
下面是以微秒为单位的输出:在过去的20分钟里,2048个INFO点的每个样本有95微秒的输出
请澄清你说的单线程是什么意思?
买入/卖出流量和带有成交量和最后/成交价格的完整勾选流量是两个很大的区别。
差异很大。
另一个问题,为了使刻度线尽可能快地到来,有必要在终端中不打开玻璃,并且没有订阅专家顾问/指示器中更新玻璃的事件?
终端的开放性或EA的订阅并不重要。
如果符号在marketwatch中,那么终端就会无条件地接收所有带有赌注的完整tick流。
但最重要的是,上面的采样率计算是不相关的。他们做得很笨拙(除了CopyTicks时间的测量外,任何东西都是如此),甚至让人感到惊讶。