错误、漏洞、问题 - 页 53 1...464748495051525354555657585960...3184 新评论 Renat Fatkhullin 2010.07.18 12:27 #521 Kos: 我没有在文档中找到任何关于交易请求 结果的MqlTradeCheckResult结构的响应代码(Retcode)的描述。会不会有呢?所有的描述都在文件中。看看OrderSend函数,MqlTradeResult 结构和交易响应代码列表。 Anatoliy Ivanov 2010.07.18 12:39 #522 Renat: 被告知 - 没有大小的空数组 Tnew[1] - 出了数组,数组被描述为Tnew[1],所以它的元素只能作为Tnew[0]被访问,因为索引从零开始。 输出是什么?在这种情况下,Tnew[1]是一个不正确的表达,但它是否有效?Tnew[0] , Tnew[] 是一个有效的表达式,还是别的什么?当使用Tnew[1]、Tnew[0]、Tnew[]时,专家顾问的结果似乎没有变化。 Ruslan Khasanov 2010.07.18 12:59 #523 Renat:所有的描述都在文件中。 看看OrderSend函数,MqlTradeResult 结构和交易响应代码列表。 Renat,如果我理解正确的话,MqlTradeResult 结构的ENUM_TRADE_RETURN_CODES返回代码 ,也适用于MqlTradeCheckResult结构 [删除] 2010.07.18 13:08 #524 ias: 输出是什么?在这种情况下,Tnew[1]是一个不正确的表达,但它是否可以接受?Tnew[0] , Tnew[] 是一个有效的表达式还是别的什么?当使用Tnew[1],Tnew[0],Tnew[]时,专家的结果似乎没有变化。结果不可能是相同的,至少在通过一个不存在的索引从数组中读取数据时是如此。你认为Tnew[1]里有什么?我不太确定所写的是什么,当EA离开范围时,它可以报告错误 并继续前进。 但在这种情况下,Tnew[0]中会有什么? Общайтесь с разработчиками через Сервисдеск! www.mql5.com Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы. Renat Fatkhullin 2010.07.18 15:53 #525 Kos: Renat,如果我理解正确的话,MqlTradeResult 结构的ENUM_TRADE_RETURN_CODES返回代码 ,也适用于MqlTradeCheckResult结构是的,贸易错误代码的基数对整个贸易功能空间是相同的。新功能的描述将被纠正--我们只是没有时间马上去做。 Anatoliy Ivanov 2010.07.18 16:10 #526 Interesting: 结果不可能是相同的,至少在通过一个不存在的索引从数组中读取数据时是如此。你认为Tnew[1]里有什么? 我对写作不太确定,专家顾问可以报告错误 并在离开范围时继续前进,但在这种情况下,Tnew[0]中会有什么? 当使用数据时间 Tnew[1];Tnew[0];Tnew[];时,专家工作的结果没有变化。这是否意味着在Exp_TEMA.mq5 "创建一个在不同符号上进行交易的专家顾问 "一文中的,函数//+X================================================================X+ //| IsNewBar() function | //+X================================================================X+ bool IsNewBar(int Number, string symbol, ENUM_TIMEFRAMES timeframe) { //----+ static datetime Told[]; datetime Tnew[1]; //----+ Объвление переменной для хранения размеров массивов переменных static int Size_ = 0; //----+ Изменение размеров массивов переменных if (Number + 1 > Size_) { uint size = Number + 1; //---- if (ArrayResize(Told, size) == -1) { string word = ""; StringConcatenate(word, "IsNewBar( ", Number, " ): Ошибка!!! Не удалось изменить размеры массивов переменных!!!"); Print(word); //---- int error = GetLastError(); ResetLastError(); if (error > 4000) { StringConcatenate(word, "IsNewBar( ", Number, " ): Код ошибки ", error); Print(word); } //---- Size_ = -2; return(false); } } CopyTime(symbol, timeframe, 0, 1, Tnew); if (Tnew[0] != Told[Number]) { Told[Number] = Tnew[0]; return(true); } //----+ return(false); } //+X================================================================X+ 不起作用? 你认为Tnew[1]是什么? 在CopyTime(symbol, timeframe, 0, 1, Tnew)之后;地址Tnew[1]应该包含前一个条形图的开始时间。 [删除] 2010.07.18 18:28 #527 ias: 当使用数据时间 Tnew[1];Tnew[0];Tnew[];时,专家工作的结果并没有改变。是否应该从《创建专家顾问在不同的符号上进行交易》一文中得出有专家顾问Exp_TEMA.mq5?,函数 不起作用? 你认为Tnew[1]是什么? 在CopyTime(symbol, timeframe, 0, 1, Tnew)之后;地址Tnew[1]应该包含前一个条形图的开始时间。让我们按顺序分析一下这两个字符串声明了两个数组,其中一个是动态的,而第二个数组( Tnew) 只包含一条记录。static datetime Told[]; datetime Tnew[1]; 这是在试图改变动态数组的 大小。假设数组中的记录数量将等于大小。 if (ArrayResize(Told, size) == -1)这一行从第0 条开始复制一条记录(酒吧日期)到Tnew 数组。然后这个日期就变成了Tnew[0](因为数组的编号为ZERO)。 CopyTime(symbol, timeframe, 0, 1, Tnew);这里,数组Tnew 的唯一记录与数组Told 的一个单元格中编号为Number-1 的记录进行比较(记住,数组是从0开始编号的)。如果这些日期不匹配,我们就把Tnew 数组的值写到Told 数组的单元格。if (Tnew[0] != Told[Number]) { Told[Number] = Tnew[0]; return(true); } Валерий 2010.07.18 21:06 #528 Kos: 我没有在文档中找到任何关于MqlTradeCheckResult贸易请求 检查结果结构的响应代码(Retcode)的描述。他们会不会有机会? 在MetaTrader 5/MQL5/Include/ErrorDescription.mqh中。 附加的文件: errordescription.mqh 16 kb Ruslan Khasanov 2010.07.18 22:14 #529 Valmars: 在文件MetaTrader 5/MQL5/Include/ErrorDescription.mqh中。 瓦莱里,谢谢你。但这并不是我所寻找的:) Prival 2010.07.19 00:32 #530 我有一个问题。没有孔的图形的问题没有被考虑吗?https://www.mql5.com/ru/forum/100491非常难以同步一切,我似乎已经试图在指标中说明一切,但这些孔是非常难以处理的。2010.07.19 02:20:12 检查孔洞 (EURUSD,M1) 从2010.07.09 21:35:00开始,历史上的孔洞数量为260。 2010.07.19 02:20:12 检查孔(EURUSD,M1) GBPUSD孔 2010.07.19 00:20:00 2010.07.19 02:20:12 检查孔(EURUSD,M1) 孔 USDJPY 2010.07.19 00:15:00 2010.07.19 02:20:12 检查孔(EURUSD,M1) 孔EURGBP 2010.07.16 22:43:00 2010.07.19 02:20:12 检查孔(EURUSD,M1) GBPUSD孔 2010.07.16 22:43:00 2010.07.19 02:20:12 检查孔(EURUSD,M1) GBPUSD孔 2010.07.16 22:38:00 2010.07.19 02:20:12 检查孔(EURUSD,M1) AUDUSD孔 2010.07.16 22:21:00etc..... //+------------------------------------------------------------------+ //| Проверка дыр.mq5 | //| Привалов С.В. | //| https://www.mql5.com/ru/users/Prival | //+------------------------------------------------------------------+ #property copyright "Привалов С.В." #property link "https://www.mql5.com/ru/users/Prival" #property version "1.00" #property indicator_separate_window #property indicator_buffers 1 #property indicator_plots 1 #property indicator_color1 Blue int MaxBars=7200; // точка старта string mas_0[]={"USDCHF","GBPUSD","EURUSD","USDJPY","USDCAD","AUDUSD","EURGBP","EURAUD","EURCHF","EURJPY","GBPJPY","GBPCHF"}; int count_symbol=12; double Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { SetIndexBuffer(0,Buffer,INDICATOR_DATA); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_HISTOGRAM); //--- на старте сразу же пошлем асинхронные запросы на поднятие таймфреймов в память for(int i=0; i<count_symbol; i++) CheckOtherSymbol(mas_0[i],MaxBars); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { //--- if(rates_total<MaxBars) return(0); // ничего не считаем и ничего не рисуем на графике int start_pos=rates_total-MaxBars-1; // точка старта if(close[start_pos]==0) return(0); // ничего не считаем и ничего не рисуем на графике //--- снова пошлем асинхронные запросы на поднятие таймфреймов в память for(int i=0; i<count_symbol; i++) { if(!CheckOtherSymbol(mas_0[i],MaxBars)) return(0); } if(prev_calculated==0) { Print("Дата начала тестирования ",time[start_pos]); Print("Символ ",_Symbol," приод ",_Period); } else start_pos=prev_calculated-1; int sum=0; //--- расчет индикатора for(int i=start_pos;i<rates_total;i++) { Buffer[i]=0; for(int j=0; j<count_symbol; j++) { if(!CheckTimeOtherSymbol(mas_0[j],time[i])) { Print("Дыра ",mas_0[j]," ",time[i]); sum++; } } } Print("Количество дыр в истории ",sum, " от даты ",time[start_pos]); //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Проверка символов с асинхронным возбуждением | //+------------------------------------------------------------------+ //| вход | //| symbol - символ | //| count_Bars - необходимое количество баров | //+------------------------------------------------------------------+ bool CheckOtherSymbol(string symbol,int bars) { datetime ctm[1]; datetime checktime=TimeCurrent()-bars*PeriodSeconds(_Period); // требуемое время bool res=true; // скопируем время требуемого бара if(CopyTime(symbol,_Period,checktime,1,ctm)!=1) res=false; if(!res) Print("Нет данных по символу ",symbol); //--- вернем результат return(res); } //+------------------------------------------------------------------+ //| Проверка синхронности символов | //+------------------------------------------------------------------+ bool CheckTimeOtherSymbol(string symbol,datetime time) { datetime ctm[1]; bool res=false; //--- скопируем время бара if(CopyTime(symbol,_Period,time,1,ctm)==1) { // сравним его с требуемым if(ctm[0]==time) res=true; } // if(!res) Print("Нет синхронизации по символу ",symbol," time[0]=",ctm[0]," нужно ",time); //--- вернем результат return(res); } //+------------------------------------------------------------------+ 和第二个问题:在这个多货币指标中是否有我没有检查过的其他隐患? Всем, кто хотел видеть графики без пропущенных баров - сюда =) - MQL4 форум www.mql5.com Всем, кто хотел видеть графики без пропущенных баров - сюда =) - MQL4 форум 附加的文件: 1a89u1et_aaj.mq5 5 kb Errors, bugs, questions Flexible Time Charts for Better NN EA development 1...464748495051525354555657585960...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我没有在文档中找到任何关于交易请求 结果的MqlTradeCheckResult结构的响应代码(Retcode)的描述。会不会有呢?
所有的描述都在文件中。
看看OrderSend函数,MqlTradeResult 结构和交易响应代码列表。
被告知 - 没有大小的空数组
Tnew[1] - 出了数组,数组被描述为Tnew[1],所以它的元素只能作为Tnew[0]被访问,因为索引从零开始。
所有的描述都在文件中。
看看OrderSend函数,MqlTradeResult 结构和交易响应代码列表。
输出是什么?在这种情况下,Tnew[1]是一个不正确的表达,但它是否可以接受?Tnew[0] , Tnew[] 是一个有效的表达式还是别的什么?当使用Tnew[1],Tnew[0],Tnew[]时,专家的结果似乎没有变化。
结果不可能是相同的,至少在通过一个不存在的索引从数组中读取数据时是如此。你认为Tnew[1]里有什么?
我不太确定所写的是什么,当EA离开范围时,它可以报告错误 并继续前进。 但在这种情况下,Tnew[0]中会有什么?
Renat,如果我理解正确的话,MqlTradeResult 结构的ENUM_TRADE_RETURN_CODES返回代码 ,也适用于MqlTradeCheckResult结构
是的,贸易错误代码的基数对整个贸易功能空间是相同的。
新功能的描述将被纠正--我们只是没有时间马上去做。
结果不可能是相同的,至少在通过一个不存在的索引从数组中读取数据时是如此。你认为Tnew[1]里有什么?
我对写作不太确定,专家顾问可以报告错误 并在离开范围时继续前进,但在这种情况下,Tnew[0]中会有什么?
当使用数据时间 Tnew[1];Tnew[0];Tnew[];时,专家工作的结果没有变化。这是否意味着在Exp_TEMA.mq5 "创建一个在不同符号上进行交易的专家顾问 "一文中的,函数
不起作用?
你认为Tnew[1]是什么?
在CopyTime(symbol, timeframe, 0, 1, Tnew)之后;地址Tnew[1]应该包含前一个条形图的开始时间。
当使用数据时间 Tnew[1];Tnew[0];Tnew[];时,专家工作的结果并没有改变。是否应该从《创建专家顾问在不同的符号上进行交易》一文中得出有专家顾问Exp_TEMA.mq5?,函数
不起作用?
你认为Tnew[1]是什么?
在CopyTime(symbol, timeframe, 0, 1, Tnew)之后;地址Tnew[1]应该包含前一个条形图的开始时间。
让我们按顺序分析一下
这两个字符串声明了两个数组,其中一个是动态的,而第二个数组( Tnew) 只包含一条记录。
这是在试图改变动态数组的 大小。假设数组中的记录数量将等于大小。
这一行从第0 条开始复制一条记录(酒吧日期)到Tnew 数组。然后这个日期就变成了Tnew[0](因为数组的编号为ZERO)。
这里,数组Tnew 的唯一记录与数组Told 的一个单元格中编号为Number-1 的记录进行比较(记住,数组是从0开始编号的)。
如果这些日期不匹配,我们就把Tnew 数组的值写到Told 数组的单元格。
我没有在文档中找到任何关于MqlTradeCheckResult贸易请求 检查结果结构的响应代码(Retcode)的描述。他们会不会有机会?
在文件MetaTrader 5/MQL5/Include/ErrorDescription.mqh中。
我有一个问题。没有孔的图形的问题没有被考虑吗?https://www.mql5.com/ru/forum/100491
非常难以同步一切,我似乎已经试图在指标中说明一切,但这些孔是非常难以处理的。
2010.07.19 02:20:12 检查孔洞 (EURUSD,M1) 从2010.07.09 21:35:00开始,历史上的孔洞数量为260。
2010.07.19 02:20:12 检查孔(EURUSD,M1) GBPUSD孔 2010.07.19 00:20:00
2010.07.19 02:20:12 检查孔(EURUSD,M1) 孔 USDJPY 2010.07.19 00:15:00
2010.07.19 02:20:12 检查孔(EURUSD,M1) 孔EURGBP 2010.07.16 22:43:00
2010.07.19 02:20:12 检查孔(EURUSD,M1) GBPUSD孔 2010.07.16 22:43:00
2010.07.19 02:20:12 检查孔(EURUSD,M1) GBPUSD孔 2010.07.16 22:38:00
2010.07.19 02:20:12 检查孔(EURUSD,M1) AUDUSD孔 2010.07.16 22:21:00
etc.....
和第二个问题:在这个多货币指标中是否有我没有检查过的其他隐患?