请指导我有关传播的问题 - 页 4 1234 新评论 tatyawinchu 2014.04.06 11:28 #31 deysmacro: 但你必须记住。EA只关闭运行中的交易。你必须自己打开交易。 100%,没问题,这正是我想达到的目的......我不想让EA打开任何交易,那是我的工作......我只想让它在超过2个订单以X利润打开时关闭它,并且必须考虑价差慢慢地,我已经开始接近它了......这个编程的东西应该在学校里教......嘿嘿,可惜我是80年代的人,从来没有想过我要经历这些,但我越读帮助文件,我发现它越来越吸引人了......另外,这个论坛有很多帮助,感谢像你这样的人。 Daniel Petrovai 2014.04.06 11:30 #32 tatyawinchu:如果我可以添加一个IF循环,然后粘贴下面的其余代码,开始循环呢?IF条件应该检查OrdersTotal是=>2,这样控制权就会被传递给所有未平仓的订单,在点差后的X利润处关闭? 我不确定你说的"IF条件应该检查 OrdersTotal是=>2,这样控制权就会被传递给所有未平仓的订单,在点差后的X利润处平仓 "的真正含义。但我敢肯定,如果你尝试,不会发生什么坏事。如果它不工作,也没有什么损失。至少你试过了。 Syed Naufal Gaddafi 2014.04.06 11:36 #33 tatyawinchu: 100%,没有问题,这正是我想实现的......我不想让EA开出任何交易,那是我的工作......我只想让它在超过2个订单在X利润的情况下关闭它,并且必须考虑点差慢慢地,我已经开始接近它了......这个编程的东西应该在学校里教......嘿嘿,可惜我是80年代的人,从来没有想过我要经历这些,但我越读帮助文件,我发现它越来越吸引人了......另外,这个论坛有很多帮助,感谢像你这样的人。 只要在totalprofit中包括传播。 tatyawinchu 2014.04.06 11:38 #34 thrdel: 我不确定你说的"IF条件应该检查OrdersTotal是否=>2,这样控制权就会被传递给所有未平仓的订单,在点差后以X的利润平仓 " 是什么意思?但我敢肯定,如果你尝试,不会发生什么坏事。如果它不工作,也没有什么损失。至少你试过了。 我不确定你说的 "IF条件应该检查OrdersTotal是否=>2,这样控制权就会被传递给所有未平仓的订单,在点差后的X利润处平仓 " 是什么意思?嗯,好的,我的意思是 如果......未平仓订单总数大于或等于2......才会继续并遵循其余的代码。 如果未结订单总数...[OrdersTotal()?]...小于2...这意味着要么是1,要么是0,那么什么都不做...。现在,对我来说有一个问题,mql 4的帮助文件说OrdersTotal()计算所有的订单,市场订单和挂单订单......我试图寻找一些函数,它可以只获得实时市场订单,而不是挂单订单,或者,它可以通过数学计算,因为大多数情况下,我一次最多有两个交易。 这样的解释是否更清楚? 谢谢你给我的时间。 Syed Naufal Gaddafi 2014.04.06 11:42 #35 thrdel 想让你先试试,看看会发生什么,虽然我很确定可能会发生什么。 tatyawinchu 2014.04.06 11:43 #36 deysmacro:thrdel 希望你先试试,看看会发生什么。 是的,通过帮助文件找到适当的功能,它只提供开放订单。 Syed Naufal Gaddafi 2014.04.06 11:46 #37 当你设法完成它时,向我们展示你的代码,如果可以的话,我们会帮助你。 tatyawinchu 2014.04.06 12:16 #38 deysmacro: 当你设法完成它时,请向我们展示你的代码,如果可以的话,我们会帮助你。 收到了!谢谢... .. 我没有找到一个只返回开仓交易的函数......这很好,所以我添加了如下的IF循环。 //+------------------------------------------------------------------+ //| CloseTrades_After_Account_Profit_Reached.mq4 | //| Copyright © 2007, Tradinator | //| tradinator.fx@gmail.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, Tradinator" #property link "tradinator.fx@gmail.com" extern double My_Money_Profit_Target=100; //The amount of money profit at which you want to close ALL open trades. extern string Profit_Target= "Enter above To Close all OPEN trades when amount of profit is Reached in Account and not per OPEN trade! "; int Slippage=5; int i; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() //+------------------------------------------------------------------+ //| This is just the single line of code that I have added //+------------------------------------------------------------------+ { if (OrdersTotal()>=2) { if (AccountProfit()>= My_Money_Profit_Target) { for(i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); int type = OrderType(); bool result = false; switch(type) { //Close opened long positions case OP_BUY : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slippage,Pink); break; //Close opened short positions case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slippage,Pink); } if(result == false) { Sleep(0); } } Print ("Account Profit Reached. All Open Trades Have Been Closed"); return(0); } Comment("Balance: ",AccountBalance(),", Account Equity: ",AccountEquity(),", Account Profit: ",AccountProfit(), "\nMy Account Profit Target: ",My_Money_Profit_Target); return(0); } } 我在开始时添加了IF条件,即如果 (OrdersTotal()>=2)......[在上述代码中突出显示了注释] 。 现在,关闭{}有问题,因为在第一次尝试时,我试着把它改为 { if (OrdersTotal()>=2) } { if (AccountProfit()>= My_Money_Profit_Target) { for(i=OrdersTotal()-1;i>=0;i--) { .. etc etc 因此,作为一个第一次编写代码的人,我试图把这个if条件放在第一个被检查的地方......没有编译。 所以我把{}关闭,把条件放在里面,现在编译时只有两个警告,没有错误。 应该检查'OrderSelect'的返回值 Testcode 1.mq4 56 8 不是所有的控制路径都返回一个值 Testcode 1.mq4 86 2 所以它可以编译......在逻辑上是否正确? [另外,没有删除任何版权信息,我只是添加了一行,删除他的细节对我来说是完全不公平的......关于这个规则是什么?] Daniel Petrovai 2014.04.06 12:29 #39 tatyawinchu: 是的,通过帮助文件找到了适当的功能,该功能只提供开放的订单。 真的很抱歉,正如我之前所说,我真的不擅长解释。我知道你想找到一个只计算未平仓的买单或卖单 的函数,我让你看看我的代码,我尽我所能向你解释,但没有我希望的那样好。 你还记得我提到的关于该代码的第一个步骤吗? 它是:CountMyOrders。现在,如果你按照我的要求看一下这段代码,你会发现以下情况 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double CountMyOrders() { myOrders=0; for(int cnt=OrdersTotal()-1;cnt>=0;cnt--) { if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==false) Print("Failed to select order, error : "+ErrorDescription(GetLastError())); //skip orders placed by other EA's if(OrderMagicNumber()>0)continue; if(OrderType()==OP_BUY || OrderType()==OP_SELL) { myOrders++; } } return(myOrders); } 它说。 if(OrderType()==OP_BUY || OrderType()==OP_SELL) 你必须知道OP_BUY和OP_SELL是什么意思。 没有挂单,没有开放的买入止损,没有开放的卖出止损,没有买入限制或卖出限制,只有开放的买入和卖出。 我还能怎样更好地解释这段代码和它的作用呢? 你可以继续搜索文档,熟悉它,但我可以告诉你,你要找的功能不在那里。 我的EA说,如果还没有订单,就等待。 if(myOrders<1) 你想让你的等待2个订单。如果你稍微注意一下我说的话,你可能会注意到,你所需要做的就是 。 if(myOrders<2) Voilla。现在它在等待2个订单到位--没有挂单,只有买入或卖出! 请理解,我试图把代码放在一起,以适应其他人可能正在寻找的管理未平仓交易的方法,而不是为特定目的的定制设计。 它的目的是作为一个例子,把你认为好的东西拿出来,其余的不要,改进它,改变它,如果你能从它身上学到东西并进行实验。 希望这有意义。 tatyawinchu 2014.04.06 12:35 #40 thrdel: 真的很抱歉,正如我之前所说,我真的不擅长解释。我知道你想找一个只计算未平仓的买单或卖单的函数,我让你看看我的代码,我尽我所能向你解释,但并不像我希望的那样好。 你还记得我提到的关于该代码的第一个步骤吗? 它是:CountMyOrders。现在,如果你按照我的要求看一下这段代码,你会发现以下情况 它说。 你必须知道OP_BUY和OP_SELL是什么意思。 没有挂单,没有开放的买入止损,没有开放的卖出止损,没有买入限制或卖出限制,只有开放的买入和卖出。 我还能怎样更好地解释这段代码和它的作用呢? 你可以继续搜索文档,熟悉它,但我可以告诉你,你要找的功能不在那里。 我的EA说,如果还没有订单,就等待。 你想让你的等待2个订单。如果你稍微注意一下我说的话,你可能会注意到,你所需要做的就是 。 Voilla。现在它在等待2个订单到位--没有挂单,只有买入或卖出! 请理解,我试图把代码放在一起,以适应其他人可能正在寻找的管理未平仓交易的方法,而不是为特定目的的定制设计。 它的目的是作为一个例子,把你认为好的东西拿出来,其余的不要,改进它,改变它,如果你能从它身上学到东西并进行实验。 希望这有意义。 谢谢......首先,不是你!是我!嘿嘿,我是这里的新手......你的解释很完美!只是现在有点难以消化,因为我正在一步一步地......一个字一个字地阅读帮助文件=),并在我遇到困难时寻求帮助......相反,现在因为你的代码,我正在阅读帮助文件中的功能部分!另外,你能不能把我上面粘贴的代码编译到你那里,看看那个IF条件的逻辑是否有什么问题?让我们现在忽略它计算所有的订单......比如说,如果这个EA在没有订单的情况下被执行,然后第一个订单被打开,一段时间后其他订单被触发......这个IF条件的逻辑流程是否正确?另外,我现在几乎可以肯定,这段代码只需要修正一行或类似的内容[另外,我放弃了将此作为工作发布的想法......],我不必复杂地扫描是否省略其他EA的订单,因为对我来说,这将是唯一运行的EA,所以我不必专门为每个订单分配神奇的数字等......现在我只需要找出我的IF的逻辑是否正确^^。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
但你必须记住。EA只关闭运行中的交易。你必须自己打开交易。
100%,没问题,这正是我想达到的目的......我不想让EA打开任何交易,那是我的工作......我只想让它在超过2个订单以X利润打开时关闭它,并且必须考虑价差慢慢地,我已经开始接近它了......这个编程的东西应该在学校里教......嘿嘿,可惜我是80年代的人,从来没有想过我要经历这些,但我越读帮助文件,我发现它越来越吸引人了......另外,这个论坛有很多帮助,感谢像你这样的人。
如果我可以添加一个IF循环,然后粘贴下面的其余代码,开始循环呢?
IF条件应该检查OrdersTotal是=>2,这样控制权就会被传递给所有未平仓的订单,在点差后的X利润处关闭?
我不确定你说的"IF条件应该检查 OrdersTotal是=>2,这样控制权就会被传递给所有未平仓的订单,在点差后的X利润处平仓 "的真正含义。
但我敢肯定,如果你尝试,不会发生什么坏事。如果它不工作,也没有什么损失。至少你试过了。
100%,没有问题,这正是我想实现的......我不想让EA开出任何交易,那是我的工作......我只想让它在超过2个订单在X利润的情况下关闭它,并且必须考虑点差慢慢地,我已经开始接近它了......这个编程的东西应该在学校里教......嘿嘿,可惜我是80年代的人,从来没有想过我要经历这些,但我越读帮助文件,我发现它越来越吸引人了......另外,这个论坛有很多帮助,感谢像你这样的人。
只要在totalprofit中包括传播。
我不确定你说的"IF条件应该检查OrdersTotal是否=>2,这样控制权就会被传递给所有未平仓的订单,在点差后以X的利润平仓 " 是什么意思?
但我敢肯定,如果你尝试,不会发生什么坏事。如果它不工作,也没有什么损失。至少你试过了。
我不确定你说的 "IF条件应该检查OrdersTotal是否=>2,这样控制权就会被传递给所有未平仓的订单,在点差后的X利润处平仓 " 是什么意思?
嗯,好的,我的意思是
如果......未平仓订单总数大于或等于2......才会继续并遵循其余的代码。
如果未结订单总数...[OrdersTotal()?]...小于2...这意味着要么是1,要么是0,那么什么都不做...。
现在,对我来说有一个问题,mql 4的帮助文件说OrdersTotal()计算所有的订单,市场订单和挂单订单......我试图寻找一些函数,它可以只获得实时市场订单,而不是挂单订单,或者,它可以通过数学计算,因为大多数情况下,我一次最多有两个交易。
这样的解释是否更清楚?
谢谢你给我的时间。
thrdel 想让你先试试,看看会发生什么,虽然我很确定可能会发生什么。
thrdel 希望你先试试,看看会发生什么。
是的,通过帮助文件找到适当的功能,它只提供开放订单。
当你设法完成它时,请向我们展示你的代码,如果可以的话,我们会帮助你。
收到了!谢谢...
..
我没有找到一个只返回开仓交易的函数......这很好,所以我添加了如下的IF循环。
我在开始时添加了IF条件,即如果 (OrdersTotal()>=2)......[在上述代码中突出显示了注释] 。
现在,关闭{}有问题,因为在第一次尝试时,我试着把它改为
因此,作为一个第一次编写代码的人,我试图把这个if条件放在第一个被检查的地方......没有编译。
所以我把{}关闭,把条件放在里面,现在编译时只有两个警告,没有错误。
应该检查'OrderSelect'的返回值 Testcode 1.mq4 56 8
不是所有的控制路径都返回一个值 Testcode 1.mq4 86 2
所以它可以编译......在逻辑上是否正确?
[另外,没有删除任何版权信息,我只是添加了一行,删除他的细节对我来说是完全不公平的......关于这个规则是什么?]
是的,通过帮助文件找到了适当的功能,该功能只提供开放的订单。
真的很抱歉,正如我之前所说,我真的不擅长解释。我知道你想找到一个只计算未平仓的买单或卖单 的函数,我让你看看我的代码,我尽我所能向你解释,但没有我希望的那样好。
你还记得我提到的关于该代码的第一个步骤吗?
它是:CountMyOrders。现在,如果你按照我的要求看一下这段代码,你会发现以下情况
它说。
你必须知道OP_BUY和OP_SELL是什么意思。
没有挂单,没有开放的买入止损,没有开放的卖出止损,没有买入限制或卖出限制,只有开放的买入和卖出。
我还能怎样更好地解释这段代码和它的作用呢?
你可以继续搜索文档,熟悉它,但我可以告诉你,你要找的功能不在那里。
我的EA说,如果还没有订单,就等待。
你想让你的等待2个订单。如果你稍微注意一下我说的话,你可能会注意到,你所需要做的就是 。
Voilla。现在它在等待2个订单到位--没有挂单,只有买入或卖出!
请理解,我试图把代码放在一起,以适应其他人可能正在寻找的管理未平仓交易的方法,而不是为特定目的的定制设计。
它的目的是作为一个例子,把你认为好的东西拿出来,其余的不要,改进它,改变它,如果你能从它身上学到东西并进行实验。
希望这有意义。
真的很抱歉,正如我之前所说,我真的不擅长解释。我知道你想找一个只计算未平仓的买单或卖单的函数,我让你看看我的代码,我尽我所能向你解释,但并不像我希望的那样好。
你还记得我提到的关于该代码的第一个步骤吗?
它是:CountMyOrders。现在,如果你按照我的要求看一下这段代码,你会发现以下情况
它说。
你必须知道OP_BUY和OP_SELL是什么意思。
没有挂单,没有开放的买入止损,没有开放的卖出止损,没有买入限制或卖出限制,只有开放的买入和卖出。
我还能怎样更好地解释这段代码和它的作用呢?
你可以继续搜索文档,熟悉它,但我可以告诉你,你要找的功能不在那里。
我的EA说,如果还没有订单,就等待。
你想让你的等待2个订单。如果你稍微注意一下我说的话,你可能会注意到,你所需要做的就是 。
Voilla。现在它在等待2个订单到位--没有挂单,只有买入或卖出!
请理解,我试图把代码放在一起,以适应其他人可能正在寻找的管理未平仓交易的方法,而不是为特定目的的定制设计。
它的目的是作为一个例子,把你认为好的东西拿出来,其余的不要,改进它,改变它,如果你能从它身上学到东西并进行实验。
希望这有意义。