« Предыдущий пост | На главную страницу | Следующий пост »

Эксперт по теории Хаоса Б.Вильямса: определение текущего состояния

В прошлом выпуске я рассказал о том, как мы будем рассчитывать магическое число для нашего эксперта, чтобы отличать позиции, открытые нашим экспертом на определенном тайм-фрейме, от позиций, открытых другими экспертами или на других временных периодах.

В этом выпуске я расскажу о том, как при запуске эксперта определить его состояние, т.е. стоим ли мы в покупку, или же мы медвежим, или же мы квадратные (т.е. без открытых позиций).

Прежде всего для сохранения информации о текущем статусе заведем переменную CurrentStatus:

   // текущий статус
   int     CurrentStatus;

Проверку будем производить при инициализации эксперта, т.е. в функции init().

Вначале будем предполагать, что у нас нет открытых позиций:

   CurrentStatus = STATUS_NO_POSITIONS;

Потом пробежимся по всем открытым позициям и выставленным ордерам (см. цикл for):

      for(int pos=0; pos<OrdersTotal(); pos++)
      {
         ... в этом цикле для каждой позиции произведем соответствующие проверки
      }

Для каждой открытой позиции или отложенного ордера проделаем ряд проверок. Для начала выделим позицию с помощью функции OrderSelect() и пожалуемся в лог, если при этом произошла ошибка:

        if(!OrderSelect(pos, SELECT_BY_POS, MODE_TRADES))
        {
          // произошла ошибка при выделении
          Print("Ошибка ", GetLastError(), ": не могу выделить ордер ", pos);
          continue;
        }

Если позиция не по нашему инструменту (см. OrderSymbol), то просто перейдем к следующей позиции:

        if(OrderSymbol()!=Symbol()) return;

Нас интересуют только открытые позиции. Отложенные ордера нас не интересуют. Тип позиции мы определяем с помощью функции OrderType():

        if(OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue;

Открытая позиция должна иметь то же магическое число (его мы получаем функцией OrderMagicNumber), что и наш эксперт и наш период графика:

        if(OrderMagicNumber() != GetMagicNumber()) continue;

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

        // если это позиция на покупку
        if(OrderType() == OP_BUY)
        {
          if(CurrentStatus == STATUS_SHORT)
          {
            // у нас разнонаправленные позиции, открытые этим экспертом 
            // на этом периоде, или другой эксперт использует наше магическое число
            Print("Ошибка: обнаружены разнонаправленные позиции, открытые",
                    " этим экспертом на этом периоде, или другой эксперт использует ",
                    "наше магическое число");
            break;
          }
          else 
            CurrentStatus = STATUS_LONG;
        }
        // если это позиция на продажу
        else
        {
          if(CurrentStatus == STATUS_LONG)
          {
            // у нас разнонаправленные позиции, открытые этим экспертом 
            // на этом периоде, или другой эксперт использует наше магическое число
            Print("Ошибка: обнаружены разнонаправленные позиции, открытые",
                    " этим экспертом на этом периоде, или другой эксперт использует ",
                    "наше магическое число");
            break;
          }
          else 
            CurrentStatus = STATUS_SHORT;
        }

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

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

   switch(CurrentStatus)
   {
     case STATUS_SHORT:        Print("Мы стоим в продажу"); break;
     case STATUS_LONG:         Print("Мы стоим в покупку"); break;
     case STATUS_NO_POSITIONS: Print("У нас нет открытых позиций"); break;
   }

В следующем выпуске я вставлю все эти строчки в код эксперта и выложу то, что у нас получилось на данный момент.

« Предыдущий пост | На главную страницу | Следующий пост »

Комментарии по теме "Эксперт по теории Хаоса Б.Вильямса: определение текущего состояния"

Спасибо! Все СУПЕР!
На данном этапе конструктивных замечаний, пожеланий и предложений нет, а вот дальше... очень хочется поучавствовать...
P.S. не хватает одной закрывающей скобки закрыть тело цикла перед Switch

Я с большим интересом слежу за данной темой ,но если честно то "меня терзают смутные сомненья" ведь сейчас в интернет кучи разных советников сложностью которых нужно только удивляться ну представим ситуацию ,что болшинство трейдеров, в целом людей далеко не глупых ,поставят себе прибыльные советники что будет .Вот Вы Андрей если честно все равно находитесь по другую сторону барикад намекните перспективу развития трейдинга с помощью торговых роботов для обычных трейдеров

P.S. не хватает одной закрывающей скобки закрыть тело цикла перед Switch

Спасибо. Исправил.

Вот Вы Андрей если честно все равно находитесь по другую сторону барикад намекните перспективу развития трейдинга с помощью торговых роботов для обычных трейдеров

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

В результате все счастливы:
1. Трейдер использует прибыльную МТС. Все запросы отрабатываются моментально.
2. Дилинг не тратит свое время на обработку многочисленных запросов.
3. Банк получает хороший оборот, а дилинг - хорошую комиссию или часть спрэда.

Подписаться на мою рассылку



Размещение статьи "Эксперт по теории Хаоса Б.Вильямса: определение текущего состояния" на Вашем сайте

Размещение статьи "Эксперт по теории Хаоса Б.Вильямса: определение текущего состояния" на Вашем сайте возможно при условии выполнениия следующих условий:

  • Запрещается изменение оригинального текста без согласия автора - Андрея Ведихина.
  • Должен быть указан первоисточник. В случае публикации в интернете Вы должны разместить следующий код гиперссылки без изменений:
  • Запрещается коммерческое использование материалов, взятых с блога "Интернет-трейдинг на форекс / forex". Доступ к ним должен быть свободным, без взимания какой-либо платы, без обязательной регистрации и/или заполнения опросного листа (анкеты) и т.д.

В случае выполнения данных условий не требуется согласия автора блога "Интернет-трейдинг на форекс / forex" на размещение статьи "Эксперт по теории Хаоса Б.Вильямса: определение текущего состояния" на Вашем сайте.

Журнал FOREX MAGAZINE:



Архив номеров FOREX MAGAZINE
Котировки Forex:

Счетчики:

Авторские права © 2005-2006 Андрей Ведихин

Условия использования материалов блога "Интернет-трейдинг на форекс / forex"

Контакты с автором:


Движок сайта:
Movable Type 5.04