От теории к практике - страница 773

 
Andrei:

Так видно же что номер тикета старый берет.

Не, не понимаю... Все нормально работает - потом такая ерунда... Приходится перекомпилировать...

 
Alexander_K2:

Не, не понимаю... Все нормально работает - потом такая ерунда... Приходится перекомпилировать...

Ошибка в извлечении номера тикета. Делайте распечатку всех стадий и найдете.
 
Alexander_K2:

Не, не понимаю... Все нормально работает - потом такая ерунда... Приходится перекомпилировать...

Я так понимаю, была операция с позицией (доливка, частичное закрытие и т.п.), тикет меняется. Лучше использовать мэджик. Он не меняется )))

 
Сергей Таболин:

Я так понимаю, была операция с позицией (доливка, частичное закрытие и т.п.), тикет меняется. Лучше использовать мэджик. Он не меняется )))

Не, чё-то происходит, когда идет интенсивный тиковый поток и открыто много позиций...

Черт его знает...

Пришлось, все-таки, считывать не все тики, а с "прореживанием" (никак без него - видно, судьба) и увеличить объем выборки - буду дальше смотреть...

 
Alexander_K2:

Не, чё-то происходит, когда идет интенсивный тиковый поток и открыто много позиций...


Было бы лучше выложить часть кода работы с ордерами, тогда проще было бы понять в чём причина. 

 
Alexander_K2:

Не, чё-то происходит, когда идет интенсивный тиковый поток и открыто много позиций...

Возможно неправильный порядок считывания...

 
Ерунда, ребята - это не остановит мой отчаянный рывок навстречу счастью в виде драгоценного Грааля.
 
Alexander_K2:
Ерунда, ребята - это не остановит мой отчаянный рывок навстречу счастью в виде драгоценного Грааля.
// это должно быть вначале программы?
void ClosePositions(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=k-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) ClosePosBySelect();
        }
      }
    }
  }
}


//а это уже сама программа

ZZ=OrderClose(value1,value2,Bid,10);
   if(ZZ==TRUE)
    {
       (какие то действия)
    }
   if(ZZ==FALSE)
    {
      ClosePositions()
    }
Попробуй вставить на закрытие ордеров эту функцию
 
Alexander_K2:

Не боись, дружище - физика сильнее паршивого рынка. А мыслишь ты верно (вспоминая наше общение) - только к асимметрии еще эксцесс добавь и все будет в ажуре. Готовь карманы.

Да все давно уже в ажуре.. зачем что-то куда-то добавлять?) Вот есть рынок мы знаем что СБ+резкие скачки цены иначе говоря толстые хвосты, это все что у нас есть. 
Так что париться вы все тут знаете наперед что будет с ценой, цена как и раньше так и сейчас, и после будет являться  около 98% случайностью.
Так почему бы этим знанием не воспользоваться?) 
Даже если вы что нибудь найдете быстро что-то заработать не выйдет это в любом случае будет очень трудоемкая работа особенно в отношении брокеров. У нормальных брокеров сейчас в большинстве своем нет нормальных терминалов длы работы, + куча ограничений по открытию позиций, я уже не говорю о комиссиях. 

Правда она такая - что бы вы ни делали, она не поменяется...

 
Martin Cheguevara:
Попробуй вставить на закрытие ордеров эту функцию

Благодарствую, дружище. С меня - Holy Grail. Карманы очистил от пыли?

Причина обращения: