Нкжна помощь в завершении бота. - страница 4

 
Konstantin Nikitin:

Так зачем делать лишние телодвижения, если уже делается один перебор позиций. И считайте сразу в нем.

привычка выводить функции в отдельных модулях чем комкать в один ком.

 
1leprecon1:
MaCurrent20H & MaCurrent20L прекрасно работают на условие открытия ордера.

Под "распечатать" я имел в виду вывести в журнал вместе с ошибкой.

P. S. Возможно, Вы не заметили, но вот в этом коде два раза используется MaCurrent20H, но нет MaCurrent20L.

Нкжна помощь в завершении бота.
Нкжна помощь в завершении бота.
  • 2020.05.05
  • www.mql5.com
кто может подсказать как решить проблему закрытия ордера...
 
Ihor Herasko:

Под "распечатать" я имел в виду вывести в журнал вместе с ошибкой.

P. S. Возможно, Вы не заметили, но вот в этом коде два раза используется MaCurrent20H, но нет MaCurrent20L.

я уже давно поменял но эффект тот же. Я так понимаю, почему то отбивает условие по шорт, а по лонг даже думать отбить не думает

 
Ihor Herasko:

Под "распечатать" я имел в виду вывести в журнал вместе с ошибкой.

P. S. Возможно, Вы не заметили, но вот в этом коде два раза используется MaCurrent20H, но нет MaCurrent20L.

