任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 513 1...506507508509510511512513514515516517518519520...1178 新评论 [删除] 2014.02.25 19:50 #5121 我做得对吗。 y = OrderOpenPrice()-Ask; 我把当前价格 减去最后一个未平仓订单的价格? int i_buy=0; int i_sell=0; for(int i=0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol()){ switch(OrderType()){// Есть ли открыте ордера case OP_BUY: i_buy++; break; case OP_SELL: i_sell++; break; } y = OrderOpenPrice()-Ask; } } if((i_buy==0 && i_sell==0) || y > Step) //--- нет открытых ордеров, открываем или расстояние от последнего ордера до текущей цены. Больше step OrderSend(Symbol(), OP_BUY,StartLot,Ask,Slippage,0,Ask+TakeProfit*Point(),WindowExpertName()+" "+(string)0,0,0,clrBlue); Any rookie question, so [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. 编码帮助 Artyom Trishkin 2014.02.25 19:58 #5122 woin2110: https://docs.mql4.com/ru/trading/orderselecthttps://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots double z; //declare "z" variable. double y; //declare "y" variable. if(OrderSelect(10,SELECT_BY_POS)==true) //如果选择的订单(按票)是存在的 { OrderLots()=z //将此订单的手数分配给 "z "变量。 OrderOpenPrice()=y //将开盘价分配给 "y "变量。 } 试试这个 请不要混淆视听,讲废话。你说按票选,但你写的是按索引选择。而且,如果你按票据选择,你不需要指定池子 --函数忽略它,在两个列表中的任何一个中选择它--在它所在的那个中。为了检查订单是从哪个列表中选择的,我们应该在成功选择后检查订单的关闭时间,如果它高于零,那么订单已经被关闭,否则,它将从未结头寸列表中选择。 你不是将手数的值分配给一个变量,反之亦然--你是想将变量的值分配给返回所选订单手数的函数--这根本是无稽之谈。 与你想用返回开盘价的函数做的事情完全一样。 [删除] 2014.02.25 20:24 #5123 artmedia70: 告诉我我做错了什么。一切似乎都是正确的。 如果((i_buy==0 && i_sell==0) || y > Step) 或者(i_buy==0 && i_sell==0)或者 y > Step。如果其中一个是真的。然后我们跳过它,打开一个订单。 Leo59 2014.02.25 20:47 #5124 evillive: 如果Alpari--你永远不可能。如果是另一家经纪公司,这取决于账户。如果我们与Alpari建立了良好的工作关系,我们就会回去撤资。在开始做事之前,应该研究一下贸易条款,都写在那里。 8-800-200-01-31服务台解释说,在上周末,他们已经修复了一个错误,允许在设置SL和TP的同时在ECN账户中开立订单。我在周四关闭了最后一个位置。 你是对的,《交易 条例》没有说到这一点,现在只有OrderModify() 可以保存。 谢谢你的答复。 Artyom Trishkin 2014.02.25 21:10 #5125 Zolotai: artmedia70: 告诉我我做错了什么。一切似乎都是正确的。 如果((i_buy==0 && i_sell==0) || y > Step) 或者(i_buy==0 && i_sell==0)或者 y > Step。如果其中一个是真的。然后我们跳过它,打开一个订单。 我实际上不明白这个问题... 我不知道我们缺少什么,但可以开一个订单...也就是说,如果这个条件得到满足,并且应该开出一个订单,那么 我可以告诉你这里说的是什么。 如果i_buy和i_sell都等于0,就可以开出一个订单。或者,如果其中任何一个不等于零,甚至可能两个都不等于,但如果y大于Step,那么也要开一个订单。 [删除] 2014.02.25 22:26 #5126 artmedia70:我实际上不明白这个问题...我不知道我们缺少什么,但可以开一个订单...即,如果这个条件得到尊重,应该开出一个订单。我可以告诉你这里说的是什么。"如果i_buy和i_sell都等于0,就开一个订单。或者,如果其中任何一个不等于零,甚至可能两个都不等于,但如果y大于Step,那么也应该开一个订单。我在循环中的理解是正确的。我们从第一个开放的订单进行到最后一个订单。因此,我们应该采取最后一个订单的价格。 还有更多。我在OnTick中加入了Alert("d")。我在测试器中运行了代码,但我没有听到任何提示音或窗口。 Artyom Trishkin 2014.02.26 00:55 #5127 Zolotai: 在叉子循环中,我的理解是正确的。我们正在从第一个公开的订单到最后一个订单。相应地,我采取了最后一个订单的价格。 我也有这个。我在OnTick中加入了Alert("d")。我在测试器中运行了代码,但我没有听到任何提示音或窗口。 测试仪中的警报会显示在测试仪日志中。但关于循环、跳过、选择、暴力的问题并不清楚。你能得到你想要的最终结果的要点吗? vlad_123 2014.02.26 05:53 #5128 下午好! 当试图编辑EA时,如何与 "未找到MetaEditor "作斗争?MetaTrader构建600。 我似乎不记得在旧版中有这样的问题......。 是否可以这样解释:我工作的电脑功率相当低,50-75%的时间都在加载。我有7个MT4实例在上面运行,但在正常情况下(即没有外部负载,如通过TeamViewer访问并试图启动MetaEditor),其性能是足够的,后台运行的任务管理器显示15-20分钟的平均CPU使用率<=45-50%。 这个问题不会在100%的情况下发生,MetaEditor在表现出不寻常的耐心和毅力后,从第5-10-25次开始每次都会运行。但尝试启动MetaEditor半小时,真的很烦人。 [删除] 2014.02.26 06:03 #5129 artmedia70: 测试仪中的警报被打印在测试仪的日志中。而关于循环、跳过、选择和粗暴对待的问题也不清楚。你能得到你想要的结果的大意吗? 我只想写最简单的机器人。它的作用是由马丁,由它自己。 这就是错误所在。 y = OrderOpenPrice()-Ask; 我没有像我想的那样得到整数的数字。但比如说0.0044。我怎样才能得到44,一个整数? Alekseu Fedotov 2014.02.26 06:50 #5130 Zolotai: 我只想写最简单的机器人。它的作用是由马丁,由它自己。 这就是错误所在。 y = OrderOpenPrice()-Ask; 我没有像我想的那样得到整数的数字。但比如说0.0044。我怎样才能得到44,一个整数? int y = int((OrderOpenPrice()-Ask)/Point); 1...506507508509510511512513514515516517518519520...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我做得对吗。
y = OrderOpenPrice()-Ask;
我把当前价格 减去最后一个未平仓订单的价格?
int i_buy=0; int i_sell=0;
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol()){
switch(OrderType()){// Есть ли открыте ордера
case OP_BUY:
i_buy++;
break;
case OP_SELL:
i_sell++;
break;
}
y = OrderOpenPrice()-Ask;
}
}
if((i_buy==0 && i_sell==0) || y > Step) //--- нет открытых ордеров, открываем или расстояние от последнего ордера до текущей цены. Больше step
OrderSend(Symbol(), OP_BUY,StartLot,Ask,Slippage,0,Ask+TakeProfit*Point(),WindowExpertName()+" "+(string)0,0,0,clrBlue);
https://docs.mql4.com/ru/trading/orderselecthttps://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots
double z; //declare "z" variable.
double y; //declare "y" variable.
if(OrderSelect(10,SELECT_BY_POS)==true) //如果选择的订单(按票)是存在的
{
OrderLots()=z //将此订单的手数分配给 "z "变量。
OrderOpenPrice()=y //将开盘价分配给 "y "变量。
}
试试这个
请不要混淆视听,讲废话。你说按票选,但你写的是按索引选择。而且,如果你按票据选择,你不需要指定池子 --函数忽略它,在两个列表中的任何一个中选择它--在它所在的那个中。为了检查订单是从哪个列表中选择的,我们应该在成功选择后检查订单的关闭时间,如果它高于零,那么订单已经被关闭,否则,它将从未结头寸列表中选择。
你不是将手数的值分配给一个变量,反之亦然--你是想将变量的值分配给返回所选订单手数的函数--这根本是无稽之谈。
与你想用返回开盘价的函数做的事情完全一样。
artmedia70:
告诉我我做错了什么。一切似乎都是正确的。
如果((i_buy==0 && i_sell==0) || y > Step)
或者(i_buy==0 && i_sell==0)或者 y > Step。如果其中一个是真的。然后我们跳过它,打开一个订单。
如果Alpari--你永远不可能。如果是另一家经纪公司,这取决于账户。如果我们与Alpari建立了良好的工作关系,我们就会回去撤资。在开始做事之前,应该研究一下贸易条款,都写在那里。
8-800-200-01-31服务台解释说,在上周末,他们已经修复了一个错误,允许在设置SL和TP的同时在ECN账户中开立订单。我在周四关闭了最后一个位置。
你是对的,《交易 条例》没有说到这一点,现在只有OrderModify() 可以保存。
谢谢你的答复。
artmedia70:
告诉我我做错了什么。一切似乎都是正确的。
如果((i_buy==0 && i_sell==0) || y > Step)
或者(i_buy==0 && i_sell==0)或者 y > Step。如果其中一个是真的。然后我们跳过它,打开一个订单。
我实际上不明白这个问题...
我不知道我们缺少什么,但可以开一个订单...也就是说,如果这个条件得到满足,并且应该开出一个订单,那么
我可以告诉你这里说的是什么。
如果i_buy和i_sell都等于0,就可以开出一个订单。或者,如果其中任何一个不等于零,甚至可能两个都不等于,但如果y大于Step,那么也要开一个订单。
我实际上不明白这个问题...
我不知道我们缺少什么,但可以开一个订单...即,如果这个条件得到尊重,应该开出一个订单。
我可以告诉你这里说的是什么。
"如果i_buy和i_sell都等于0,就开一个订单。或者,如果其中任何一个不等于零,甚至可能两个都不等于,但如果y大于Step,那么也应该开一个订单。
我在循环中的理解是正确的。我们从第一个开放的订单进行到最后一个订单。因此,我们应该采取最后一个订单的价格。
还有更多。我在OnTick中加入了Alert("d")。我在测试器中运行了代码,但我没有听到任何提示音或窗口。
在叉子循环中,我的理解是正确的。我们正在从第一个公开的订单到最后一个订单。相应地,我采取了最后一个订单的价格。
我也有这个。我在OnTick中加入了Alert("d")。我在测试器中运行了代码,但我没有听到任何提示音或窗口。
下午好!
当试图编辑EA时,如何与 "未找到MetaEditor "作斗争?MetaTrader构建600。
我似乎不记得在旧版中有这样的问题......。
是否可以这样解释:我工作的电脑功率相当低,50-75%的时间都在加载。我有7个MT4实例在上面运行,但在正常情况下(即没有外部负载,如通过TeamViewer访问并试图启动MetaEditor),其性能是足够的,后台运行的任务管理器显示15-20分钟的平均CPU使用率<=45-50%。
这个问题不会在100%的情况下发生,MetaEditor在表现出不寻常的耐心和毅力后,从第5-10-25次开始每次都会运行。但尝试启动MetaEditor半小时,真的很烦人。
测试仪中的警报被打印在测试仪的日志中。而关于循环、跳过、选择和粗暴对待的问题也不清楚。你能得到你想要的结果的大意吗?
我只想写最简单的机器人。它的作用是由马丁,由它自己。
这就是错误所在。
y = OrderOpenPrice()-Ask;
我没有像我想的那样得到整数的数字。但比如说0.0044。我怎样才能得到44,一个整数?
我只想写最简单的机器人。它的作用是由马丁,由它自己。
这就是错误所在。
y = OrderOpenPrice()-Ask;
我没有像我想的那样得到整数的数字。但比如说0.0044。我怎样才能得到44,一个整数?