错误、漏洞、问题 - 页 1935 1...192819291930193119321933193419351936193719381939194019411942...3184 新评论 fxsaber 2017.07.20 23:14 #19341 Aleksey Vyazmikin:所以我不确定这与交易功能有关... 那里的分支是一个任何人都可以复制的建设性声明的例子。 Aleksey Vyazmikin 2017.07.20 23:28 #19342 fxsaber: 那里的分支是一个建设性声明的例子,任何人都可以复制。我理解--我想把代码贴出来,但它使用了一个交易功能 的类,我还没有付钱......渲染时,我观察到一个逐渐变慢的现象--在最大速度下几乎每条都要几秒钟--有什么想法吗,可能是什么原因?没有杀毒软件检查,SSD驱动器,上面的空间... Renat Fatkhullin 2017.07.20 23:31 #19343 Aleksey Vyazmikin:从MT4到MT5重写一个EA故事是一样的,通过控制点对分钟进行测试。MT52017.07.20 20:01:38.059 核心1 Si-9.17,M1: 107509点,生成35385条。环境在0:00:00.078同步。测试在0:03:52.707通过(包括ticks预处理0:00:00.031)。MT42017.07.20 20:02:32.696 RUBRUR,M1: 在0:00:04.259(总时间0:00:11.310)中处理了225314个勾股事件(35701条,231783条状态)。 而MT5的赞美速度在哪里? 给我看看两个专家顾问的代码。你用的是懒惰的MQL4模拟器,而不是本地的MQL5,对吗? Aleksey Vyazmikin 2017.07.21 00:21 #19344 Renat Fatkhullin: 你展示了两个EA的代码。你有懒惰的MQL4模拟器而不是本地的MQL5,对吗?还没有准备好展示代码,因为 关于交易、自动交易系统和策略测试的论坛 虫子,虫子,问题 Aleksey Vyazmikin, 2017.07.20 23:28 我理解--我想把代码贴出来,但它使用了一个交易功能 的类,我还没有付钱......但准备显示MT5的剖析结果--据我所知,交易功能是不存在的。 对于OHLC环境,我使用以下功能 //------------------------------------------------------------------- //==MQL4toMQL5 //+------------------------------------------------------------------+ //| Получим Open для заданного номера бара | //+------------------------------------------------------------------+ double Open(int index) { double open=0; ArraySetAsSeries(Open,true); int copied=CopyOpen(Symbol(),0,0,Bars(Symbol(),0),Open); if(copied>0 && index<copied) open=Open[index]; return(open); } //+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ double Low(int index) { double low=0; ArraySetAsSeries(Low,true); int copied=CopyLow(Symbol(),0,0,Bars(Symbol(),0),Low); if(copied>0 && index<copied) low=Low[index]; return(low); } //+------------------------------------------------------------------+ //| Получим High для заданного номера бара | //+------------------------------------------------------------------+ double High(int index) { double high=0; ArraySetAsSeries(High,true); int copied=CopyHigh(Symbol(),0,0,Bars(Symbol(),0),High); if(copied>0 && index<copied) high=High[index]; return(high); } //+------------------------------------------------------------------+ //| Получим Close для заданного номера бара | //+------------------------------------------------------------------+ double Close(int index) { double close=0; ArraySetAsSeries(Close,true); int copied=CopyHigh(Symbol(),0,0,Bars(Symbol(),0),Close); if(copied>0 && index<copied) close=Close[index]; return(close); } 也许我做错了什么? Vitaly Muzichenko 2017.07.21 00:31 #19345 Aleksey Vyazmikin:还没有准备好展示代码,因为但我准备展示MT5的剖析结果--因为我知道交易功能是不可能的。对于OHLC环境,我使用以下功能 也许我做错了什么?double iOpen(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[]; if(CopyOpen(symbol,tf, index, 1, Arr)>0) return(Arr[0]); else return(-1); } double iClose(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[]; if(CopyClose(symbol,tf, index, 1, Arr)>0) return(Arr[0]); else return(-1); } double iHigh(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[]; if(CopyHigh(symbol,tf, index, 1, Arr)>0) return(Arr[0]); else return(-1); } double iLow(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[]; if(CopyLow(symbol,tf, index, 1, Arr)>0) return(Arr[0]); else return(-1); } Vitaly Muzichenko 2017.07.21 00:36 #19346 你从故事中复制所有可用的条形图,但你实际上只需要你正在寻找的一个索引。CopyOpen(Symbol(),0,index,Bars(Symbol(),0)1,Open); Aleksey Vyazmikin 2017.07.21 00:50 #19347 Vitaly Muzichenko:你从故事中复制所有可用的条形图,但你实际上只需要你正在寻找的一个索引。根据你的配方改变了它,EA停止了开单......也许我又搞砸了?//------------------------------------------------------------------- //==MQL4toMQL5 //+------------------------------------------------------------------+ //| Получим Open для заданного номера бара | //+------------------------------------------------------------------+ double Open(int index) { double open=0; ArraySetAsSeries(Open,true); int copied=CopyOpen(Symbol(),0,index,1,Open); if(copied>0 && index<copied) open=Open[index]; return(open); } //+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ double Low(int index) { double low=0; ArraySetAsSeries(Low,true); int copied=CopyLow(Symbol(),0,index,1,Low); if(copied>0 && index<copied) low=Low[index]; return(low); } //+------------------------------------------------------------------+ //| Получим High для заданного номера бара | //+------------------------------------------------------------------+ double High(int index) { double high=0; ArraySetAsSeries(High,true); int copied=CopyHigh(Symbol(),0,index,1,High); if(copied>0 && index<copied) high=High[index]; return(high); } //+------------------------------------------------------------------+ //| Получим Close для заданного номера бара | //+------------------------------------------------------------------+ double Close(int index) { double close=0; ArraySetAsSeries(Close,true); int copied=CopyHigh(Symbol(),0,index,1,Close); if(copied>0 && index<copied) close=Close[index]; return(close); } //+------------------------------------------------------------------+ //| Получим IOpen для заданного номера бара | //+------------------------------------------------------------------+ double iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double open=0; ArraySetAsSeries(OpenI,true); int copied=CopyOpen(symbol,timeframe,index,1,OpenI); if(copied>0 && index<copied) open=OpenI[index]; return(open); } //+------------------------------------------------------------------+ //| Получим iLow для заданного номера бара | //+------------------------------------------------------------------+ double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double low=0; ArraySetAsSeries(LowI,true); int copied=CopyLow(symbol,timeframe,index,1,LowI); if(copied>0 && index<copied) low=LowI[index]; return(low); } //+------------------------------------------------------------------+ //| Получим iHigh для заданного номера бара | //+------------------------------------------------------------------+ double iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double high=0; ArraySetAsSeries(HighI,true); int copied=CopyHigh(symbol,timeframe,index,1,HighI); if(copied>0 && index<copied) high=HighI[index]; return(high); } //+------------------------------------------------------------------+ //| Получим iClose для заданного номера бара | //+------------------------------------------------------------------+ double iClose(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double close=0; ArraySetAsSeries(CloseI,true); int copied=CopyHigh(symbol,timeframe,index,1,CloseI); if(copied>0 && index<copied) close=CloseI[index]; return(close); } Vitaly Muzichenko 2017.07.21 00:56 #19348 Aleksey Vyazmikin:改变了你的配方,EA停止了开单...也许我又搞砸了?double Close(int index) { double close=0; ArraySetAsSeries(Close,true); int copied=CopyHigh(Symbol(),0,index,1,Close); if(copied>0 && index<copied) close=Close[index]; return(close); }收盘价 !=高点PS。请写在这里,这不是一个主题我要求版主把帖子移到正确的主题,而不是把这个主题砸了。 Вопросы от начинающих MQL5 MT5 MetaTrader 5 2012.03.12www.mql5.com Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000... Aleksey Vyazmikin 2017.07.21 01:20 #19349 Vitaly Muzichenko:收盘价 !=高点PS。在这里 发帖,这不是正确的主题。我请版主把帖子移到正确的主题,不要把这个主题弄得太乱。谢谢--已纠正。代码如下。//------------------------------------------------------------------- //==MQL4toMQL5 //+------------------------------------------------------------------+ //| Получим Open для заданного номера бара | //+------------------------------------------------------------------+ double Open(int index) { double open=0; int copied=CopyOpen(Symbol(),0,index,1,Open); if(copied>0) open=Open[0]; return(open); } //+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ double Low(int index) { double low=0; int copied=CopyLow(Symbol(),0,index,1,Low); if(copied>0) low=Low[0]; return(low); } //+------------------------------------------------------------------+ //| Получим High для заданного номера бара | //+------------------------------------------------------------------+ double High(int index) { double high=0; int copied=CopyHigh(Symbol(),0,index,1,High); if(copied>0) high=High[0]; return(high); } //+------------------------------------------------------------------+ //| Получим Close для заданного номера бара | //+------------------------------------------------------------------+ double Close(int index) { double close=0; int copied=CopyClose(Symbol(),0,index,1,Close); if(copied>0) close=Close[0]; return(close); } //+------------------------------------------------------------------+ //| Получим IOpen для заданного номера бара | //+------------------------------------------------------------------+ double iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double open=0; int copied=CopyOpen(symbol,timeframe,index,1,OpenI); if(copied>0) open=OpenI[0]; return(open); } //+------------------------------------------------------------------+ //| Получим iLow для заданного номера бара | //+------------------------------------------------------------------+ double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double low=0; int copied=CopyLow(symbol,timeframe,index,1,LowI); if(copied>0) low=LowI[0]; return(low); } //+------------------------------------------------------------------+ //| Получим iHigh для заданного номера бара | //+------------------------------------------------------------------+ double iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double high=0; int copied=CopyHigh(symbol,timeframe,index,1,HighI); if(copied>0) high=HighI[0]; return(high); } //+------------------------------------------------------------------+ //| Получим iClose для заданного номера бара | //+------------------------------------------------------------------+ double iClose(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double close=0; int copied=CopyClose(symbol,timeframe,index,1,CloseI); if(copied>0) close=CloseI[0]; return(close); }在测试器中的时间已经增长--厌倦了等待:) Vladimir Pastushak 2017.07.21 08:04 #19350 我在计算当月历史上的交易手数。 double lots=0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if(TimeMonth(OrderCloseTime())==TimeMonth(TimeCurrent())) if(OrderType()<2) lots+=OrderLots();事实证明,如果我在终端历史中显示指定时间段的订单,例如过去三天,那么OrdersHistoryTotal()只能看到过去三天 的情况。我认为这是不正确的。OrdersHistoryTotal()应该看到整个历史的所有订单,但按日期和时期过滤应该由开发人员来执行。否则,用户不正确地隐藏历史记录会导致问题 .... 1...192819291930193119321933193419351936193719381939194019411942...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所以我不确定这与交易功能有关...
那里的分支是一个建设性声明的例子,任何人都可以复制。
我理解--我想把代码贴出来,但它使用了一个交易功能 的类,我还没有付钱......
渲染时,我观察到一个逐渐变慢的现象--在最大速度下几乎每条都要几秒钟--有什么想法吗,可能是什么原因?
没有杀毒软件检查,SSD驱动器,上面的空间...
从MT4到MT5重写一个EA
故事是一样的,通过控制点对分钟进行测试。
MT5
2017.07.20 20:01:38.059 核心1 Si-9.17,M1: 107509点,生成35385条。环境在0:00:00.078同步。测试在0:03:52.707通过(包括ticks预处理0:00:00.031)。
MT4
2017.07.20 20:02:32.696 RUBRUR,M1: 在0:00:04.259(总时间0:00:11.310)中处理了225314个勾股事件(35701条,231783条状态)。
你展示了两个EA的代码。你有懒惰的MQL4模拟器而不是本地的MQL5,对吗?
还没有准备好展示代码,因为
关于交易、自动交易系统和策略测试的论坛
虫子,虫子,问题
Aleksey Vyazmikin, 2017.07.20 23:28
我理解--我想把代码贴出来,但它使用了一个交易功能 的类,我还没有付钱......
但准备显示MT5的剖析结果--据我所知,交易功能是不存在的。
也许我做错了什么?对于OHLC环境,我使用以下功能
还没有准备好展示代码,因为
但我准备展示MT5的剖析结果--因为我知道交易功能是不可能的。
对于OHLC环境,我使用以下功能
也许我做错了什么?你从故事中复制所有可用的条形图,但你实际上只需要你正在寻找的一个索引。
你从故事中复制所有可用的条形图,但你实际上只需要你正在寻找的一个索引。
根据你的配方改变了它,EA停止了开单......也许我又搞砸了?
改变了你的配方,EA停止了开单...也许我又搞砸了?
收盘价 !=高点
PS。请写在这里,这不是一个主题
我要求版主把帖子移到正确的主题,而不是把这个主题砸了。
收盘价 !=高点
PS。在这里 发帖,这不是正确的主题。
我请版主把帖子移到正确的主题,不要把这个主题弄得太乱。
谢谢--已纠正。
代码如下。
在测试器中的时间已经增长--厌倦了等待:)
我在计算当月历史上的交易手数。
事实证明,如果我在终端历史中显示指定时间段的订单,例如过去三天,那么OrdersHistoryTotal()只能看到过去三天 的情况。
我认为这是不正确的。OrdersHistoryTotal()应该看到整个历史的所有订单,但按日期和时期过滤应该由开发人员来执行。
否则,用户不正确地隐藏历史记录会导致问题 ....