0       23:59:44.669    Expert Starline 1.5 EURUSD.mm,M5: removed
0       23:59:44.692    Expert Starline 1.5 EURUSD.mm,M5: loaded successfully
0       23:59:46.761    TestGenerator: current spread 27 used
1       23:59:46.830    TestGenerator: unmatched data error (low value 1.11125 at 2019.08.15 20:45 and price 1.11124 mismatched)
1       23:59:46.830    TestGenerator: unmatched data error (volume limit 3 at 2019.08.15 20:45 exceeded)
1       23:59:46.946    TestGenerator: unmatched data error (volume limit 581 at 2020.04.08 00:00 exceeded)
1       23:59:46.946    TestGenerator: unmatched data error (volume limit 581 at 2020.04.08 00:00 exceeded)
1       23:59:46.946    TestGenerator: unmatched data error (volume limit 581 at 2020.04.08 00:00 exceeded)
1       23:59:46.946    TestGenerator: unmatched data error (volume limit 581 at 2020.04.08 00:00 exceeded)
1       23:59:46.946    TestGenerator: unmatched data error (volume limit 1865 at 2020.04.08 14:55 exceeded)
1       23:59:46.946    TestGenerator: unmatched data error (volume limit 683 at 2020.04.08 15:10 exceeded)
1       23:59:46.946    TestGenerator: unmatched data error (volume limit 614 at 2020.04.08 15:35 exceeded)
1       23:59:46.946    TestGenerator: unmatched data error (volume limit 482 at 2020.04.09 10:05 exceeded)
1       23:59:46.962    TestGenerator: unmatched data error (volume limit 417 at 2020.04.09 15:55 exceeded)
1       23:59:46.962    TestGenerator: unmatched data error (volume limit 69 at 2020.04.09 21:40 exceeded)
1       23:59:46.962    TestGenerator: unmatched data error (volume limit 325 at 2020.04.10 18:50 exceeded)
1       23:59:46.962    TestGenerator: unmatched data error (volume limit 110 at 2020.04.10 19:15 exceeded)
1       23:59:46.962    TestGenerator: unmatched data error (volume limit 173 at 2020.04.13 06:10 exceeded)
1       23:59:46.977    TestGenerator: unmatched data error (volume limit 108 at 2020.04.13 17:30 exceeded)
1       23:59:46.984    TestGenerator: unmatched data error (volume limit 647 at 2020.04.14 14:40 exceeded)
1       23:59:46.984    TestGenerator: unmatched data error (volume limit 1003 at 2020.04.14 15:00 exceeded)
1       23:59:46.984    TestGenerator: unmatched data error (volume limit 147 at 2020.04.15 03:35 exceeded)
1       23:59:46.999    TestGenerator: unmatched data error (volume limit 1011 at 2020.04.16 14:40 exceeded)
1       23:59:46.999    TestGenerator: unmatched data error (volume limit 678 at 2020.04.16 16:40 exceeded)
1       23:59:47.046    TestGenerator: unmatched data error (volume limit 138 at 2020.04.27 18:40 exceeded)
1       23:59:47.046    TestGenerator: unmatched data error (volume limit 233 at 2020.04.28 17:40 exceeded)
1       23:59:47.062    TestGenerator: unmatched data error (volume limit 91 at 2020.04.29 04:20 exceeded)
1       23:59:47.068    TestGenerator: unmatched data error (volume limit 406 at 2020.04.29 15:55 exceeded)
1       23:59:47.070    TestGenerator: unmatched data error (volume limit 134 at 2020.04.30 05:15 exceeded)
1       23:59:47.070    TestGenerator: unmatched data error (volume limit 231 at 2020.04.30 05:50 exceeded)
1       23:59:47.079    TestGenerator: unmatched data error (volume limit 257 at 2020.05.01 05:20 exceeded)
1       23:59:47.080    TestGenerator: unmatched data error (volume limit 521 at 2020.05.01 08:25 exceeded)
1       23:59:47.080    TestGenerator: unmatched data error (volume limit 432 at 2020.05.01 09:35 exceeded)
1       23:59:47.080    TestGenerator: unmatched data error (volume limit 315 at 2020.05.01 10:40 exceeded)
1       23:59:47.080    TestGenerator: unmatched data error (volume limit 241 at 2020.05.01 11:20 exceeded)
1       23:59:47.081    TestGenerator: unmatched data error (volume limit 418 at 2020.05.01 13:05 exceeded)
1       23:59:47.081    TestGenerator: unmatched data error (volume limit 355 at 2020.05.01 13:10 exceeded)
1       23:59:47.085    TestGenerator: unmatched data error (volume limit 264 at 2020.05.01 17:20 exceeded)
1       23:59:47.086    TestGenerator: unmatched data error (volume limit 216 at 2020.05.01 18:15 exceeded)
1       23:59:47.086    TestGenerator: unmatched data error (volume limit 156 at 2020.05.01 20:50 exceeded)
1       23:59:47.087    TestGenerator: unmatched data error (volume limit 408 at 2020.05.04 06:40 exceeded)
1       23:59:47.090    TestGenerator: unmatched data error (volume limit 347 at 2020.05.04 15:50 exceeded)
1       23:59:47.090    TestGenerator: unmatched data error (volume limit 301 at 2020.05.04 17:30 exceeded)
1       23:59:47.094    TestGenerator: unmatched data error (volume limit 128 at 2020.05.05 05:50 exceeded)
1       23:59:47.098    TestGenerator: unmatched data error (volume limit 281 at 2020.05.05 16:25 exceeded)
1       23:59:47.099    TestGenerator: unmatched data error (volume limit 91 at 2020.05.05 20:10 exceeded)
1       23:59:47.099    TestGenerator: unmatched data error (high value 1.08367 at 2020.05.05 20:55 is not reached from the least timeframe, high price 1.08361 mismatches)
1       23:59:47.102    TestGenerator: there are 44 generating errors
2       23:59:47.105    1970.01.01 00:00:00  Starline 1.5 inputs: Lots=0.1; MaximumRisk=0.02; DecreaseFactor=3; MovingPeriod=144; MovingShift=6; MATrendPeriod1=20; MATrendPeriod2=5; StopLoss=11; RSI_Period=7; 
2       23:59:47.142    2019.08.05 15:35:00  Starline 1.5 EURUSD.mm,M5: open #1 buy 0.10 EURUSD.mm at 1.11913 sl: 1.11831 ok
0       23:59:47.142    2019.08.05 15:35:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
2       23:59:47.142    2019.08.05 15:35:00  Starline 1.5 EURUSD.mm,M5: close #1 buy 0.10 EURUSD.mm at 1.11913 sl: 1.11831 at price 1.11886
0       23:59:47.142    2019.08.05 15:35:00  Starline 1.5 EURUSD.mm,M5: Ордер закрыт 0
2       23:59:47.149    2019.08.05 15:40:00  Starline 1.5 EURUSD.mm,M5: open #2 buy 0.10 EURUSD.mm at 1.11938 sl: 1.11838 ok
0       23:59:47.149    2019.08.05 15:40:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
2       23:59:47.149    2019.08.05 15:40:00  Starline 1.5 EURUSD.mm,M5: close #2 buy 0.10 EURUSD.mm at 1.11938 sl: 1.11838 at price 1.11911
0       23:59:47.149    2019.08.05 15:40:00  Starline 1.5 EURUSD.mm,M5: Ордер закрыт 0
2       23:59:47.154    2019.08.05 15:45:00  Starline 1.5 EURUSD.mm,M5: open #3 buy 0.10 EURUSD.mm at 1.11954 sl: 1.11846 ok
0       23:59:47.154    2019.08.05 15:45:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
2       23:59:47.154    2019.08.05 15:45:00  Starline 1.5 EURUSD.mm,M5: close #3 buy 0.10 EURUSD.mm at 1.11954 sl: 1.11846 at price 1.11927
0       23:59:47.154    2019.08.05 15:45:00  Starline 1.5 EURUSD.mm,M5: Ордер закрыт 0
2       23:59:47.161    2019.08.05 15:50:00  Starline 1.5 EURUSD.mm,M5: open #4 buy 0.10 EURUSD.mm at 1.11913 sl: 1.11846 ok
0       23:59:47.161    2019.08.05 15:50:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
2       23:59:47.161    2019.08.05 15:50:00  Starline 1.5 EURUSD.mm,M5: close #4 buy 0.10 EURUSD.mm at 1.11913 sl: 1.11846 at price 1.11886
0       23:59:47.161    2019.08.05 15:50:00  Starline 1.5 EURUSD.mm,M5: Ордер закрыт 0
2       23:59:47.171    2019.08.05 15:55:00  Starline 1.5 EURUSD.mm,M5: open #5 buy 0.10 EURUSD.mm at 1.11983 sl: 1.11856 ok
0       23:59:47.171    2019.08.05 15:55:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
2       23:59:47.171    2019.08.05 15:55:00  Starline 1.5 EURUSD.mm,M5: close #5 buy 0.10 EURUSD.mm at 1.11983 sl: 1.11856 at price 1.11956
0       23:59:47.171    2019.08.05 15:55:00  Starline 1.5 EURUSD.mm,M5: Ордер закрыт 0
2       23:59:48.715    2019.08.06 00:45:00  Starline 1.5 EURUSD.mm,M5: open #61 buy 0.10 EURUSD.mm at 1.12474 sl: 1.12365 ok
0       23:59:48.715    2019.08.06 00:45:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
2       23:59:48.715    2019.08.06 00:45:00  Starline 1.5 EURUSD.mm,M5: close #61 buy 0.10 EURUSD.mm at 1.12474 sl: 1.12365 at price 1.12447
0       23:59:48.715    2019.08.06 00:45:00  Starline 1.5 EURUSD.mm,M5: Ордер закрыт 0
2       23:59:48.751    2019.08.06 00:50:00  Starline 1.5 EURUSD.mm,M5: open #62 buy 0.10 EURUSD.mm at 1.12506 sl: 1.12376 ok
0       23:59:48.751    2019.08.06 00:50:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
2       23:59:48.751    2019.08.06 00:50:00  Starline 1.5 EURUSD.mm,M5: close #62 buy 0.10 EURUSD.mm at 1.12506 sl: 1.12376 at price 1.12479
0       23:59:48.751    2019.08.06 00:50:00  Starline 1.5 EURUSD.mm,M5: Ордер закрыт 0
2       23:59:48.984    2019.08.06 01:20:00  Starline 1.5 EURUSD.mm,M5: open #63 sell 0.10 EURUSD.mm at 1.12328 sl: 1.12403 ok
0       23:59:48.984    2019.08.06 01:20:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
0       23:59:49.031    2019.08.06 01:23:16  Tester: stop loss #63 at 1.12403 (1.12376 / 1.12403)
2       23:59:49.047    2019.08.06 01:25:00  Starline 1.5 EURUSD.mm,M5: open #64 sell 0.10 EURUSD.mm at 1.12339 sl: 1.12402 ok
0       23:59:49.047    2019.08.06 01:25:00  Starline 1.5 EURUSD.mm,M5: Ордер успешно выставлен.
3       23:59:50.748    2019.08.06 07:44:24  Tester: stop button pressed
2       23:59:50.779    2019.08.06 07:46:20  Tester: order #64 is closed
0       23:59:50.779    EURUSD.mm,M5: 49152 tick events (195 bars, 3480035 bar states) processed in 0:00:03.672 (total time 0:00:06.047)

