任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 740 1...733734735736737738739740741742743744745746747...1178 新评论 [删除] 2014.10.18 16:31 #7391 evillive: 我说的是球场,不是最小的地段,但好吧,算了。 哦,是的,当然,如果你不是为自己写作,你必须考虑到这一点。 [删除] 2014.10.18 16:49 #7392 evillive:谢谢,已经有人向我解释过了 :D很明显,对我自己来说,我写的是所有的支票,因为它应该是,只是有一个大纲,如何地段平衡/10带来的比例,但这个想法是不成功的......但你有很多文字,它可以更简单。 lotstep= MarketInfo(Symbol(),MODE_LOTSTEP); lotmax=MarketInfo(Symbol(), MODE_MAXLOT); lotmin=MarketInfo(Symbol(), MODE_MINLOT); lot=lotstep*MathRound(AccountBalance()*0.001/lotstep); if(lot < lotmin) lot = lotmin; if(lot > lotmax) lot = lotmax;它可以更简单。只是,如果lotstep的MarketInfo()返回0,会发生什么?会有什么后果?专家顾问将被停止,头寸将被放弃?如果MINLOT被经纪人设置为0.03,LOTSTEP为0.02,也就是说,前两个允许的手数是0.03和0.05,而目前的余额是41 - 在你的代码中计算的手数将是什么值?为什么,如果手数小于最小值--例如,余额等于1,在表达式完全计算后将等于0--为什么在这种情况下,你的代码取手数等于MINLOT,这可能是0.03,即比 "AccountBalance()*0.001 "的 "原始 "值多30倍,在这种情况下等于0.001?你不可能总是得到一个有效的手数,因为条件可能是这样,没有一个有效的手数与之对应。错误的情况必须全部编程,必须记住,这至少是90%的工作。MetaQuotes设定的应用模型是:lot = MINLOT + N * LOTSTEP,其中N = 0, 1, 2......。M.而M是这样的:MINLOT + M * LOTSTEP <= MAXLOT并且MINLOT + (M + 1) * LOTSTEP > MAXLOT。相应地,你也应该在设定的模型内进行计算,即lot = MINLOT + N * LOTSTEP。那么MINLOT和LOTSTEP的各种尴尬的组合就变得不重要了,因为这个公式以一种普遍的方式工作。一旦你把它写好了,调试好了,并集中精力做其他有趣和好玩的事情。而且很高兴--因为你不必不断地回到糟糕的代码中去,因为这个代码又不工作了,而只是出现了故障...... 资金管理回顾 机器学习模型的变量评估和选择 利用 MQL5 矩阵的反向传播神经网络 Vitalie Postolache 2014.10.18 17:13 #7393 simpleton:它可以更简单。但是,如果MarketInfo()对lotstep返回0,会发生什么?会有什么后果?专家顾问将被停止,头寸将被放弃?如果MINLOT的值被经纪人设置为0.03,LOTSTEP为0.02,即前两个手数为0.03和0.05,当前余额为41, 在你的代码中,计算手数的值是什么?为什么,如果手数小于最小值--例如,余额等于1,在完成计算后,它将等于0? 为什么在这种情况下,你的代码采取的手数等于MINLOT,这可能是,例如,0.03,这比 "原始 "值 "AccountBalance()*0.001 "多30倍,在这种情况下等于0.001?你不可能总是得到一个有效的手数,因为条件可能是这样,没有一个有效的手数与之对应。错误的情况必须全部编程,必须记住,这至少是90%的工作。MetaQuotes设定的应用模型是:lot = MINLOT + N * LOTSTEP,其中N = 0, 1, 2......。M.而M是这样的:MINLOT + M * LOTSTEP <= MAXLOT并且MINLOT + (M + 1) * LOTSTEP > MAXLOT。相应地,你也应该在设定的模型内进行计算,即lot = MINLOT + N * LOTSTEP。那么MINLOT和LOTSTEP的各种尴尬的组合就变得不重要了,因为这个公式以一种普遍的方式工作。一旦你写好了,调试好了,并专注于其他有趣和好玩的事情。而且很高兴--因为你不必不断地回到糟糕的代码中去,因为这个代码又不工作了,而只是出现了故障......对于这样的恐怖事件,还要检查是否有足够的资金与这样的地段开。例如,正常人不会允许机器人在知道最小/手数为0.1,步数为0.1的情况下存入10英镑。如果找到这样一个聪明的人,机器人会告诉他 "把钱给我,在此期间再见":D。而且我从来没有在任何地方看到或读到过地段步数为零,这是一种幻想...... Boris 2014.10.18 17:59 #7394 evillive:对于这样的恐怖事件,还要检查是否有足够的资金以这样的地段开盘。没有人会在知道最小手数是0.1和步数是0.1的情况下,让机器人存入10英镑。如果找到这样一个聪明的人,机器人会告诉他:"把钱给我,但同时要说再见。" :D为了避免MarketInfo在测试器中出现零,我这样做。 double AFM = AccountFreeMargin(); double StopLevel,FreezeLevel,spr,prot; if(IsOptimization() || IsTesting() || IsVisualMode()) { MinLot = 0.1; LotStep = 0.01; spr = Point*10; StopLevel = spr*2; FreezeLevel = spr*2; } else { MinLot = MarketInfo(Symbol(),MODE_MINLOT); LotStep = MarketInfo(Symbol(),MODE_LOTSTEP); spr = MarketInfo(Symbol(),MODE_SPREAD)*Point; StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; FreezeLevel = MarketInfo(Symbol(),MODE_FREEZELEVEL)*Point; } if(MM == 1) lot = MinLot+MathMax(LotStep*MathFloor((AFM-initdepo)*risk/100),0); else if(MM == 0) lot = MinLot; [删除] 2014.10.18 23:41 #7395 evillive:对于这样的恐怖事件,还要检查是否有足够的资金以这样的地段开盘。例如,没有人会在知道最小手数是0.1,增量是0.1的情况下,让机器人存入10英镑。如果找到这样一个聪明的人,机器人会告诉他 "把钱给我,再见":D而且我从来没有在任何地方看到或读到过地段步数为零的说法,这是一种想象...为什么它是可怕的?因为它不符合简化模式?我的意思是,在MINLOT = 0.03和LOTSTEP = 0.02的情况下,前两个允许的手数是0.03和0.05。lot=lotstep*MathRound(AccountBalance()*0.001/lotstep);将给出0.04的手数值,这是不允许的。机器人会说 "服务器说我的手数不对 "之类的话。而当通过MarketInfo()请求其数值时发生错误,可以获得零手数。我给了你如何人为地造成这个错误的代码。Print("MarketInfo(\"Фигня\", MODE_LOTSTEP) = ", MarketInfo("Фигня", MODE_LOTSTEP));它的返回值为0,这是一种什么样的幻想? Victor Nikolaev 2014.10.19 00:36 #7396 simpleton:为什么这么恐怖?因为它不符合简化模式?我的意思是,在MINLOT = 0.03和LOTSTEP = 0.02的情况下,前两个允许的手数是0.03和0.05。将给出0.04的手数值,这是不允许的。机器人会说 "服务器说我的手数不对 "之类的话。而当通过MarketInfo()请求其数值时发生错误,可以获得零手数。我已经给了你上面的代码,说明如何人为地诱发这个错误。它将返回0。那么,幻想是什么呢?lot=lotstep*MathRound(AccountBalance()*0.001/lotstep);这个公式很容易被纠正,以满足要求。你只需要考虑最低的地段它看起来会有一点不同lot=Min_Lot+lotstep*MathRound((AccountBalance()-X)*0.001/lotstep);其中X--最小地段开放的余额。但仍然需要为最低地段的支票。 PokrovMT5 2014.10.19 06:16 #7397 下午好!帮助一个无知的人 )在测试器中没有订单打开错误10013错误 的请求,看看错误所在的代码。日志中的所有数字都显示在订单上,而订单却没有打开。2014.10.19 12:14:34.984 2014.02.03 00:06:00 请求失败 买0.10在102.31100 sl: 102.27200 tp: 102.33600 [无效的请求]2014.10.19 12:22:17.928 2014.02.03 00:06:00 ticket =0 retcode =10013MqlTradeRequest Req; MqlTradeResult Res; string TradeSmb; if(TradeSmb=="") TradeSmb=_Symbol; Req.action=TRADE_ACTION_DEAL; Req.symbol=TradeSmb; Req.volume=0.1; Req.type=ORDER_TYPE_BUY; Req.type_filling=ORDER_FILLING_IOC; Req.price = SymbolInfoDouble(_Symbol,SYMBOL_ASK); Req.sl= NormalizeDouble(sym_bid - (StopLoss*sym_point),sym_digits); Req.tp= NormalizeDouble(sym_ask + (TakeProfit*sym_point),sym_digits); Req.deviation=3; Req.comment="777"; if(OrderSend(Req,Res)) { Print("Sent..."); } Print("ticket =",Res.order," retcode =",Res.retcode); if(Res.order!=0) { datetime tm=TimeCurrent(); //--- request all history HistorySelect(0,tm); string comment; bool result=HistoryOrderGetString(Res.order,ORDER_COMMENT,comment); if(result) { Print("ticket:",Res.order," Comment:",comment); } Boris 2014.10.19 06:33 #7398 你在哪里看到的?if(OrderSend(Req,Res))请看文件!并使用SRC按钮来插入代码!如果你太懒,请看第1次和最后一次。int OrderSend( string symbol, // символ int cmd, // торговая операция double volume, // количество лотов double price, // цена int slippage, // проскальзывание double stoploss, // stop loss double takeprofit, // take profit string comment=NULL, // комментарий int magic=0, // идентификатор datetime expiration=0, // срок истечения ордера color arrow_color=clrNONE // цвет );学习从来都不是一件坏事! ANDREY 2014.10.19 06:38 #7399 亲爱的先生们!请告知.....这里有一个函数 订单利润( )该函数返回所选订单的净利润 值。问题该函数与上述函数类似,返回所选订单的损失 值,而不是利润值。例如,如果一个订单在SL上关闭,损失为150美元,我需要该函数返回150美元的损失。谢谢你。 Boris 2014.10.19 06:40 #7400 solnce600:亲爱的先生们!请告知.....这里有一个函数 订单利润( )该函数返回所选订单的净利润 值。问题该函数与上述函数一样,为所选订单返回一个损失 值,而不是利润。例如,如果一个订单在SL上关闭,损失为150美元,我需要该函数返回150美元的损失。谢谢你。 它是一样的!只有金额会出现减号。 1...733734735736737738739740741742743744745746747...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我说的是球场,不是最小的地段,但好吧,算了。
谢谢,已经有人向我解释过了 :D
很明显,对我自己来说,我写的是所有的支票,因为它应该是,只是有一个大纲,如何地段平衡/10带来的比例,但这个想法是不成功的......
但你有很多文字,它可以更简单。
它可以更简单。只是,如果lotstep的MarketInfo()返回0,会发生什么?会有什么后果?专家顾问将被停止,头寸将被放弃?
如果MINLOT被经纪人设置为0.03,LOTSTEP为0.02,也就是说,前两个允许的手数是0.03和0.05,而目前的余额是41 - 在你的代码中计算的手数将是什么值?
为什么,如果手数小于最小值--例如,余额等于1,在表达式完全计算后将等于0--为什么在这种情况下,你的代码取手数等于MINLOT,这可能是0.03,即比 "AccountBalance()*0.001 "的 "原始 "值多30倍,在这种情况下等于0.001?
你不可能总是得到一个有效的手数,因为条件可能是这样,没有一个有效的手数与之对应。错误的情况必须全部编程,必须记住,这至少是90%的工作。
MetaQuotes设定的应用模型是:lot = MINLOT + N * LOTSTEP,其中N = 0, 1, 2......。M.而M是这样的:MINLOT + M * LOTSTEP <= MAXLOT并且MINLOT + (M + 1) * LOTSTEP > MAXLOT。相应地,你也应该在设定的模型内进行计算,即lot = MINLOT + N * LOTSTEP。那么MINLOT和LOTSTEP的各种尴尬的组合就变得不重要了,因为这个公式以一种普遍的方式工作。一旦你把它写好了,调试好了,并集中精力做其他有趣和好玩的事情。而且很高兴--因为你不必不断地回到糟糕的代码中去,因为这个代码又不工作了,而只是出现了故障......
它可以更简单。但是,如果MarketInfo()对lotstep返回0,会发生什么?会有什么后果?专家顾问将被停止,头寸将被放弃?
如果MINLOT的值被经纪人设置为0.03,LOTSTEP为0.02,即前两个手数为0.03和0.05,当前余额为41, 在你的代码中,计算手数的值是什么?
为什么,如果手数小于最小值--例如,余额等于1,在完成计算后,它将等于0? 为什么在这种情况下,你的代码采取的手数等于MINLOT,这可能是,例如,0.03,这比 "原始 "值 "AccountBalance()*0.001 "多30倍,在这种情况下等于0.001?
你不可能总是得到一个有效的手数,因为条件可能是这样,没有一个有效的手数与之对应。错误的情况必须全部编程,必须记住,这至少是90%的工作。
MetaQuotes设定的应用模型是:lot = MINLOT + N * LOTSTEP,其中N = 0, 1, 2......。M.而M是这样的:MINLOT + M * LOTSTEP <= MAXLOT并且MINLOT + (M + 1) * LOTSTEP > MAXLOT。相应地,你也应该在设定的模型内进行计算,即lot = MINLOT + N * LOTSTEP。那么MINLOT和LOTSTEP的各种尴尬的组合就变得不重要了,因为这个公式以一种普遍的方式工作。一旦你写好了,调试好了,并专注于其他有趣和好玩的事情。而且很高兴--因为你不必不断地回到糟糕的代码中去,因为这个代码又不工作了,而只是出现了故障......
对于这样的恐怖事件,还要检查是否有足够的资金与这样的地段开。例如,正常人不会允许机器人在知道最小/手数为0.1,步数为0.1的情况下存入10英镑。
如果找到这样一个聪明的人,机器人会告诉他 "把钱给我,在此期间再见":D。
而且我从来没有在任何地方看到或读到过地段步数为零,这是一种幻想......
对于这样的恐怖事件,还要检查是否有足够的资金以这样的地段开盘。没有人会在知道最小手数是0.1和步数是0.1的情况下,让机器人存入10英镑。
如果找到这样一个聪明的人,机器人会告诉他:"把钱给我,但同时要说再见。" :D
为了避免MarketInfo在测试器中出现零,我这样做。
对于这样的恐怖事件,还要检查是否有足够的资金以这样的地段开盘。例如,没有人会在知道最小手数是0.1,增量是0.1的情况下,让机器人存入10英镑。
如果找到这样一个聪明的人,机器人会告诉他 "把钱给我,再见":D
而且我从来没有在任何地方看到或读到过地段步数为零的说法,这是一种想象...
为什么它是可怕的?因为它不符合简化模式?
我的意思是,在MINLOT = 0.03和LOTSTEP = 0.02的情况下,前两个允许的手数是0.03和0.05。
将给出0.04的手数值,这是不允许的。机器人会说 "服务器说我的手数不对 "之类的话。
而当通过MarketInfo()请求其数值时发生错误,可以获得零手数。我给了你如何人为地造成这个错误的代码。
它的返回值为0,这是一种什么样的幻想?
为什么这么恐怖?因为它不符合简化模式?
我的意思是,在MINLOT = 0.03和LOTSTEP = 0.02的情况下,前两个允许的手数是0.03和0.05。
将给出0.04的手数值,这是不允许的。机器人会说 "服务器说我的手数不对 "之类的话。
而当通过MarketInfo()请求其数值时发生错误,可以获得零手数。我已经给了你上面的代码,说明如何人为地诱发这个错误。
它将返回0。那么,幻想是什么呢?
这个公式很容易被纠正,以满足要求。你只需要考虑最低的地段
它看起来会有一点不同
其中X--最小地段开放的余额。
但仍然需要为最低地段的支票。
下午好!
帮助一个无知的人 )在测试器中没有订单打开错误10013错误 的请求,看看错误所在的代码。
日志中的所有数字都显示在订单上,而订单却没有打开。
2014.10.19 12:14:34.984 2014.02.03 00:06:00 请求失败 买0.10在102.31100 sl: 102.27200 tp: 102.33600 [无效的请求]
2014.10.19 12:22:17.928 2014.02.03 00:06:00 ticket =0 retcode =10013
你在哪里看到的?
请看文件!并使用SRC按钮来插入代码!
如果你太懒,请看第1次和最后一次。
学习从来都不是一件坏事!
亲爱的先生们!
请告知.....
这里有一个函数
该函数返回所选订单的净利润 值。
问题
该函数与上述函数类似,返回所选订单的损失 值,而不是利润值。
例如,如果一个订单在SL上关闭,损失为150美元,我需要该函数返回150美元的损失。
谢谢你。
亲爱的先生们!
请告知.....
这里有一个函数
该函数返回所选订单的净利润 值。
问题
该函数与上述函数一样,为所选订单返回一个损失 值,而不是利润。
例如,如果一个订单在SL上关闭,损失为150美元,我需要该函数返回150美元的损失。
谢谢你。