错误代码 - 页 4 12345 新评论 cockeyedcowboy 2009.12.10 00:37 #31 kvhutch 2010.08.27 18:25 #32 MT4 - Ordersend()的错误#130 我试图在MT4中使用OrderSend()生成一个订单,但一直得到错误#130。我知道错误#130与止损或止盈水平设置得太接近当前市场价格有关。我已经改变了它们,但没有成功。我同时使用了相对值和实际值。 1.1.使用相对止盈和止损值 进行买入。 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-50*Point,Ask+50*Point, "Long Breakout",16384,0,Green)。 2.使用实际值作为买入时的止损和止盈。 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss,TakeProfit, "Long Breakout",16384,0,Green)。 其中。 double StopLoss = NormalizeDouble(StopLoss, Digits); double TakeProfit = NormalizeDouble(TakeProfit, Digits); 这些值被设置为外部值(例如:extern double StopLoss=1.5000,extern double=TakeProfit=1.6000)。 我的经纪人是FXCM。我试着把StoplLoss和TakeProfit的值乘以10。我对所有货币对都得到同样的结果。 在每一种情况下,我都得到错误#130。有什么想法吗? 谢谢 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Writing free EAs 编写免费的EA chris benjamin 2010.08.27 18:48 #33 在为买入头寸设置止盈时。TP是 Bid+(50*Point) 相对于Ask+... 克里斯 kvhutch 2010.08.27 19:13 #34 对不起,是的,我打字时的错误。不过,这个问题恐怕仍然存在。 chris benjamin 2010.08.27 19:48 #35 试着在订单结束功能 之前放置一个注释或打印,以打印出止损和止盈水平。同时,确保止损/止盈超过最小距离。 把这个放在订单发送之前。 if(StopLoss!=0 && StopLoss<(MarketInfo(Symbol(),MODE_STOPLEVEL))) { StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL); } if(TakeProfit!=0 && TakeProfit<(MarketInfo(Symbol(),MODE_STOPLEVEL))) { TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL); } 克里斯 FXMan77 2010.08.27 20:31 #36 kvhutch: 我试图在MT4中使用OrderSend()生成一个订单,但一直得到错误#130。我知道错误#130与止损或止盈水平的设置过于接近当前市场价格有关。我已经改变了它们,但没有成功。我同时使用了相对值和实际值。 1.使用相对止盈和止损值进行买入。 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-50*Point,Ask+50*Point, "Long Breakout",16384,0,Green)。 2.使用实际值作为买入时的止损和止盈。 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss,TakeProfit, "Long Breakout",16384,0,Green)。 其中。 double StopLoss = NormalizeDouble(StopLoss, Digits); double TakeProfit = NormalizeDouble(TakeProfit, Digits); 这些值被设置为外部值(例如:extern double StopLoss=1.5000,extern double=TakeProfit=1.6000)。 我的经纪人是FXCM。我试着把StoplLoss和TakeProfit的值乘以10。我对所有货币对都得到同样的结果。 在每一种情况下,我都得到错误#130。有什么想法吗? 欢呼声 FXCM有5位数字......或者你在使用哪个国家的FXCM? kvhutch 2010.08.27 22:50 #37 谢谢你的答复。是的,我用打印语句来检查止损和止盈值。打印出来的结果似乎不错。 我在英国使用FXCM。非日元货币的小数点后有5位数字(例如,英镑兑美元:1.55125)。日元交叉货币有三位数字(例如,GBPJPY:132.393)。我想在这种情况下,这些数值可能要乘以10。 谢谢 chris benjamin 2010.08.27 22:59 #38 kvhutch: 我想在这种情况下,这些值可能要乘以10。 干杯。 你在init函数 里有这样的东西吗? if (Digits == 3 || Digits == 5) { Factor = 10; StopLoss *= 10; TakeProfit *= 10; MaxSpread *= 10; Slippage *=10; } kvhutch 2010.08.28 09:07 #39 不,在OrderSend()语句中,我只是把Take Profit 和StopLoss的值乘以10。你能详细说明一下这些值的用途吗?谢谢 chris benjamin 2010.08.28 12:17 #40 它们只是被乘以10的外部变量。你调整它们以包括你的变量。但你只做那些在小数点经纪商上不同的变量,比如止损。 这意味着,如果止损在输入列表中被输入为20点,如果经纪商是小数点,它将自动调整为200点。 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
MT4 - Ordersend()的错误#130
我试图在MT4中使用OrderSend()生成一个订单,但一直得到错误#130。我知道错误#130与止损或止盈水平设置得太接近当前市场价格有关。我已经改变了它们,但没有成功。我同时使用了相对值和实际值。
1.1.使用相对止盈和止损值 进行买入。
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-50*Point,Ask+50*Point, "Long Breakout",16384,0,Green)。
2.使用实际值作为买入时的止损和止盈。
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss,TakeProfit, "Long Breakout",16384,0,Green)。
其中。
double StopLoss = NormalizeDouble(StopLoss, Digits);
double TakeProfit = NormalizeDouble(TakeProfit, Digits);
这些值被设置为外部值(例如:extern double StopLoss=1.5000,extern double=TakeProfit=1.6000)。
我的经纪人是FXCM。我试着把StoplLoss和TakeProfit的值乘以10。我对所有货币对都得到同样的结果。
在每一种情况下,我都得到错误#130。有什么想法吗?
谢谢
在为买入头寸设置止盈时。TP是
相对于Ask+...
克里斯
对不起,是的,我打字时的错误。不过,这个问题恐怕仍然存在。
试着在订单结束功能 之前放置一个注释或打印,以打印出止损和止盈水平。同时,确保止损/止盈超过最小距离。
把这个放在订单发送之前。
if(StopLoss!=0 && StopLoss<(MarketInfo(Symbol(),MODE_STOPLEVEL)))
{
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
}
if(TakeProfit!=0 && TakeProfit<(MarketInfo(Symbol(),MODE_STOPLEVEL)))
{
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL);
}
克里斯
我试图在MT4中使用OrderSend()生成一个订单,但一直得到错误#130。我知道错误#130与止损或止盈水平的设置过于接近当前市场价格有关。我已经改变了它们,但没有成功。我同时使用了相对值和实际值。
1.使用相对止盈和止损值进行买入。
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-50*Point,Ask+50*Point, "Long Breakout",16384,0,Green)。
2.使用实际值作为买入时的止损和止盈。
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss,TakeProfit, "Long Breakout",16384,0,Green)。
其中。
double StopLoss = NormalizeDouble(StopLoss, Digits);
double TakeProfit = NormalizeDouble(TakeProfit, Digits);
这些值被设置为外部值(例如:extern double StopLoss=1.5000,extern double=TakeProfit=1.6000)。
我的经纪人是FXCM。我试着把StoplLoss和TakeProfit的值乘以10。我对所有货币对都得到同样的结果。
在每一种情况下,我都得到错误#130。有什么想法吗?
欢呼声FXCM有5位数字......或者你在使用哪个国家的FXCM?
谢谢你的答复。是的,我用打印语句来检查止损和止盈值。打印出来的结果似乎不错。
我在英国使用FXCM。非日元货币的小数点后有5位数字(例如,英镑兑美元:1.55125)。日元交叉货币有三位数字(例如,GBPJPY:132.393)。我想在这种情况下,这些数值可能要乘以10。
谢谢
我想在这种情况下,这些值可能要乘以10。 干杯。
你在init函数 里有这样的东西吗?
{
Factor = 10;
StopLoss *= 10;
TakeProfit *= 10;
MaxSpread *= 10;
Slippage *=10;
}不,在OrderSend()语句中,我只是把Take Profit 和StopLoss的值乘以10。你能详细说明一下这些值的用途吗?谢谢
它们只是被乘以10的外部变量。你调整它们以包括你的变量。但你只做那些在小数点经纪商上不同的变量,比如止损。
这意味着,如果止损在输入列表中被输入为20点,如果经纪商是小数点,它将自动调整为200点。