как то совсем с этими поправками.

 
Konstantin Nikitin:

Похоже вам что-то вроде этого нужно. А вот с логикой уже разбирайтесь сами.

как то ни чего не поменялось только, хуже стало с этими поправками он вообще перестал реагировать на изменение условия закрытия, живет своей жизнью. %-(

void OnTick()
  {
//--- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false)
      return;
//--- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0)
      CheckForOpen();
   else
      int orders = 0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         continue;
      if(OrderMagicNumber() != MAGICMA)
         continue;
      if(OrderSymbol() != _Symbol)
         continue;
      switch(OrderType())
        {
         case OP_BUY:
            orders++;
            if(MaCurrent20L>Ask)
               break;
            if(OrderClose(OrderTicket(),OrderLots(),Bid,1,White))
              {
               Print("Ордер закрыт ",GetLastError());
               break;
              }
            Print("Ошибка закрытия Buy",GetLastError());
            break;

         case OP_SELL:
            orders++;
            if(MaCurrent20H<Ask)
               break;
            if(OrderClose(OrderTicket(),OrderLots(),Bid,1,Black))
              {
               Print("Ордер закрыт ",GetLastError());
               break;
              }
            Print("Ошибка закрытия Buy",GetLastError());
            break;
        }
      if(orders == 0)
        {
         CheckForOpen();  /* условия открытия позиции */
        }
     }
//---
//---
  }
