追踪止损和追踪利润 - 页 4 1234567 新评论 Arav007 2014.03.07 10:54 #31 是的,我已经明白了。这是不可能的,因为cnt会有3,2,1这样的值,而Ticket Number是不同的。 if(OrdersTotal()>0){ for(cnt=OrdersTotal()-1;cnt>=0;cnt--){ if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){ sl = OrderStopLoss(); // Stop Loss. tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. Order Ticket=OrderTicket(); if(OrderType()==OP_SLL){ if( Order Ticket== Sell_Order_Ticket_1){ Do the Normal Trailing Stop} if( Order Ticket== Sell_Order_Ticket_2){ Do the Normal Trailing Stop} if( Order Ticket== Sell_Order_Ticket_3){ Don't move the Stop Loss} 我可以像这样比较票号吗? 问候 Tjipke de Vries 2014.03.07 11:28 #32 Arav007:是的,我已经明白了。这是不可能的,因为cnt会有3,2,1这样的值,而Ticket Number是不同的。我可以像这样比较票号吗?请注意 不 如果你的电脑重新启动,那么Sell_Order_Ticket_1(2和3也是) 的值就会丢失。检查 订单开价和订单利润 Arav007 2014.03.07 12:18 #33 deVries: 没有 如果你的电脑必须重新启动,那么Sell_Order_Ticket_1(2和3也是) 的值就会丢失。 检查订单openprice和订单eprofit 我不明白为什么重启终端后Sell_Order_Ticket_1的值会丢失? 这是一个变量,除非有新的卖出订单 开始,否则它不会被过度写入。 这是我的理解,但你的评论背后有逻辑。所以请解释一下。 我已经看了OrderOpenPrice和OrderTakeProfit函数。怎么处理它们? Keith Watford 2014.03.07 12:24 #34 Arav007: 我不明白为什么重启终端后Sell_Order_Ticket_1的值会丢失? 这是一个变量,除非有新的卖出订单开启,否则它不会被过度写入。 这是我的理解,但你的评论背后有逻辑。所以请解释一下。 我已经看了OrderOpenPrice和OrderTakeProfit函数。如何处理它们? 重新启动终端时,所有变量都会丢失。 只有客户终端的全局变量可以被检索到。 Tjipke de Vries 2014.03.07 12:30 #35 Arav007: 我不明白为什么重启终端后Sell_Order_Ticket_1的值会丢失?这是一个变量,除非有新的卖出订单开仓,否则它不会被写入。这就是我的理解,但你的评论背后有逻辑。所以请解释一下。我已经看了OrderOpenPrice和OrderTakeProfit函数。该如何处理它们? 再做一些测试,创建你的文件 打开这3笔交易 注意你得到的数字 然后关闭你的metatrader4并重新启动它,检查 Sell_Order_Ticket_1、 Sell_Order_Ticket_2和 Sell_Order_Ticket_3 的值。 如果不是,你得到的是什么值? Arav007 2014.03.07 13:25 #36 好了,明白了。这条关于 "变量 "的信息对未来 也会有帮助。 if(OrdersTotal()>0){ for(cnt=3;cnt>0;cnt--){ if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){ sl = OrderStopLoss(); // Stop Loss. tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. if(OrderType()==OP_BUY){ if (cnt==3) { Do the Normal Trailing Stop} if (cnt==2) { Do the Normal Trailing Stop} if (cnt==1) { Don't move the Stop Loss} } } } 这个怎么样? Tjipke de Vries 2014.03.07 13:31 #37 Arav007: 好了,明白了。这条关于 "变量 "的信息对未来也会有帮助。 这个怎么样? 我们能不能再看一下你的开仓交易代码? 检查 这些交易的止损和止盈,仍然有一些问题,你看到了吗? Arav007 2014.03.07 13:58 #38 deVries: 我们可以先看一下你的开仓交易代码吗? 检查这些交易的止损和止盈,仍然有问题,你看到了吗? 哦,这是个错误的代码。修正了这些缺陷后,获利部分现在很好,但止损是个问题。 逻辑。 如果(Fast_EMA>Slow_SMA) { 如果(MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0) { 买入 } } Tjipke de Vries 2014.03.07 14:15 #39 Arav007: 哦,这是错误的代码。修正了这些缺陷后,获利部分现在很好,但止损是个问题。 你在这些交易中想要什么止损? Arav007 2014.03.07 14:36 #40 deVries: 你在这些交易中想要什么止损? 就像这里的USDJPY交易。 第一笔交易(这里是最后一笔,由于时间的反向安排)的TP=103.636 第二笔交易的TP=103.736 第三笔交易的TP=108.536 [我把这个TP设置在这样的距离上,因此它就像没有TP一样工作] 现在,按照我的要求,当价格在7个点[103.603]的利润时,第1和第2笔交易的止损将变成1个点。 第1次和第2次交易的止损将变成1点利润[103.543],第3次交易的止损将保持在103.386。 就像下面的图片一样。 第一笔GBPUSD订单以10点利润平仓。 第二笔订单仍在运行,它的止损点被移动。 第三笔交易的止损也被移动了,我不希望这样。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,我已经明白了。这是不可能的,因为cnt会有3,2,1这样的值,而Ticket Number是不同的。
if(OrdersTotal()>0){ for(cnt=OrdersTotal()-1;cnt>=0;cnt--){ if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){ sl = OrderStopLoss(); // Stop Loss. tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. Order Ticket=OrderTicket(); if(OrderType()==OP_SLL){ if( Order Ticket== Sell_Order_Ticket_1){ Do the Normal Trailing Stop} if( Order Ticket== Sell_Order_Ticket_2){ Do the Normal Trailing Stop} if( Order Ticket== Sell_Order_Ticket_3){ Don't move the Stop Loss}我可以像这样比较票号吗?
问候
是的,我已经明白了。这是不可能的,因为cnt会有3,2,1这样的值,而Ticket Number是不同的。
我可以像这样比较票号吗?
请注意
不
如果你的电脑重新启动,那么Sell_Order_Ticket_1(2和3也是) 的值就会丢失。
检查 订单开价和订单利润
没有
如果你的电脑必须重新启动,那么Sell_Order_Ticket_1(2和3也是) 的值就会丢失。
检查订单openprice和订单eprofit
我不明白为什么重启终端后Sell_Order_Ticket_1的值会丢失?
这是一个变量,除非有新的卖出订单 开始,否则它不会被过度写入。
这是我的理解,但你的评论背后有逻辑。所以请解释一下。
我已经看了OrderOpenPrice和OrderTakeProfit函数。怎么处理它们?
我不明白为什么重启终端后Sell_Order_Ticket_1的值会丢失?
这是一个变量,除非有新的卖出订单开启,否则它不会被过度写入。
这是我的理解,但你的评论背后有逻辑。所以请解释一下。
我已经看了OrderOpenPrice和OrderTakeProfit函数。如何处理它们?
重新启动终端时,所有变量都会丢失。
只有客户终端的全局变量可以被检索到。
我不明白为什么重启终端后Sell_Order_Ticket_1的值会丢失?
这是一个变量,除非有新的卖出订单开仓,否则它不会被写入。
这就是我的理解,但你的评论背后有逻辑。所以请解释一下。
我已经看了OrderOpenPrice和OrderTakeProfit函数。该如何处理它们?
再做一些测试,创建你的文件
打开这3笔交易
注意你得到的数字
然后关闭你的metatrader4并重新启动它,检查 Sell_Order_Ticket_1、 Sell_Order_Ticket_2和 Sell_Order_Ticket_3 的值。
如果不是,你得到的是什么值?
好了,明白了。这条关于 "变量 "的信息对未来 也会有帮助。
if(OrdersTotal()>0){ for(cnt=3;cnt>0;cnt--){ if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){ sl = OrderStopLoss(); // Stop Loss. tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. if(OrderType()==OP_BUY){ if (cnt==3) { Do the Normal Trailing Stop} if (cnt==2) { Do the Normal Trailing Stop} if (cnt==1) { Don't move the Stop Loss} } } }这个怎么样?
好了,明白了。这条关于 "变量 "的信息对未来也会有帮助。
这个怎么样?
我们能不能再看一下你的开仓交易代码?
检查 这些交易的止损和止盈,仍然有一些问题,你看到了吗?
我们可以先看一下你的开仓交易代码吗?
检查这些交易的止损和止盈,仍然有问题,你看到了吗?
哦,这是个错误的代码。修正了这些缺陷后,获利部分现在很好,但止损是个问题。
逻辑。
如果(Fast_EMA>Slow_SMA)
{
如果(MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)
{
买入
}
}
哦,这是错误的代码。修正了这些缺陷后,获利部分现在很好,但止损是个问题。
你在这些交易中想要什么止损?
就像这里的USDJPY交易。
第一笔交易(这里是最后一笔,由于时间的反向安排)的TP=103.636
第二笔交易的TP=103.736
第三笔交易的TP=108.536 [我把这个TP设置在这样的距离上,因此它就像没有TP一样工作]
现在,按照我的要求,当价格在7个点[103.603]的利润时,第1和第2笔交易的止损将变成1个点。
第1次和第2次交易的止损将变成1点利润[103.543],第3次交易的止损将保持在103.386。
就像下面的图片一样。
第一笔GBPUSD订单以10点利润平仓。
第二笔订单仍在运行,它的止损点被移动。
第三笔交易的止损也被移动了,我不希望这样。