测试 "CopyTicks"。 - 页 3 12345678910...47 新评论 Dmitriy Skub 2015.10.05 13:05 #21 我不是在测试,我是在提醒开发者。实践表明,它永远不会是多余的))。至于交易方向--在福尔茨,它总是由交易所给出的。目前在终端使用的算法不适合这样做 - 你必须从交易所获取信息。 akuloff 2015.10.05 14:03 #22 Dmitriy Skub:我不是在测试,我是在提醒开发者。实践表明,它永远不会是多余的))。关于交易方向--在堡垒上总是由交易所提供。现在在终端使用的算法并不适合于此--我们必须从交易所获取信息。只是有几个关于copyticks(和mqltickinfo)的主题以 "waiting "结束。下面是另一个例子。https://www.mql5.com/ru/forum/61607所以真的,"等待"。:-) CopyTicks на медленном рынке www.mql5.com На нём видно, что после получения первых 10 тиков после запуска терминала, CopyTicks перестаёт работать:. - - Категория: автоматические торговые системы Mikhail Filimonov 2015.12.13 14:22 #23 现在1210版本中的CopyTicks()是什么情况? Vladimir Karputov 2015.12.13 14:24 #24 Михаил: 而现在,在1210版本中,CopyTicks()是怎么做的? 一切都很好:滴答的故事 Dmitriy Skub 2015.12.13 20:30 #25 Михаил: 而现在,在1210版本中,CopyTicks()的情况如何?几乎有效。没有重复的。卷宗没有丢失。但是,旌旗灯号的交易方向是缺失的。买入价/卖出价的计算方式并没有给予适当的保真度。实际结构是旧的,与帮助中描述的不同。因此,我理解这是一个中级建设。因此,我们一如既往地等待着下一次))。 Mikhail Filimonov 2015.12.14 05:22 #26 Dmitriy Skub:它几乎是有效的。没有重复的。卷宗没有丢失。但是,旌旗灯号的交易方向是缺失的。买入价/卖出价的计算方式并没有给予适当的保真度。真正的结构是旧的,与帮助中描述的结构不同。因此,我理解这是一个中级建设。因此,我们一如既往地等待着下一次))。 谢谢 zimbabve15 2016.02.08 09:04 #27 关于交易、自动交易系统和测试交易策略的论坛 淘宝网 zimbabve15, 2016.02.03 06:15 经纪人 "开盘 "工具ED-3.16左表--tick数据由指标在OnCalculate程序中通过SymbolInfoTick请求写入,右表--通过CopyTicks。两者的结构:时间、出价、要价、翻牌、成交量、时间_msec、标志。为什么同样的蜱虫有不同的体积和标志?如果我们通过SymbolInfoTick接收来自经纪商的零标志的原始数据,那么看起来终端处理传入的tick并根据与前一个tick的比较给它分配一个标志?如何处理这些卷宗?差异是显著的。 关于交易、自动交易系统和策略测试的论坛 淘宝网 zimbabve15, 2016.02.03 06:39 FiboFroup经纪商通过SymbolInfoTick的 左侧刻度表,通过CopyTicks的右侧表格。两者的结构:时间、买入、卖出、行权、成交量、时间_msec、标志。 标志是不同的,因为在相同的刻度中的买入/卖出值,以不同的方式书写。 Vladimir Karputov 2016.02.08 09:18 #28 zimbabve15: 在没有任何代码的情况下发布 "床单 "是一种流行病吗? zimbabve15 2016.02.08 10:36 #29 抄袭//////////////////////////////////////////////////////////////////////////////////////////////////////////MqlTick tick_array[]; int OnInit(){int copied=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,countHistoryTicks) 。如果(Save_File!=NOT_SAVE){SaveTicksToFile(tick_array)。}return(INIT_SUCCEED)。}void SaveTicksToFile(MqlTick &massiveTicks[] ){string filename,file_buffer。StringConcatenate(filename,Symbol(),".txt")。int file_handle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ)。FileSeek(file_handle,0,SEEK_END)。int sizeMassiveTicks=ArraySize(massiveTicks)。int i=0。while(i<sizeMassiveTicks){StringConcatenate(file_buffer,TimeToString(massiveTicks[i].time,TIME_DATE|TIME_SECONDS)," ",DoubleToString(massiveTicks[i].bid,_Digits)," ",DoubleToString(massiveTicks[i].ask,_Digits)," ",DoubleToString(massiveTicks[i].last,_Digits)," ",IntegerToString(massiveTicks[i].volume,_Digits)," ",IntegerToString(massiveTicks[i].time_msc))。FileWrite(file_handle,file_buffer)。i++;}FileClose(file_handle)。}符号InfoTick////////////////////////////////////////////////////////////////////////int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[]。const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[]。const int &spread[]){MqlTick last_tick;SymbolInfoTick(Symbol(),last_tick)。TickStruct tick={0,0,0,0,0,0,0};tick.time=TimeCurrent()。tick.bid=last_tick.bid。tick.ask=last_tick.ask。tick.flag=last_tick.flags。tick.last=last_tick.last。tick.time_msc=last_tick.time_msc。tick.volume=last_tick.volume。int total=ArraySize(g_ticks);如果(ArrayResize(g_ticks,total+1,1000)<0){警报(":指标没有足够的内存来保存下一个tick数据;)}否则{g_ticks[total]=tick。UpTick[rate_total-1]=total。}if(total>999){SaveTempTicks()。ArrayFree(g_ticks)。}return(rate_total)。}空白的SaveTempTicks(){// 创建滴答历史 文件int hTicksFile=FileOpen(Symbol()+"fullTicks.tks", FILE_BIN|FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE);如果(hTicksFile<1)返回。FileSeek(hTicksFile,0,SEEK_END)。// 文件记录int total=ArraySize(g_ticks),i=0;while(i<total){如果(FileWriteStruct(hTicksFile,g_ticks[i])==0){Print("保存数据到临时文件失败...")。返回。}i++;}FileClose(hTicksFile)。} Testing 'CopyTicks' 初学者的问题 MQL5 MT5 MetaTrader [解决]当从不同工作时间段的指标中调用/创建指标时,指标不能正确实例化。 Vladimir Karputov 2016.02.08 10:48 #30 请纠正你的帖子(在论坛中正确插入代码)。如果你除了在信息中附上代码外,还能附上文件本身(*.mq5)就更好了。 12345678910...47 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我不是在测试,我是在提醒开发者。实践表明,它永远不会是多余的))。
至于交易方向--在福尔茨,它总是由交易所给出的。
目前在终端使用的算法不适合这样做 - 你必须从交易所获取信息。
我不是在测试,我是在提醒开发者。实践表明,它永远不会是多余的))。
关于交易方向--在堡垒上总是由交易所提供。
现在在终端使用的算法并不适合于此--我们必须从交易所获取信息。
只是有几个关于copyticks(和mqltickinfo)的主题以 "waiting "结束。
下面是另一个例子。
https://www.mql5.com/ru/forum/61607
所以真的,"等待"。:-)
而现在,在1210版本中,CopyTicks()是怎么做的?
而现在,在1210版本中,CopyTicks()的情况如何?
几乎有效。没有重复的。卷宗没有丢失。
但是,旌旗灯号的交易方向是缺失的。买入价/卖出价的计算方式并没有给予适当的保真度。
实际结构是旧的,与帮助中描述的不同。因此,我理解这是一个中级建设。因此,我们一如既往地等待着下一次))。
它几乎是有效的。没有重复的。卷宗没有丢失。
但是,旌旗灯号的交易方向是缺失的。买入价/卖出价的计算方式并没有给予适当的保真度。
真正的结构是旧的,与帮助中描述的结构不同。因此,我理解这是一个中级建设。因此,我们一如既往地等待着下一次))。
关于交易、自动交易系统和测试交易策略的论坛
淘宝网
zimbabve15, 2016.02.03 06:15
经纪人 "开盘 "工具ED-3.16左表--tick数据由指标在OnCalculate程序中通过SymbolInfoTick请求写入,右表--通过CopyTicks。两者的结构:时间、出价、要价、翻牌、成交量、时间_msec、标志。
为什么同样的蜱虫有不同的体积和标志?
如果我们通过SymbolInfoTick接收来自经纪商的零标志的原始数据,那么看起来终端处理传入的tick并根据与前一个tick的比较给它分配一个标志?如何处理这些卷宗?差异是显著的。
关于交易、自动交易系统和策略测试的论坛
淘宝网
zimbabve15, 2016.02.03 06:39
FiboFroup经纪商通过SymbolInfoTick的 左侧刻度表,通过CopyTicks的右侧表格。两者的结构:时间、买入、卖出、行权、成交量、时间_msec、标志。
标志是不同的,因为在相同的刻度中的买入/卖出值,以不同的方式书写。
抄袭
//////////////////////////////////////////////////////////////////////////////////////////////////////////
MqlTick tick_array[];
int OnInit()}
void SaveTicksToFile(MqlTick &massiveTicks[] )
{
string filename,file_buffer。
StringConcatenate(filename,Symbol(),".txt")。
int file_handle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ)。
FileSeek(file_handle,0,SEEK_END)。
int sizeMassiveTicks=ArraySize(massiveTicks)。
int i=0。
while(i<sizeMassiveTicks)
{
StringConcatenate(file_buffer,TimeToString(massiveTicks[i].time,TIME_DATE|TIME_SECONDS)," ",DoubleToString(massiveTicks[i].bid,_Digits)," ",DoubleToString(massiveTicks[i].ask,_Digits)," ",DoubleToString(massiveTicks[i].last,_Digits)," ",IntegerToString(massiveTicks[i].volume,_Digits)," ",IntegerToString(massiveTicks[i].time_msc))。
FileWrite(file_handle,file_buffer)。
i++;
}
FileClose(file_handle)。
}
符号InfoTick
////////////////////////////////////////////////////////////////////////
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[]。
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[]。
const int &spread[])
{
MqlTick last_tick;
SymbolInfoTick(Symbol(),last_tick)。
TickStruct tick={0,0,0,0,0,0,0};
tick.time=TimeCurrent()。
tick.bid=last_tick.bid。
tick.ask=last_tick.ask。
tick.flag=last_tick.flags。
tick.last=last_tick.last。
tick.time_msc=last_tick.time_msc。
tick.volume=last_tick.volume。
int total=ArraySize(g_ticks);
如果(ArrayResize(g_ticks,total+1,1000)<0)
{
警报(":指标没有足够的内存来保存下一个tick数据;)
}
否则
{
g_ticks[total]=tick。
UpTick[rate_total-1]=total。
}
if(total>999)
{
SaveTempTicks()。
ArrayFree(g_ticks)。
}
return(rate_total)。
}
空白的SaveTempTicks()
{
// 创建滴答历史 文件
int hTicksFile=FileOpen(Symbol()+"fullTicks.tks", FILE_BIN|FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE);
如果(hTicksFile<1)
返回。
FileSeek(hTicksFile,0,SEEK_END)。
// 文件记录
int total=ArraySize(g_ticks),i=0;
while(i<total)
{
如果(FileWriteStruct(hTicksFile,g_ticks[i])==0)
{
Print("保存数据到临时文件失败...")。
返回。
}
i++;
}
FileClose(hTicksFile)。
}