对市场的自动检查 - 页 6 1234567 新评论 Evgeniy Zhdan 2017.01.09 08:50 #51 Evgeniy Scherbina: XAUUSDcheck没有测试。但测试是成功的,因为它测试了其他一切....。 你毕竟有过测试吗?我今天早上试了一下,那个自动测试完全消失了,EA直接进入版主的测试,绕过了自动测试。就像以前一样。 fxsaber 2017.01.11 15:32 #52 值得一提的是。 Solving Atomatic Validation Problems 2017.01.11Stanislav Korotkywww.mql5.com If you're distributing some products for MetaTrader 4/5 via the Market, you probably know that a special "welcome" stage of automatic product validation has been added recently by MetaQuotes on the... Taras Slobodyanik 2017.01.11 15:40 #53 fxsaber: 值得一提的是。"如果你认为你等得够久了,问题仍然存在,请写信给服务台,再多等一会儿;-)"。 Stefan Stoyanov 2017.01.11 17:36 #54 并且应该与订单发送 错误 131没办法在自动测试中,测试器没有错误我按照所有的指示做了,而且成功了。订单发送 错误 131Uffffff!!!! Vladislav Andruschenko 2017.01.11 17:56 #55 我认为,自动放弃是一个销售人员必须经历的第一件事。我也有过这样的错误,而且是由于不注意。 但是,在那些从代码库中下载免费代码并试图通过改变名称来销售的 "家伙 "面前,自动无效是第一道墙。:-(不幸的是,由于这个原因,市场上有数以千计的程序,很难从中找到几个有价值的程序。 我将在代码库中加入一个特殊的代码,这样市场就不会接受它的销售。因为这很伤人 :-( 在这里,你花了几年,甚至5年时间来开发、调整和改进程序,以使客户满意。 而有人下载了成品改了名字--以倾销的价格倾销到市场上,就这样....。 顾客认为,"更便宜意味着我买了"。....比如在中国。 我坐在aliexpress上--至少有5根GOPRO的棍子被廉价订购--结果--在海上呆了一个星期--棍子生锈了。这不是我的手去买100英镑的原版棒子,它不会生锈。但是没有,在中国已经给了120英镑,并订购了另一根同样的棍子.................。该死的greed...... Evgeniy Scherbina 2017.01.11 21:20 #56 Stefan Stoyanov:并且应该与订单发送 错误 131没办法在自动测试中,测试器没有错误我做了所有的建议,但......。订单发送 错误 131Uffffff!!!! 你只需要检查最小值,这一点都不难。 Stefan Stoyanov 2017.01.12 00:55 #57 Evgeniy Scherbina: 你只需要检查最小值,这一点都不难。我有很多计算功能都是这样做的。 double LotsOptimized() { int lotDigit=(int)fabs(log10(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP))); if(!MathIsValidNumber(lotDigit)) lotDigit=0; { double FreeMg =AccountFreeMargin();double Margin =MarketInfo(Symbol(),MODE_MARGINREQUIRED);double Step =MarketInfo(Symbol(),MODE_LOTSTEP);double Minlot =MarketInfo(Symbol(),MODE_MINLOT);double MaxLot =MarketInfo(Symbol(),MODE_MAXLOT);double loty =MathFloor(FreeMg*Risk/100/Margin/Step)*Step; loty = NormalizeDouble(loty,lotDigit);if(loty<Minlot) loty=Minlot;if(loty>MaxLot) loty=MaxLot; Lots=loty; Lots=NormalizeDouble(Lots,lotDigit); return (Lots);}} //================================================================ Automatic check on the Partial Close EA Need help with coding Stefan Stoyanov 2017.01.12 01:11 #58 市场上也有一个例子//+------------------------------------------------------------------+ //| Проверяет объем ордера на корректность | //+------------------------------------------------------------------+ bool CheckVolumeValue(double volume,string &description) { //--- минимально допустимый объем для торговых операций double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(volume<min_volume) { description=StringFormat("Объем меньше минимально допустимого SYMBOL_VOLUME_MIN=%.2f",min_volume); return(false); } //--- максимально допустимый объем для торговых операций double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); if(volume>max_volume) { description=StringFormat("Объем больше максимально допустимого SYMBOL_VOLUME_MAX=%.2f",max_volume); return(false); } //--- получим минимальную градацию объема double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP); int ratio=(int)MathRound(volume/volume_step); if(MathAbs(ratio*volume_step-volume)>0.0000001) { description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f", volume_step,ratio*volume_step); return(false); } description="Корректное значение объема"; return(true); } Stefan Stoyanov 2017.01.12 01:18 #59 在调用OrderSend 之前,我通过以下方式检查如果(CheckVolumeValue(Lots,com) ==false )返回(0)。 尽管做了一切,错误131又出现了 Evgeniy Scherbina 2017.01.12 08:46 #60 Stefan Stoyanov:我有很多计算功能,它是这样的 double LotsOptimized() { int lotDigit=(int)fabs(log10(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP))); if(!MathIsValidNumber(lotDigit)) lotDigit=0; { double FreeMg =AccountFreeMargin();double Margin =MarketInfo(Symbol(),MODE_MARGINREQUIRED);double Step =MarketInfo(Symbol(),MODE_LOTSTEP);double Minlot =MarketInfo(Symbol(),MODE_MINLOT);double MaxLot =MarketInfo(Symbol(),MODE_MAXLOT);double loty =MathFloor(FreeMg*Risk/100/Margin/Step)*Step; loty = NormalizeDouble(loty,lotDigit);if(loty<Minlot) loty=Minlot;if(loty>MaxLot) loty=MaxLot; Lots=loty; Lots=NormalizeDouble(Lots,lotDigit); return (Lots);}} //================================================================你的lotDigit是一个狡猾的傻瓜,总是计算为0,它不在文档的例子中。显然,你喜欢大量的括号?还有这个。FreeMg*Risk/100/Margin/Step...100人是从哪里来的?显然是来自天花板。那是一个很大的串联。这真的很多,你在计算什么? 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
XAUUSDcheck没有测试。但测试是成功的,因为它测试了其他一切....。
值得一提的是。
并且应该与
订单发送 错误 131
没办法
在自动测试中,测试器没有错误
我按照所有的指示做了,而且成功了。
订单发送 错误 131
Uffffff!!!!我认为,自动放弃是一个销售人员必须经历的第一件事。
我也有过这样的错误,而且是由于不注意。
但是,在那些从代码库中下载免费代码并试图通过改变名称来销售的 "家伙 "面前,自动无效是第一道墙。:-(
不幸的是,由于这个原因,市场上有数以千计的程序,很难从中找到几个有价值的程序。
我将在代码库中加入一个特殊的代码,这样市场就不会接受它的销售。因为这很伤人 :-( 在这里,你花了几年,甚至5年时间来开发、调整和改进程序,以使客户满意。
而有人下载了成品改了名字--以倾销的价格倾销到市场上,就这样....。 顾客认为,"更便宜意味着我买了"。....
比如在中国。
我坐在aliexpress上--至少有5根GOPRO的棍子被廉价订购--结果--在海上呆了一个星期--棍子生锈了。
这不是我的手去买100英镑的原版棒子,它不会生锈。但是没有,在中国已经给了120英镑,并订购了另一根同样的棍子.................。该死的greed......
并且应该与
订单发送 错误 131
没办法
在自动测试中,测试器没有错误
我做了所有的建议,但......。
订单发送 错误 131
Uffffff!!!!你只需要检查最小值,这一点都不难。
我有很多计算功能都是这样做的。
{ int lotDigit=(int)fabs(log10(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP)));
if(!MathIsValidNumber(lotDigit)) lotDigit=0;
{
double FreeMg =AccountFreeMargin();
double Margin =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Minlot =MarketInfo(Symbol(),MODE_MINLOT);
double MaxLot =MarketInfo(Symbol(),MODE_MAXLOT);
double loty =MathFloor(FreeMg*Risk/100/Margin/Step)*Step;
loty = NormalizeDouble(loty,lotDigit);
if(loty<Minlot) loty=Minlot;
if(loty>MaxLot) loty=MaxLot;
Lots=loty;
Lots=NormalizeDouble(Lots,lotDigit);
return (Lots);}}
//================================================================
市场上也有一个例子
在调用OrderSend 之前,我通过以下方式检查
如果(CheckVolumeValue(Lots,com) ==false )返回(0)。
尽管做了一切,错误131又出现了
我有很多计算功能,它是这样的
{ int lotDigit=(int)fabs(log10(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP)));
if(!MathIsValidNumber(lotDigit)) lotDigit=0;
{
double FreeMg =AccountFreeMargin();
double Margin =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Minlot =MarketInfo(Symbol(),MODE_MINLOT);
double MaxLot =MarketInfo(Symbol(),MODE_MAXLOT);
double loty =MathFloor(FreeMg*Risk/100/Margin/Step)*Step;
loty = NormalizeDouble(loty,lotDigit);
if(loty<Minlot) loty=Minlot;
if(loty>MaxLot) loty=MaxLot;
Lots=loty;
Lots=NormalizeDouble(Lots,lotDigit);
return (Lots);}}
//================================================================
你的lotDigit是一个狡猾的傻瓜,总是计算为0,它不在文档的例子中。显然,你喜欢大量的括号?
还有这个。FreeMg*Risk/100/Margin/Step...100人是从哪里来的?显然是来自天花板。
那是一个很大的串联。这真的很多,你在计算什么?