任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 911 1...904905906907908909910911912913914915916917918...1178 新评论 Vitalie Postolache 2015.07.05 16:47 #9101 Viktorline14:与复制EA的文本相比,截图并张贴在这里是否更容易?你认为有人会从截图中手动输入到他们的ME中并试图弄清楚吗?如果编译器说应该检查函数的结果,就必须检查。这并不难。if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue)) Print("Opening Buy error #", GetLastError()); //ну и другие действия по усмотрению, в случае ошибки Murzin 2015.07.05 17:10 #9102 if(S1a == S1b && S1a<20.0000 && S1b<20.0000 ) {OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue); MyOrderStateB = 1; if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue)) Print("Opening Buy error #", GetLastError());} else Sleep(2);谢谢你。对还是错? 警告还是出现了 Any rookie question, so [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. My script does not Alexander 2015.07.05 17:12 #9103 你有绝对值的止损和止盈,而你需要相对值的止损和止盈,如Bid - Sl*Point。 Nauris Zukas 2015.07.05 17:12 #9104 abeiks:你好!在我的专家顾问中,会检查前一个蜡烛图,如果条件允许,就开仓,如果不允许,就不开仓。问题是,在检查前一根蜡烛的状况之前就开仓了。然后我看到日志中的头寸打开了,然后我看到它不应该被打开。如何解决这个问题? 谢谢你,我自己也搞清楚了。我把检查前一根蜡烛的功能放在了开仓 的功能之上。 Murzin 2015.07.05 17:21 #9105 我为我的草率表示歉意 Murzin 2015.07.05 17:22 #9106 如果(S1a == S1b && S1a<20.0000 && S1b<20.0000 ){OrderSend(Symbol(), OP_BUY, OrderValue,NormalizeDouble(Ask, Digits), Slippage, Bid - SL * Point, Ask + TP * Point, NULL, 0, 0,clrBlue)。MyOrderStateB = 1;if(!OrderSend(Symbol(, OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))Print("Opening Buy error #", GetLastError()); }否则Sleep(2)。如果(S1a == S1b && S1a>80.0000 && S1b>80.0000 ){OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), Slippage, Ask + SL * Point, Bid - TP * Point , NULL, 0, 0, clrRed);MyOrderStateS = 1; }否则Sleep(2)。而相对的,它给出了同样的东西( Any rookie question, so My script does not 初学者的问题 MQL4 MT4 MetaTrader Vitalie Postolache 2015.07.05 17:34 #9107 Viktorline14: if(S1a == S1b && S1a<20.0000 && S1b<20.0000 ) {OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue); MyOrderStateB = 1; if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue)) Print("Opening Buy error #", GetLastError());} else Sleep(2);谢谢你。对还是错? 警告还是出现了错了,你不需要调用OrderSend两次。而且我们应该相对于价格来计算SL和TP,而不是以点来计算。我们不应该把公开的 卖价和买价标准化,而应该把SL和TP的计算结果标准化。一般来说,"学习、学习、再学习" )))) Murzin 2015.07.05 17:52 #9108 evillive:错了,不需要调用OrderSend两次。而SL和TP应该是相对于价格计算的,而不是以点数计算的。我们不应该把公开的卖价和买价标准化,而应该把SL和TP的计算结果标准化。一般来说,"学习、学习、再学习" )))) 非常感谢你))))。你帮了我大忙,现在一切都正常了:3 Murzin 2015.07.05 18:01 #9109 再次非常感谢您!现在有一个问题,EA连续开了几个订单,而不是我想要的一个(int start() { S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0); S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0); if(MyOrderStateB == 1)Sleep(300000); else MyOrderStateB = 0; if(MyOrderStateS == 1)Sleep(300000); else MyOrderStateS = 0; if(S1a == S1b && S1a<20.0000 && S1b<20.0000 ) if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, Bid - SL * Point, Ask + TP * Point, NULL, 0, 0,clrBlue)) Print("Opening Buy error #", GetLastError()); else Sleep(2); MyOrderStateB = 1; if(S1a == S1b && S1a>80.0000 && S1b>80.0000 ) if(!OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), Slippage, Ask + SL * Point, Bid - TP * Point , NULL, 0, 0,clrRed)) Print("Opening Sell error #", GetLastError()); else Sleep(2); MyOrderStateS = 1; return(0);} Any rookie question, so My script does not 初学者的问题 MQL4 MT4 MetaTrader Владимир Тезис 2015.07.06 07:34 #9110 我在策略测试器中 看到一些奇怪的行为。我的EA设置并拖动挂单止损。会发生以下情况。专家顾问将买入止损和卖出止损设置在距离当前价格30点的位置(符号 - GbpUsd. 四位数。 最小水平=3点)。一段时间后,如果他们没有触发,它就会跟随市场把他们拉起来。所以我看到的是。修改成功,修改成功,然后在某个时间点上抨击,错误#1弹出。也就是说,一切都很好,EA也在做同样的动作,突然就出现了这个错误。所有价格都已归一化为位数。一般来说,所有传递给OrderModify()函数输入的值都是经过规范化处理的!在测试器中,EA的这种行为可能是什么原因? 1...904905906907908909910911912913914915916917918...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
与复制EA的文本相比,截图并张贴在这里是否更容易?你认为有人会从截图中手动输入到他们的ME中并试图弄清楚吗?
如果编译器说应该检查函数的结果,就必须检查。这并不难。
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
{OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue);
MyOrderStateB = 1;
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());}
else Sleep(2);
谢谢你。对还是错? 警告还是出现了
你好!
在我的专家顾问中,会检查前一个蜡烛图,如果条件允许,就开仓,如果不允许,就不开仓。问题是,在检查前一根蜡烛的状况之前就开仓了。然后我看到日志中的头寸打开了,然后我看到它不应该被打开。如何解决这个问题?
否则Sleep(2)。
而相对的,它给出了同样的东西(
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
{OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue);
MyOrderStateB = 1;
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());}
else Sleep(2);
谢谢你。对还是错? 警告还是出现了
错了,你不需要调用OrderSend两次。而且我们应该相对于价格来计算SL和TP,而不是以点来计算。我们不应该把公开的 卖价和买价标准化,而应该把SL和TP的计算结果标准化。
一般来说,"学习、学习、再学习" ))))
错了,不需要调用OrderSend两次。而SL和TP应该是相对于价格计算的,而不是以点数计算的。我们不应该把公开的卖价和买价标准化,而应该把SL和TP的计算结果标准化。
一般来说,"学习、学习、再学习" ))))
再次非常感谢您!
现在有一个问题,EA连续开了几个订单,而不是我想要的一个(
int start()
{ S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);
S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);
if(MyOrderStateB == 1)Sleep(300000);
else MyOrderStateB = 0;
if(MyOrderStateS == 1)Sleep(300000);
else MyOrderStateS = 0;
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, Bid - SL * Point, Ask + TP * Point, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());
else Sleep(2);
MyOrderStateB = 1;
if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )
if(!OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), Slippage, Ask + SL * Point, Bid - TP * Point , NULL, 0, 0,clrRed))
Print("Opening Sell error #", GetLastError());
else Sleep(2);
MyOrderStateS = 1;
return(0);}
我在策略测试器中 看到一些奇怪的行为。我的EA设置并拖动挂单止损。会发生以下情况。专家顾问将买入止损和卖出止损设置在距离当前价格30点的位置(符号 - GbpUsd. 四位数。 最小水平=3点)。一段时间后,如果他们没有触发,它就会跟随市场把他们拉起来。所以我看到的是。修改成功,修改成功,然后在某个时间点上抨击,错误#1弹出。也就是说,一切都很好,EA也在做同样的动作,突然就出现了这个错误。所有价格都已归一化为位数。一般来说,所有传递给OrderModify()函数输入的值都是经过规范化处理的!
在测试器中,EA的这种行为可能是什么原因?