[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 23 1...161718192021222324252627282930...432 新评论 Paladin80 2012.12.19 08:44 #221 WindSW:我的代码使其更容易通过ArrayRange确定迭代的数量。为什么我写xDelH[countDH][0]=HBar[countH][0];(尽管HBar[countH][0]已经被填满,并且有自己的值)时得到0?我到底能不能做到这一点? 在这个赋值操作之后,如何检查xDelH[countDH][0]的值? Nikita Zubarov 2012.12.19 08:48 #222 请告诉我哪个函数能记住最后一个开仓订单的获利价格。 [Deleted] 2012.12.19 09:04 #223 Frostr: 请告诉我哪个函数能记住最后一个开仓订单的获利价格。 如果你需要准确记忆,只需在每次开单时将TakeProfit 值保存在一个变量中。 Nikita Zubarov 2012.12.19 09:15 #224 我只是需要//通过计算平均价格进行平均 double averageprice =NormalizeDouble(sum/allots, Digits); //通过为每个未结订单移动相同的TakeProfit来修改系列的所有订单 for ( trade = OrdersTotal() - 1; trade >= 0; trade-- ) { if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol() { //为买入订单获取利润 if ( OrderType() == OP_BUY) tp = averageprice + TP * Point; //为卖出订单获取利润 if ( OrderType() == OP_SELL) tp = averageprice - TP * Point; //修改属于系列的订单 OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow); } } }修改旧的订单,将其TakeProfit改为新开订单的TakeProfit(如果价格将最后一个订单关闭在Stop,那么所有以前的订单也将被关闭)。 [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 初学者的问题 MQL5 MT5 MetaTrader [Deleted] 2012.12.19 09:44 #225 Frostr:我只是需要 //通过计算平均价格进行平均化 double averageprice = NormalizeDouble(sum/allots, Digits); //修改该系列的所有订单,为每个未结订单移动相同的TakeProfit。 for ( trade = OrdersTotal() - 1; trade >= 0; trade-- ) { 如果 ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol() { //买入订单的利润 if ( OrderType() == OP_BUY) tp = averageprice + TP * Point; //为卖出的订单获取利润 if ( OrderType() == OP_SELL) tp = averageprice - TP * Point; //修改一个属于系列的订单 OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow) 。 } } }修改旧的订单,将其TakeProfit改为新开订单的TakeProfit(如果价格在停止时关闭最后一个订单,所有以前的订单也将关闭)。 如果你为整个系列设置一个单一的止损,前面的就会关闭。这将有助于保存这些订单的利润,或者在价格发生变化的情况下减少损失。 如果你让每个订单的止损不同(不改变它),那么只有一个订单会被关闭。该系列的其他订单的TakeProfit 值将不得不重新计算或设置为等于以前的值。 WindSW 2012.12.19 10:26 #226 paladin80: 在这个赋值操作之后,如何检查xDelH[countDH][0]的值? 通过打印 Dimka-novitsek 2012.12.19 11:06 #227 日安!!!。你知道,我在这个地方下了两个订单--通过设计,一个是带止损的,一个是不带止损的。在测试器中,两者都被删除!!!!。 if (Svetsja_1 && !Svetsja_2 && !Svetsja_3 && !Orderbuy ){ //стоп лосс 25 п. профит 30 п;стоп лосс 25 п. тралится по MA 20 RefreshRates(); OrderSend (Symbol( ), OP_BUY, lot ,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (25*Point),Digits), NormalizeDouble( Ask+( 30*Point),Digits), NULL, 450, 0, CLR_NONE); int Error=GetLastError();if (Error==0){ Sleep(2000); RefreshRates(); OrderSend (Symbol( ), OP_BUY, lot ,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (25*Point),Digits), 0, NULL, 450, 0, CLR_NONE); } Error=GetLastError(); Orderbuy=1; if (Error!=0){ string errorcomment = "Ошибка открытия ордера OP_BUY" + " " + Symbol() + " " + ErrorDescript(Error); Print (errorcomment);} } } }我完全不知道这里发生了什么。 Mikhail Kozhemyako 2012.12.19 11:24 #228 Dimka-novitsek:日安!!!。你知道,我在这个地方下了两个订单--按照设计,一个是带止损的,一个是不带止损的。在测试器中,两者都被删除!!!!。我完全不知道这里发生了什么。 仔细看,你为它们都设置了止损,只为一个设置了止盈。所以就像你写的那样:两个都会在止损点平仓,只有一个会在止盈点平仓。 TarasBY 2012.12.19 11:27 #229 Dimka-novitsek:日安!!!。你知道,我在这个地方下了两个订单--通过设计,一个是带止损的,另一个是不带止损的。在测试器中,两者都被删除!!!!。我完全不知道这里发生了什么。 对你来说,现在 "抽 "它可能还为时过早--可能会被停职!:))) Dimka-novitsek 2012.12.19 12:00 #230 是的,谢谢你!!!。这是我从街上直接来到电脑前,我完全糊涂了!"。 1...161718192021222324252627282930...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我的代码使其更容易通过ArrayRange确定迭代的数量。
为什么我写xDelH[countDH][0]=HBar[countH][0];(尽管HBar[countH][0]已经被填满,并且有自己的值)时得到0?我到底能不能做到这一点?
请告诉我哪个函数能记住最后一个开仓订单的获利价格。
如果你需要准确记忆,只需在每次开单时将TakeProfit 值保存在一个变量中。
我只是需要
//通过计算平均价格进行平均
double averageprice =NormalizeDouble(sum/allots, Digits);
//通过为每个未结订单移动相同的TakeProfit来修改系列的所有订单
for ( trade = OrdersTotal() - 1; trade >= 0; trade-- )
{
if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()
{
//为买入订单获取利润
if ( OrderType() == OP_BUY) tp = averageprice + TP * Point;
//为卖出订单获取利润
if ( OrderType() == OP_SELL) tp = averageprice - TP * Point;
//修改属于系列的订单
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow);
}
}
}
修改旧的订单,将其TakeProfit改为新开订单的TakeProfit(如果价格将最后一个订单关闭在Stop,那么所有以前的订单也将被关闭)。
我只是需要
//通过计算平均价格进行平均化
double averageprice = NormalizeDouble(sum/allots, Digits);
//修改该系列的所有订单,为每个未结订单移动相同的TakeProfit。
for ( trade = OrdersTotal() - 1; trade >= 0; trade-- )
{
如果 ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()
{
//买入订单的利润
if ( OrderType() == OP_BUY) tp = averageprice + TP * Point;
//为卖出的订单获取利润
if ( OrderType() == OP_SELL) tp = averageprice - TP * Point;
//修改一个属于系列的订单
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow) 。
}
}
}
修改旧的订单,将其TakeProfit改为新开订单的TakeProfit(如果价格在停止时关闭最后一个订单,所有以前的订单也将关闭)。
如果你为整个系列设置一个单一的止损,前面的就会关闭。这将有助于保存这些订单的利润,或者在价格发生变化的情况下减少损失。 如果你让每个订单的止损不同(不改变它),那么只有一个订单会被关闭。该系列的其他订单的TakeProfit 值将不得不重新计算或设置为等于以前的值。
在这个赋值操作之后,如何检查xDelH[countDH][0]的值?
通过打印
日安!!!。你知道,我在这个地方下了两个订单--通过设计,一个是带止损的,一个是不带止损的。在测试器中,两者都被删除!!!!。
我完全不知道这里发生了什么。
日安!!!。你知道,我在这个地方下了两个订单--按照设计,一个是带止损的,一个是不带止损的。在测试器中,两者都被删除!!!!。
我完全不知道这里发生了什么。
仔细看,你为它们都设置了止损,只为一个设置了止盈。所以就像你写的那样:两个都会在止损点平仓,只有一个会在止盈点平仓。
日安!!!。你知道,我在这个地方下了两个订单--通过设计,一个是带止损的,另一个是不带止损的。在测试器中,两者都被删除!!!!。
我完全不知道这里发生了什么。