ааааа..... Голова кипит.
 

Или вот так если нравиться

void OnTick()
  {
//---
    /* предварительные функции для закрытия позиций */
//---
    if( CheckingOrders() > 0 )
        return;
//---
    /* тут проверка на открытие торговой позиции */
  }
//------------------------------------------------------
int CheckingOrders(void)
  {
   int orders = 0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         continue;
      if(OrderMagicNumber() != Magic)
         continue;
      if(OrderSymbol() != _Symbol)
         continue; == 0)
     {
          /* условия открытия позиции */
     }
      switch(OrderType())
        {
         case OP_BUY:
            orders++;
            if(MaCurrent20H<Ask)
               break;
            if(OrderClose(OrderTicket(),OrderLots(),Bid,1,White))
              {
               Print("Ордер закрыт ",GetLastError());
               break;
              }
            Print("Ошибка закрытия Buy",GetLastError());
            break;

         case OP_SELL:
            orders++;
            if(MaCurrent20H>Ask)
               break;
            if(OrderClose(OrderTicket(),OrderLots(),Bid,1,Black))
              {
               Print("Ордер закрыт ",GetLastError());
               break;
              }
            Print("Ошибка закрытия Buy",GetLastError());
            break;
        }
     }
//---
     return orders;
  }
P.S. А вообще начните с основ и постепенно разбирайтесь. Пока вы спотыкаетесь на самых элементарных вещах. Рано писать боевых экспертов пока вам. Обретете уверенности хоть немного тогда уже можно и что-то думать боевое.
Удачи вам.
 
Konstantin Nikitin:

Или вот так если нравиться

P.S. А вообще начните с основ и постепенно разбирайтесь. Пока вы спотыкаетесь на самых элементарных вещах. Рано писать боевых экспертов пока вам. Обретете уверенности хоть немного тогда уже можно и что-то думать боевое.
Удачи вам.

Ура! огромнейше благодарен. Разобрался где ошибка, Сейчас надо создать фильтр чтобы оуточнить точку входа в рынок.

 
1leprecon1:

Ура! огромнейше благодарен. Разобрался где ошибка, Сейчас надо создать фильтр чтобы отсечь ненужные ставки.

Здравствуйте! Вот понимаете ли в чем проблема, Вы попросили помощи и люди рассматривали, что уж там не так, под конец Вы нашли и написали - УРА! А в чем собственно
 
Aleksandr Martynov:
Здравствуйте! Вот понимаете ли в чем проблема, Вы попросили помощи и люди рассматривали, что уж там не так, под конец Вы нашли и написали - УРА! А в чем собственно

Индикатор МА не работает в Global для closeorder, хотя стоит отдельный модуль индикаторов, который работает только на sendorder. Ошибка глупейшая и логика ошибки не полятна.

 
Konstantin Nikitin:

Так зачем делать лишние телодвижения, если уже делается один перебор позиций. И считайте сразу в нем.

Я лишние телодвижения не делаю, для меня проще создать отдельный модуль той или иной функции, а потом при необходимости вызвать эту функцию короткой коммандой. Чем таскать эту функцию по всему телу с полным кодом.
Причина обращения: