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

 
User_mt5:

Подскажите, пожалуйста, как понимать такое?

Цена много раз ходила по этим ордерам, в конце концов ушла вверх, но ни один из ордеров так и не стал позицией. Почему?

Если об этом где-то написано, прошу дать ссылку.


не было достаточно лотов, чтобы исполнить заявку. 

насколько я знаю, а зная я немного по этой теме, надо ставить лимитники намного выше текущей цены

 
Vladislav Andruschenko:

не было достаточно лотов, чтобы исполнить заявку.

Я тоже так предполагаю. Но дальше-то что? Ни удалить ни модифицировать ордер не получается. И что, они будут висеть пожизненно?
И не очень понятно что значит недостаточно лотов на демо .

Vladislav Andruschenko:

насколько я знаю, а зная я немного по этой теме, надо ставить лимитники намного выше текущей цены

Нет, это неверно. Выставить ордер можно где угодно в пределах текущих ограничений. Есть ограничение StopLevel. Т.е. выставить ордер получится не ближе к цене, чем значение StopLevel.

Но если сервер принял, значит всё в порядке.

 
User_mt5:

Я тоже так предполагаю. Но дальше-то что? Ни удалить ни модифицировать ордер не получается. И что, они будут висеть пожизненно?
И не очень понятно что значит недостаточно лотов на демо .

Нет, это неверно. Выставить ордер можно где угодно в пределах текущих ограничений. Есть ограничение StopLevel. Т.е. выставить ордер получится не ближе к цене, чем значение StopLevel.

Но если сервер принял, значит всё в порядке.


там на бирже немного по другому... 

 
Vladislav Andruschenko:

там на бирже немного по другому... 

Влад, на какой бирже??? Видно-же демка какой конторы открыта...

 
Alexey Viktorov:

Влад, на какой бирже??? Видно-же демка какой конторы открыта...


я имел ввиду на фьючерсах. хотя нет, что-то я запутался. не обращайте внимания. я сейчас под таблетками. 

 
Alexey Viktorov:

Влад, на какой бирже??? Видно-же демка какой конторы открыта...

Не могли бы Вы пояснить содержание этого комментария?  А то я новичок в этом деле.
Кстати, ткнул в кнопку Buy, ордер не исполнился, но отображается как.. как бы отложенный в окне Инструменты, а в чарте - нет.
 
User_mt5:
Не могли бы Вы пояснить содержание этого комментария?  А то я новичок в этом деле.
Кстати, ткнул в кнопку Buy, ордер не исполнился, но отображается как.. как бы отложенный в окне Инструменты, а в чарте - нет.
А что пояснять? На скрине видно номер счёта и имя брокера который никакого отношения к бирже не имеет.
 
Alexey Viktorov:
А что пояснять? На скрине видно номер счёта и имя брокера который никакого отношения к бирже не имеет.

Я не понимаю..

Если этот брокер не даст мне торговать по этому символу, то накой он включил его в список символов на демке?
А если даст, то как понимать текущее положение дел с ордерами?

И вообще, вот если ордер исполнился частично (на 5-ке такое возможно), то какова судьба оставшегося ордера?
Он должен быть закрыт или жить до ручного закрытия или до исполнения?
Если это где-то написано, был бы крайне признателен за ссылку.

 
User_mt5:

Я не понимаю..

Если этот брокер не даст мне торговать по этому символу, то накой он включил его в список символов на демке?
А если даст, то как понимать текущее положение дел с ордерами?

И вообще, вот если ордер исполнился частично (на 5-ке такое возможно), то какова судьба оставшегося ордера?
Он должен быть закрыт или жить до ручного закрытия или до исполнения?
Если это где-то написано, был бы крайне признателен за ссылку.

Не пытайтесь втянуть меня в обсуждение работы контор. Тем более что я порвал все отношения с этой, уже много лет назад и ничего о ней не знаю.

 
Vladimir Karputov:

Примерный алгоритм:

  1. Создаём в OnInit() два хендла (для быстрого и медленного индикатора Moving Average)
  2. В OnTick() (работать рекомендуется только на новом баре, а не на каждом тике) объявляем два массива - в одном будут потом скопированы значения с быстрого MA, а во второй массив будут скопированы данные с медленного MA.
  3. Копируем например 100 последних значений (то есть копировать нужно с индекса "0" и количество "100") с медленно MA и быстрого MA в эти массивы. 
  4. Переворачиваем массивы так, чтобы индекс #0 в массивах соответствовал самому правому бару на графике.
  5. Теперь остаётся в цикле от "0" до "100-1" пройтись по обоим массивам и искать пересечение. Когда найдём пересечение, то значение переменной цикла как раз и будет номером бара.
Примечание: в этом алгоритме не учтены никакие проверки и защиты от ошибок.

Спасибо, как написать цикл поиска номера бара пересечения двух МА когда первые два пункта алгоритма выполнены и есть значения двух МА на первом баре?

   MA1_1=iMAGet(handle_iMA_1, 1);      // значение 1-й МА

   MA2_1=iMAGet(handle_iMA_2, 1);      // значение 2-й МА

/

double iMAGet(const int handle,const int index)
  {
   double MA[];
   ArraySetAsSeries(MA,true);
//--- reset error code 
   ResetLastError();
//--- fill a part of the iMABuffer array with values from the indicator buffer that has 0 index 
   if(CopyBuffer(handle,0,0,index+1,MA)<0)
     {
      //--- if the copying fails, tell the error code 
      PrintFormat("Failed to copy data from the iMA indicator, error code %d",GetLastError());
      //--- quit with zero result - it means that the indicator is considered as not calculated 
      return(0.0);
     }
   return(MA[index]);
  }

.