任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 495 1...488489490491492493494495496497498499500501502...1178 新评论 Warstein 2014.02.22 09:37 #4941 终端已经从509更新到600,EA在编译时给出了这个警告。 ErrNum "的声明隐藏了第81行的全局声明。 和代码的一部分。 string ErrorDescription(int ErrNum) { switch(ErrNum) { 你能告诉我问题是什么吗? Artyom Trishkin 2014.02.22 09:42 #4942 rustein:终端已经从509更新到600,EA在编译时给出了这个警告。 ErrNum "的声明隐藏了第81行的全局声明。和代码的一部分。你能告诉我问题是什么吗? 你有ErrNum全局声明。在函数内部的同名变量会隐藏全局变量的值。在函数中,给一个不同的名字 Warstein 2014.02.22 09:47 #4943 谢谢,所以把ErrNum 改为ErrNumber,就这样了?警告消失了,一切都会正常工作? string ErrorDescription(int ErrNumber) { switch(ErrNum) { case 0: return("NO ERROR"); case 1: return("NO RESULT"); case 2: return("COMMON ERROR"); case 3: return("INVALID TRADE PARAMETERS"); case 4: return("SERVER BUSY"); case 5: return("OLD VERSION"); case 6: return("NO CONNECTION"); case 7: return("NOT ENOUGH RIGHTS"); Warstein 2014.02.22 09:51 #4944 很好,再次感谢你。在代码中还有一个最后的警告。 不是所有的控制路径都会返回一个值 double FractalUp() { if(iCustom(Symbol(),0,"SR",FractalRange,false,1,2,TradeBar) != EMPTY_VALUE) return(iCustom(Symbol(),0,"SR",FractalRange,false,1,2,TradeBar)); } 请你也告诉我这里出了什么问题。 Artyom Trishkin 2014.02.22 10:08 #4945 rustein:很好,再次感谢你。在代码中还有一个最后的警告。 不是所有的控制路径都会返回一个值 请你也告诉我这里出了什么问题。 如果条件得到满足,该函数返回一个值。 否则,该函数没有返回。从函数中返回一些默认值 Warstein 2014.02.22 10:19 #4946 hehe :), 这样做,警告就消失了。 double FractalUp() { if(iCustom(Symbol(),0,"SR",FractalRange,false,1,2,TradeBar) != EMPTY_VALUE) { return(iCustom(Symbol(),0,"SR",FractalRange,false,1,2,TradeBar)); } else return (0); } 希望这很好,mt4的生活 还要继续:),再次感谢! Artyom Trishkin 2014.02.22 10:24 #4947 rustein: hehe :), 这样做,警告就消失了。 希望这很好,mt4的生活 还要继续:),再次感谢! 不客气。 picabu 2014.02.22 10:28 #4948 伙计们,有4个简单的自制函数,显然它们有一个错误。请帮助一个初学者! (每个函数的名称不言自明,这个函数应该做什么) extern double LOT =0.1; double GetLastOrderProfit() { int time = 0; double profit = 0; for(int i = OrdersHistoryTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic) { if(time<OrderCloseTime()) { time=OrderCloseTime(); profit=OrderProfit(); } } } } return(profit); } //+------------------------------------------------------------------+ double GetLastLot() { int time = 0; double Lot = 0; for(int i = OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic) { if(time<OrderCloseTime()) time=OrderCloseTime(); Lot = OrderLots(); } } } if(Lot <= 0) Lot = LOT; return(Lot); } //+------------------------------------------------------------------+ double GetLastTenOrdersProfit() { double profit = 0; int count = 0; for(int i = OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic) { if (count<10) { profit=profit+OrderProfit(); count++; } } } } return(profit); } //+------------------------------------------------------------------+ double GetLot() { double Lot = 0; double n = GetLastLot(); if (GetTotalProfit() < 0 || GetLastLotProfit() < 0) Lot = NormalizeDouble (n * MartinStep,2); if (GetTotalProfit() >= 0 || GetLastLotProfit() >= 0) Lot = LOT; return (Lot); } [删除] 2014.02.22 10:30 #4949 帮助我了解 double b=NormalizeDouble(ObjectGet("b",OBJPROP_TIME1),Digits)。 int shiftb=iBarShift(NULL,0,b)。 写一个警告,由于类型转换可能导致数据丢失,指的是选定的b,是的,它不是数据时间,但如果你这样做。 datetimeb=ObjectGet("b",OBJPROP_TIME1)。 int shiftb=iBarShift(NULL,0,b)。 由于某些原因,在datetimeb 上会有一个警告, 似乎是正确的,不应该有警告。 Artyom Trishkin 2014.02.22 10:35 #4950 Alexandr24: 帮助我了解 double b=NormalizeDouble(ObjectGet("b",OBJPROP_TIME1),Digits)。 int shiftb=iBarShift(NULL,0,b)。 写一个警告,由于类型转换可能导致数据丢失,指的是选定的b,是的,它不是数据时间,但如果你这样做。 datetimeb=ObjectGet("b",OBJPROP_TIME1)。 int shiftb=iBarShift(NULL,0,b)。 由于某些原因,在datetimeb 上会有一个警告, 似乎是正确的,不应该有警告。 并设置int b 1...488489490491492493494495496497498499500501502...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
终端已经从509更新到600,EA在编译时给出了这个警告。
ErrNum "的声明隐藏了第81行的全局声明。
和代码的一部分。
你能告诉我问题是什么吗?
终端已经从509更新到600,EA在编译时给出了这个警告。
ErrNum "的声明隐藏了第81行的全局声明。
和代码的一部分。
你能告诉我问题是什么吗?
谢谢,所以把ErrNum 改为ErrNumber,就这样了?警告消失了,一切都会正常工作?
在代码中还有一个最后的警告。
不是所有的控制路径都会返回一个值
请你也告诉我这里出了什么问题。
在代码中还有一个最后的警告。
不是所有的控制路径都会返回一个值
请你也告诉我这里出了什么问题。
如果条件得到满足,该函数返回一个值。
否则,该函数没有返回。从函数中返回一些默认值
这样做,警告就消失了。
希望这很好,mt4的生活 还要继续:),再次感谢!
这样做,警告就消失了。
希望这很好,mt4的生活 还要继续:),再次感谢!
伙计们,有4个简单的自制函数,显然它们有一个错误。请帮助一个初学者!
(每个函数的名称不言自明,这个函数应该做什么)
帮助我了解
double b=NormalizeDouble(ObjectGet("b",OBJPROP_TIME1),Digits)。
int shiftb=iBarShift(NULL,0,b)。
写一个警告,由于类型转换可能导致数据丢失,指的是选定的b,是的,它不是数据时间,但如果你这样做。
datetimeb=ObjectGet("b",OBJPROP_TIME1)。
int shiftb=iBarShift(NULL,0,b)。
由于某些原因,在datetimeb 上会有一个警告, 似乎是正确的,不应该有警告。
帮助我了解
double b=NormalizeDouble(ObjectGet("b",OBJPROP_TIME1),Digits)。
int shiftb=iBarShift(NULL,0,b)。
写一个警告,由于类型转换可能导致数据丢失,指的是选定的b,是的,它不是数据时间,但如果你这样做。
datetimeb=ObjectGet("b",OBJPROP_TIME1)。
int shiftb=iBarShift(NULL,0,b)。
由于某些原因,在datetimeb 上会有一个警告, 似乎是正确的,不应该有警告。