Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1280

 
Vladimir Karputov:

Да, Вы забыли, что если обходить цикл, то на каждой итерации нужно БРАТЬ:

Справка:

SelectByIndex

Выбирает ордер для дальнейшего доступа по указанному индексу

Дааа. Мой косяк..... СПАСИБО ВЛАДИМИР ОГРОМНОЕ!!!!)))) Удачи тебе......
 
Доброго времени суток всем форумчанам. Никак не могу разобраться со скользящими. А точнее,как взять показания двух скользящих в mql5 ? Прочитал справку, но пока не могу разобраться. Хочу взять показания быстрой MA на 10 и 15 барах. И так же медленную MA на 10 и 15 барах, но чето уже голова не соображает,совсем запутался. За основу брал стандартный код и справки. Подскажите кто занет,как реализовать данный код. Всем заранее спасибо.
 

  День добрый. 

При открытых сделках миграция на "виртуальный хостинг" не происходит? 

Или другая причина?


Сделки закрыл, не мигрирует все равно.

Эксперт работает и везде загружается, какие могут быть проблемы?

Виртуальный хостинг для MetaTrader 5
Виртуальный хостинг для MetaTrader 5
  • www.mql5.com
Самый быстрый виртуальный выделенный сервер (VPS) для трейдинга на форексе от производителей терминала MetaTrader 4/5
 
Aleksandr Prishenko:

  День добрый. 

При открытых сделках миграция на "виртуальный хостинг" не происходит? 

Или другая причина?


Сделки закрыл, не мигрирует все равно.

Эксперт работает и везде загружается, какие могут быть проблемы?

Проблема в советнике. Кстати, правилами на виртуальном хостинге dll запрещены.

 
Vladimir Karputov:

Проблема в советнике. Кстати, правилами на виртуальном хостинге dll запрещены.

Раньше все чудесно работало. Надо было на бесплатном хостинге попробовать. В общем подарил метаквотам 15 баксов )))

Спасибо за ответ!

 

Советник открывает рыночные ордера, а потом модифицирует их, устанавливает ТП и СЛ. Проверка в тестере. Первый ордер модифицируется, нужными параметрами. Открывается второй ордер, в том же направлении, при действующем первом, но модифицируется первый ордер, по параметрам второго, а второй остается с нулевыми СЛ и ТП. При этом в условии стоит - если СЛ == 0 и ТП == 0, а модифицируется, почему то, тот у которого эти показатели уже не нулевые. Почему? Изменение перебора, от первого к последнему, ни чего не меняет.

И еще. В тестере, в графе прибыль, при открытых двух ордерах прибыль ордеров указана наоборот - у первого открытого ордера указана прибыль второго и наоборот. Почему?

И еще. Нужно нарисовать трендовую линию по двум экстремумам. Линия рисуется, но огрызок, от бара до бара. Это не трендовая линия, а просто отрезок, а хотелось бы видеть именно линию. 

void PositionModifiSell()
{
   int    i;
   double sl    = 0; 
   double tp    = 0;  
   int    total = PositionsTotal();
   
   for(i = total-1; i >= 0; i--)
   {
      if(m_position.SelectByIndex(i))                            
      {
         if(m_position.Symbol() == Symbol() && m_position.Magic() == Magic)
         {
            if(m_position.PositionType() == POSITION_TYPE_SELL)
            {
               if(m_position.StopLoss() == 0 && m_position.TakeProfit() == 0)
               {
                  sl = NormalizeDouble(iHigh(NULL, 0, ExtrimUp()) + VS*_Point, _Digits);                
                                    
                  if(PriceCurrentDw1() - PriceDwHigh() < LastPriceOpenOrder() - (sp+PW)*_Point)
                  {
                     tp = NormalizeDouble(PriceCurrentDw1() - PriceDwHigh(), _Digits);
                  }
                  else
                     tp = NormalizeDouble(bid - TP*_Point, _Digits);
                  
                  if(!m_trade.PositionModify(_Symbol, sl, tp))
                  {
                     Print("Метод PositionModify() потерпел поражение. Код возврата = ", m_trade.ResultRetcode(),
                           ". Описание кода: ", m_trade.ResultRetcodeDescription());
                  }
                  else
                  {
                     Print("Метод PositionModify() исполнен успешно. Код возврата = ", m_trade.ResultRetcode(),
                           " (", m_trade.ResultRetcodeDescription(),")");
                  }
               }
            }
         }
      }
   }
}
 
Youri Lazurenko:

Советник открывает рыночные ордера, а потом модифицирует их, устанавливает ТП и СЛ. Проверка в тестере. Первый ордер модифицируется, нужными параметрами. Открывается второй ордер, в том же направлении, при действующем первом, но модифицируется первый ордер, по параметрам второго, а второй остается с нулевыми СЛ и ТП. При этом в условии стоит - если СЛ == 0 и ТП == 0, а модифицируется, почему то, тот у которого эти показатели уже не нулевые. Почему? Изменение перебора, от первого к последнему, ни чего не меняет.

И еще. В тестере, в графе прибыль, при открытых двух ордерах прибыль ордеров указана наоборот - у первого открытого ордера указана прибыль второго и наоборот. Почему?

И еще. Нужно нарисовать трендовую линию по двум экстремумам. Линия рисуется, но огрызок, от бара до бара. Это не трендовая линия, а просто отрезок, а хотелось бы видеть именно линию. 

1. Не ОРДЕРА, а ПОЗИЦИИ

2. Сформулируйте свой вопрос - пока увидел повествование, а вопроса и алгоритма "как хочется, чтобы работало" я не увидел.

 
Vladimir Karputov:

1. Не ОРДЕРА, а ПОЗИЦИИ

2. Сформулируйте свой вопрос - пока увидел повествование, а вопроса и алгоритма "как хочется, чтобы работало" я не увидел.

И так понятно что позиции, раз это на языке mql5. И в коде стоит position. Вопрос - почему модифицируется первая позиция, а не последняя, хотя в условии указано: 

if(m_position.StopLoss() == 0 && m_position.TakeProfit() == 0)
 
Youri Lazurenko:

И так понятно что позиции, раз это на языке mql5. И в коде стоит position. Вопрос - почему модифицируется первая позиция, а не последняя, хотя в условии указано: 

Вопрос где??? Опишите алгоритм "я хочу чтобы алгоритм был такой ...".

 
Vladimir Karputov:

Вопрос где??? Опишите алгоритм "я хочу чтобы алгоритм был такой ...".

При пробое трендовой линии и закрытии бара выше/ниже онной, открывается позиция с нулевыми СЛ и ТП. Сразу же после открытия, устанавливается нужные ТП и СЛ (позиция модифицируется). Почему модифицируется не последняя позиция, а предыдущая, при этом нарушая условие:   

if(m_position.StopLoss() == 0 && m_position.TakeProfit() == 0)

Теперь понятно? Даже если в условие ввести время открытие позиции, ни чего не меняется. Ограничения по количеству позиций нет.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Свойства позиций - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5