Как работает MarketPosition?

vedmedgrizzly 15:53:48 27/01/2001:

Мои старые опасения подтвердились — Омега пересчитывает МаркетПозишн с задержкой на бар. Т.е. если позиция закрыта на текущем баре (не важно где — на закрытии или внутри бара), то МаркетПозишн обнулится лишь на закрытии следующего бара. Причем если на следующем баре, после бара, где позиция была закрыта, вы вошли в позицию, МаркетПозишн будет всё равно 0.

Как это обойти? Когда сигнал на вход происходит — отфиксировать можно сразу (типа как ситуацию когда, МаркетПозишн 0). А если вышли из позы по стоп-ордеру внутри бара как отфиксировать это в прописываемом сигнале стратегии (мне необходимо это учесть)?



Отправлено konkop 19:01:28 27/01/2001

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

Пока понял следующее. MarketPosition меняется все таки в момент выхода или входа. Задержка возникает, если например был выход по Close, а следующий вход формируется по стоп/лимит ордеру и использует условие If MarketPosition=0. Потому что первым баром на котором это условие выполняется — бар следующий после выхода по Close. А стоп/лимит ордера формируются для «последующих» баров. Вот и возникает задержка. Выход один, просто не использовать условие MarketPos в условиях ордера. У меня была другая проблема. Как при выходе по стоп-ордеру внутри бара запретить повторный вход на закрытии этого же бара, если есть сигнал. Условие MarketPosition не помогает, так как оно становится = 0 именно на этом же баре, где сработал стоп-ордер. Пока нашел один способ. Делать первую нулевую сетапную сделку, а дальше использовать конструкцию с BarssinceExit.

Если составлять торговую стратегию из различных сигналов, то прописав в сигналах print (date, time, currentbar, MarketPosition)  онаруживаем в debug РАЗНЫЕ состояния MarketPosition для различных сигналов. Для сигналов выхода (MM Stop, BrkEv Stop) MarketPosition = 0 определена на том баре, где произошел выход, но если на закрытии этого бара произошел вход в позицию, то MarketPosition всё равно останется равной 0 до следующего бара (вот только в какой момент это произойдет — на откытии/закрытии???). Для сигналов входа (у меня система входит на закрытии) MarketPosition будет определена на следующем после бара-выхода баре... 

Мы, похоже, как слепые котятя пытаемся экспериментальным путем нащупать как и что, вместо того, чтобы прочесть инструкцию...



Гость 25.11.2009 14:56

Можно сделать фильтр:
If (TotalTrades = 0 AND BarsSinceExit(1) = 0) OR
   (TotalTrades > 0 AND BarsSinceExit(1) > 0) Then Begin
 { код стратегии }
End;

Наверх