如何编码? - 页 266 1...259260261262263264265266267268269270271272273...347 新评论 Min Li 2011.07.23 04:02 #2651 ixbone: 大家好。我想用魔法收集一个货币对的所有订单(买入和卖出),如果它们达到收支平衡,所有的订单应该被关闭。 非常欢迎任何指导,谢谢 extern bool PairBreakeven=true;//每对订单的盈亏平衡都是由同一对/魔法的所有订单决定的。 extern double Pairbreakevengain=6;//实现收支平衡所需的点数收益 extern double Pairbreakeven=3;//收支平衡,订单关闭,3点利润/损失。 双倍Pairmovebreakeven; 如果(PairBreakeven=true){ if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven); CloseBuyOrders(Magic); CloseSellOrders(Magic)。 } void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){ RefreshRates(); 如果(OrdersTotal()>0){ for(int i=OrdersTotal();i>=0;i++){ OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。 如果(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ){ 返回。 } } } } int CloseBuyOrders(int Magic){ //op_sell类似 int total=OrdersTotal(); for(int cnt=total-1;cnt>=0;cnt--){ OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)。 如果(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){ 如果(OrderType()==OP_BUY){ OrderClose(OrderTicket(),OrderLots(), Bid,3*mt)。 } } } return(0); } 这段代码的主要问题是在BE函数中,它从来没有真正移动停止或采取任何行动。如果你没有用文字说明你的意图,我真的无法从代码中发现你想做什么。 你想让代码检测到你账户中所有的订单,这些订单的止损价等于订单的开仓价,并关闭所有的订单?那么实际的收支平衡动作是由其他EA完成的?我想帮助你,但不知道你想做什么。 ixbone 2011.07.23 05:05 #2652 christinaLi: 这段代码的主要问题是在BE函数中,它从未真正移动过停止或采取任何行动。如果你不说出你的意图,我真的无法从代码中检测出你想做什么。 你想让代码检测出你账户中所有止损=订单开盘价的订单,并关闭所有的订单?那么实际的收支平衡动作是由其他EA完成的?我想帮助你,但我不知道你想做什么。 christinaLi, 对不起,我的误导。 -我想通过魔法收集一个货币对的所有订单,并总结所有订单的利润,不管是买入、卖出、tp、sl,例如:我们有8个买入和卖出订单,总结的利润是6点//extern double Pairbreakevengain=6;//为实现收支平衡所需的点数收益 -如果一个货币对的所有订单(买入和卖出)的利润是+6点,所有的订单(买入/卖出)sl应该设置止损为当前价格-3 //extern double Pairbreakeven=3;//收支平衡, 订单关闭, 3点利润/损失 -如果Pairbreakevengain从一对订单的所有利润中扣除,例如:8个混合买入/卖出订单的利润之和为6,回到3,所有订单被关闭。 我有一个正确的单子盈亏平衡的工作模块,我试图自己修改它,我缺乏mt4的代码技能,很多年前,我学会了汇编... 我应该发布单笔盈亏平衡订单的功能吗? 谢谢你的帮助 九 Min Li 2011.07.23 15:08 #2653 嗨,九哥。 我知道你现在想做什么。这是可以做到的。 事情有点复杂,因为你可能同时有买入和卖出。因为当你谈到 "当前价格 "时,对于买入来说是指买入价,对于卖出来说是指卖出价,因为只有这些是现实的价格,才能关闭订单。因此,你可以看到在任何时候,当你调整订单的止损 时,买入和卖出都有一个差价。如果你的点差不是恒定的,有很多机会你的订单不会在同一时间被关闭,有时有可能你一半的订单不会被关闭。 我认为好的方法是不实际移动止损,相反,一旦整体利润达到6点,EA将激活记忆,然后简单地在市场上关闭所有订单,而整体利润下降到3点。在这种情况下,EA强制关闭订单,它们不会被MT4停止。 ixbone 2011.07.23 15:48 #2654 christinaLi: 嗨,IX。 我知道你现在想做什么。这是可以做到的。事情有点复杂,因为你可能同时有买入和卖出。因为当你谈到 "当前价格 "时,对于买入来说,它指的是买入价,对于卖出来说,它指的是卖出价,因为只有这些是现实的价格,才能关闭订单。因此,你可以看到在任何时候,当你调整订单的止损时,买入和卖出都有一个差价。如果你的点差不是恒定的,有很多机会你的订单不会在同一时间被关闭,有时可能有一半的订单不会被关闭。 我认为好的方法是不实际移动止损,相反,一旦整体利润达到6点,EA将激活记忆,然后简单地在市场上关闭所有订单,而整体利润下降到3点。在这种情况下,EA强制关闭订单,它们不会被MT4停止。 嗨,ChristinaLi。 我100%同意,这太复杂了,我明白你的意思,也许不移动 止损的一对(篮子)计算是解决方案,比如。 - 选择每一对的所有订单,并使用魔法 - 总结所有订单的利润 - 如果利润总和=6点 - 关闭所有订单,如果没有发生滑点,盈亏平衡将是6点 "利润",如果滑点3点,盈亏平衡的结果是3点 "利润" 1) 优点是:完全没有问题 2) 缺点:所有订单都没有(3点)空间,如果我有7个买入和6个卖出的对冲订单,如果一个买入订单增加6点,所有订单都关闭,是否有一个选项可以在达到6点(盈亏平衡=true)时,通过减少3点(6-3=3点利润)将所有订单标记为关闭(breakevencloseorders=true)? 在#1中,7buy和6sell的对冲订单不能上涨超过6点,它们总是被关闭。 在#2中,6点只是一个激活标记,如果下降到3点,关闭所有订单,如果上涨超过6点,例如15点,有+3点到15点的空间,这导致12点的利润 点差在这个时候没有计算!因为7buys和6sells总结了2个点的点差为26个点,一个买入订单必须有 "0 "的平衡,一个买入订单必须有32个点的#1和29个点的#2 - 我说的对吗? 谢谢你的建议 九 Min Li 2011.07.23 16:14 #2655 ixbone: 你好,ChristinaLi。 我100%同意,它太复杂了,我明白你的意思,也许不移动止损的一对(篮子)计算是解决方案,比如。- 选择每一对的所有订单,并施以魔法- 总结所有订单的利润- 如果利润总和=6点- 关闭所有订单,如果没有发生滑点,盈亏平衡将是6点 "利润",如果滑点3点,盈亏平衡的结果是3点 "利润"1) 优点是:完全没有问题2) 缺点:所有订单都没有(3点)空间,如果我有7个买入和6个卖出的对冲订单,如果一个买入订单增加6点,所有订单都关闭,是否有一个选项可以在达到6点(盈亏平衡=true)时,通过减少3点(6-3=3点利润)将所有订单标记为关闭(breakevencloseorders=true)?在#1中,7buy和6sell的对冲订单不能上涨超过6点,它们总是被关闭。在#2中,6点只是一个激活标记,如果下降到3点,关闭所有订单,如果上涨超过6点,例如15点,有+3点到15点的空间,这导致12点的利润点差在这个时候没有计算!因为7buys和6sells总结了2个点的点差为26个点,一个买入订单必须有 "0 "的平衡,一个买入订单必须有32个点的#1和29个点的#2 - 我说的对吗?谢谢你的建议 IX 我想你误解了我的意思,你想要的东西是可以准确实现的,只是没有实际修改止损。我今天会找时间编写代码并为你演示。克里斯蒂娜 Min Li 2011.07.23 16:46 #2656 ixbone: 嗨,ChristinaLi。我100%同意,它太复杂了,我明白你的意思,也许不移动止损的一对(篮子)计算是解决方案,比如。 - 选择每一对的所有订单,并施以魔法 - 总结所有订单的利润 - 如果利润总和=6点 - 关闭所有订单,如果没有发生滑点,盈亏平衡将是6点 "利润",如果滑点3点,盈亏平衡的结果是3点 "利润" 1) 优点是:完全没有问题 2) 缺点:所有订单都没有(3点)空间,如果我有7个买入和6个卖出的对冲订单,如果一个买入订单增加6点,所有订单都关闭,是否有一个选项可以在达到6点(盈亏平衡=true)时,通过减少3点(6-3=3点利润)将所有订单标记为关闭(breakevencloseorders=true)? 在#1中,7buy和6sell的对冲订单不能上涨超过6点,它们总是被关闭。 在#2中,6点只是一个激活标记,如果下降到3点,关闭所有订单,如果上涨超过6点,例如15点,有+3点到15点的空间,这导致12点的利润 点差在这个时候没有计算!因为7buys和6sells总结了2个点的点差为26个点,一个买入订单必须有 "0 "的平衡,一个买入订单必须有32个点的#1和29个点的#2 - 我说的对吗? 谢谢你的建议 IX 事实上,现在我又想了一下,你要求的事情是做不到的。 这很有意思,我编了很多类似的函数,你可以计算美元金额或点数的BE实习生,但他们都是同一个订单类型。它不能在买入和卖出时都进行。例如,如果你有X个买入(它们可以是不同的手数),在某些时候,所有的美元利润加在一起是0,所以现在你是在BE。如果是买入,如果你想获得3个点的利润,那么只需在当前买入价上加3个点,就有了目标价格。但如果你同时有买入和卖出,你会怎么做? 加还是减? 在以下情况下,你如何定义你有3个点的利润?1手在1.4100买入,2手在1.4150卖出? 唯一可以做的是使用美元的利润,而不是点的利润,我想。 ixbone 2011.07.23 16:48 #2657 christinaLi: 我想你误解了我的意思,你想要的东西是可以准确实现的,只是没有实际修改止损。我今天会找时间编写代码,为你演示。湘云 谢谢你,克里斯蒂娜。 我非常感谢你的知识! 冯小刚 ixbone 2011.07.23 17:36 #2658 christinaLi: 实际上,现在我又多想了一下,你所问的事情是做不到的。这相当有趣,我已经编码了很多类似的函数,你可以计算美元金额或点数的BE实习生,但他们都是相同的订单类型。买入和卖出不能同时进行。例如,如果你有X个买入(它们可以是不同的手数),在某些时候,所有的美元利润加在一起是0,所以现在你是在BE。如果是买入,如果你想获得3个点的利润,那么只需在当前买入价上加3个点,就有了目标价格。但如果你同时有买入和卖出,你会怎么做? 加还是减? 在以下情况下,你如何定义你有3个点的利润?1手在1.4100买入,2手在1.4150卖出? 唯一可以做的是使用美元的利润,而不是点的利润,我想。 克里斯蒂娜。 加法或减法并不重要,因为7个买单和6个卖单 的手数之和足以达到正常的利润,一个货币对的所有订单的BE应该作为一种安全功能。 有了这个对冲功能,你可以节省大量的保证金,在50点之间,你的账户不会被抹去,如果没有达到正常的利润,BE应该关闭所有的订单,并开始一个新的信号和第一个订单。 对于买入/卖出信号,我使用价格行动。 附加的文件: unbenannt.png 7 kb ixbone 2011.07.23 17:48 #2659 ixbone: 克里斯蒂娜。增加或减少并不重要,因为7个买单与6个卖单的手数之和足以达到正常利润,BE对一个货币对的所有订单应作为一个安全功能。 有了这个对冲功能,你可以节省大量的保证金,在50点之间,你的账户不会被抹去,如果没有达到正常的利润,BE应该关闭所有的订单,并开始一个新的信号和第一个订单。 对于买入/卖出信号,我使用价格行动。 其他信息。 - 我同时交易8-10个主要市场,以实现多样化(部分相关),因此,用0.01交易10个货币对比用0.1交易一个货币对更好。 - 我将订单之间的步数增加一倍,即25、50、100、200、400。 例如。 第一笔订单1.5000 第二笔订单1.5025 第3次.........1.050 第4次.........1.100 以此类推 Min Li 2011.07.24 13:33 #2660 我想对你所说的这个功能 提供帮助,但似乎我不能简单地弄清你的逻辑。这真的与策略的其他逻辑没有关系。 我只是想知道这一点。 如果你有1手在1.4110买入,2手在1.4200卖出。你认为你在什么价格上有6个点的收益? 1...259260261262263264265266267268269270271272273...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好。
我想用魔法收集一个货币对的所有订单(买入和卖出),如果它们达到收支平衡,所有的订单应该被关闭。
非常欢迎任何指导,谢谢
extern bool PairBreakeven=true;//每对订单的盈亏平衡都是由同一对/魔法的所有订单决定的。
extern double Pairbreakevengain=6;//实现收支平衡所需的点数收益
extern double Pairbreakeven=3;//收支平衡,订单关闭,3点利润/损失。
双倍Pairmovebreakeven;
如果(PairBreakeven=true){
if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven);
CloseBuyOrders(Magic);
CloseSellOrders(Magic)。
}
void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){
RefreshRates();
如果(OrdersTotal()>0){
for(int i=OrdersTotal();i>=0;i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。
如果(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ){
返回。
}
}
}
}
int CloseBuyOrders(int Magic){ //op_sell类似
int total=OrdersTotal();
for(int cnt=total-1;cnt>=0;cnt--){
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)。
如果(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){
如果(OrderType()==OP_BUY){
OrderClose(OrderTicket(),OrderLots(), Bid,3*mt)。
}
}
}
return(0);
}这段代码的主要问题是在BE函数中,它从来没有真正移动停止或采取任何行动。如果你没有用文字说明你的意图,我真的无法从代码中发现你想做什么。
你想让代码检测到你账户中所有的订单,这些订单的止损价等于订单的开仓价,并关闭所有的订单?那么实际的收支平衡动作是由其他EA完成的?我想帮助你,但不知道你想做什么。
这段代码的主要问题是在BE函数中,它从未真正移动过停止或采取任何行动。如果你不说出你的意图,我真的无法从代码中检测出你想做什么。 你想让代码检测出你账户中所有止损=订单开盘价的订单,并关闭所有的订单?那么实际的收支平衡动作是由其他EA完成的?我想帮助你,但我不知道你想做什么。
christinaLi,
对不起,我的误导。
-我想通过魔法收集一个货币对的所有订单,并总结所有订单的利润,不管是买入、卖出、tp、sl,例如:我们有8个买入和卖出订单,总结的利润是6点//extern double Pairbreakevengain=6;//为实现收支平衡所需的点数收益
-如果一个货币对的所有订单(买入和卖出)的利润是+6点,所有的订单(买入/卖出)sl应该设置止损为当前价格-3 //extern double Pairbreakeven=3;//收支平衡, 订单关闭, 3点利润/损失
-如果Pairbreakevengain从一对订单的所有利润中扣除,例如:8个混合买入/卖出订单的利润之和为6,回到3,所有订单被关闭。
我有一个正确的单子盈亏平衡的工作模块,我试图自己修改它,我缺乏mt4的代码技能,很多年前,我学会了汇编...
我应该发布单笔盈亏平衡订单的功能吗?
谢谢你的帮助
九
嗨,九哥。
我知道你现在想做什么。这是可以做到的。
事情有点复杂,因为你可能同时有买入和卖出。因为当你谈到 "当前价格 "时,对于买入来说是指买入价,对于卖出来说是指卖出价,因为只有这些是现实的价格,才能关闭订单。因此,你可以看到在任何时候,当你调整订单的止损 时,买入和卖出都有一个差价。如果你的点差不是恒定的,有很多机会你的订单不会在同一时间被关闭,有时有可能你一半的订单不会被关闭。
我认为好的方法是不实际移动止损,相反,一旦整体利润达到6点,EA将激活记忆,然后简单地在市场上关闭所有订单,而整体利润下降到3点。在这种情况下,EA强制关闭订单,它们不会被MT4停止。
嗨,IX。
我知道你现在想做什么。这是可以做到的。
事情有点复杂,因为你可能同时有买入和卖出。因为当你谈到 "当前价格 "时,对于买入来说,它指的是买入价,对于卖出来说,它指的是卖出价,因为只有这些是现实的价格,才能关闭订单。因此,你可以看到在任何时候,当你调整订单的止损时,买入和卖出都有一个差价。如果你的点差不是恒定的,有很多机会你的订单不会在同一时间被关闭,有时可能有一半的订单不会被关闭。
我认为好的方法是不实际移动止损,相反,一旦整体利润达到6点,EA将激活记忆,然后简单地在市场上关闭所有订单,而整体利润下降到3点。在这种情况下,EA强制关闭订单,它们不会被MT4停止。嗨,ChristinaLi。
我100%同意,这太复杂了,我明白你的意思,也许不移动 止损的一对(篮子)计算是解决方案,比如。
- 选择每一对的所有订单,并使用魔法
- 总结所有订单的利润
- 如果利润总和=6点
- 关闭所有订单,如果没有发生滑点,盈亏平衡将是6点 "利润",如果滑点3点,盈亏平衡的结果是3点 "利润"
1) 优点是:完全没有问题
2) 缺点:所有订单都没有(3点)空间,如果我有7个买入和6个卖出的对冲订单,如果一个买入订单增加6点,所有订单都关闭,是否有一个选项可以在达到6点(盈亏平衡=true)时,通过减少3点(6-3=3点利润)将所有订单标记为关闭(breakevencloseorders=true)?
在#1中,7buy和6sell的对冲订单不能上涨超过6点,它们总是被关闭。
在#2中,6点只是一个激活标记,如果下降到3点,关闭所有订单,如果上涨超过6点,例如15点,有+3点到15点的空间,这导致12点的利润
点差在这个时候没有计算!因为7buys和6sells总结了2个点的点差为26个点,一个买入订单必须有 "0 "的平衡,一个买入订单必须有32个点的#1和29个点的#2 - 我说的对吗?
谢谢你的建议
九
你好,ChristinaLi。
我100%同意,它太复杂了,我明白你的意思,也许不移动止损的一对(篮子)计算是解决方案,比如。
- 选择每一对的所有订单,并施以魔法
- 总结所有订单的利润
- 如果利润总和=6点
- 关闭所有订单,如果没有发生滑点,盈亏平衡将是6点 "利润",如果滑点3点,盈亏平衡的结果是3点 "利润"
1) 优点是:完全没有问题
2) 缺点:所有订单都没有(3点)空间,如果我有7个买入和6个卖出的对冲订单,如果一个买入订单增加6点,所有订单都关闭,是否有一个选项可以在达到6点(盈亏平衡=true)时,通过减少3点(6-3=3点利润)将所有订单标记为关闭(breakevencloseorders=true)?
在#1中,7buy和6sell的对冲订单不能上涨超过6点,它们总是被关闭。
在#2中,6点只是一个激活标记,如果下降到3点,关闭所有订单,如果上涨超过6点,例如15点,有+3点到15点的空间,这导致12点的利润
点差在这个时候没有计算!因为7buys和6sells总结了2个点的点差为26个点,一个买入订单必须有 "0 "的平衡,一个买入订单必须有32个点的#1和29个点的#2 - 我说的对吗?
谢谢你的建议
IX我想你误解了我的意思,你想要的东西是可以准确实现的,只是没有实际修改止损。我今天会找时间编写代码并为你演示。克里斯蒂娜
嗨,ChristinaLi。
我100%同意,它太复杂了,我明白你的意思,也许不移动止损的一对(篮子)计算是解决方案,比如。
- 选择每一对的所有订单,并施以魔法
- 总结所有订单的利润
- 如果利润总和=6点
- 关闭所有订单,如果没有发生滑点,盈亏平衡将是6点 "利润",如果滑点3点,盈亏平衡的结果是3点 "利润"
1) 优点是:完全没有问题
2) 缺点:所有订单都没有(3点)空间,如果我有7个买入和6个卖出的对冲订单,如果一个买入订单增加6点,所有订单都关闭,是否有一个选项可以在达到6点(盈亏平衡=true)时,通过减少3点(6-3=3点利润)将所有订单标记为关闭(breakevencloseorders=true)?
在#1中,7buy和6sell的对冲订单不能上涨超过6点,它们总是被关闭。
在#2中,6点只是一个激活标记,如果下降到3点,关闭所有订单,如果上涨超过6点,例如15点,有+3点到15点的空间,这导致12点的利润
点差在这个时候没有计算!因为7buys和6sells总结了2个点的点差为26个点,一个买入订单必须有 "0 "的平衡,一个买入订单必须有32个点的#1和29个点的#2 - 我说的对吗?
谢谢你的建议
IX事实上,现在我又想了一下,你要求的事情是做不到的。
这很有意思,我编了很多类似的函数,你可以计算美元金额或点数的BE实习生,但他们都是同一个订单类型。它不能在买入和卖出时都进行。例如,如果你有X个买入(它们可以是不同的手数),在某些时候,所有的美元利润加在一起是0,所以现在你是在BE。如果是买入,如果你想获得3个点的利润,那么只需在当前买入价上加3个点,就有了目标价格。但如果你同时有买入和卖出,你会怎么做? 加还是减?
在以下情况下,你如何定义你有3个点的利润?1手在1.4100买入,2手在1.4150卖出?
唯一可以做的是使用美元的利润,而不是点的利润,我想。
我想你误解了我的意思,你想要的东西是可以准确实现的,只是没有实际修改止损。我今天会找时间编写代码,为你演示。湘云
谢谢你,克里斯蒂娜。
我非常感谢你的知识!
冯小刚
实际上,现在我又多想了一下,你所问的事情是做不到的。
这相当有趣,我已经编码了很多类似的函数,你可以计算美元金额或点数的BE实习生,但他们都是相同的订单类型。买入和卖出不能同时进行。例如,如果你有X个买入(它们可以是不同的手数),在某些时候,所有的美元利润加在一起是0,所以现在你是在BE。如果是买入,如果你想获得3个点的利润,那么只需在当前买入价上加3个点,就有了目标价格。但如果你同时有买入和卖出,你会怎么做? 加还是减?
在以下情况下,你如何定义你有3个点的利润?1手在1.4100买入,2手在1.4150卖出?
唯一可以做的是使用美元的利润,而不是点的利润,我想。克里斯蒂娜。
加法或减法并不重要,因为7个买单和6个卖单 的手数之和足以达到正常的利润,一个货币对的所有订单的BE应该作为一种安全功能。
有了这个对冲功能,你可以节省大量的保证金,在50点之间,你的账户不会被抹去,如果没有达到正常的利润,BE应该关闭所有的订单,并开始一个新的信号和第一个订单。
对于买入/卖出信号,我使用价格行动。
克里斯蒂娜。
增加或减少并不重要,因为7个买单与6个卖单的手数之和足以达到正常利润,BE对一个货币对的所有订单应作为一个安全功能。
有了这个对冲功能,你可以节省大量的保证金,在50点之间,你的账户不会被抹去,如果没有达到正常的利润,BE应该关闭所有的订单,并开始一个新的信号和第一个订单。
对于买入/卖出信号,我使用价格行动。
其他信息。
- 我同时交易8-10个主要市场,以实现多样化(部分相关),因此,用0.01交易10个货币对比用0.1交易一个货币对更好。
- 我将订单之间的步数增加一倍,即25、50、100、200、400。
例如。
第一笔订单1.5000
第二笔订单1.5025
第3次.........1.050
第4次.........1.100
以此类推
我想对你所说的这个功能 提供帮助,但似乎我不能简单地弄清你的逻辑。这真的与策略的其他逻辑没有关系。
我只是想知道这一点。
如果你有1手在1.4110买入,2手在1.4200卖出。你认为你在什么价格上有6个点的收益?