пятница, 13 апреля 2012 г.

Фильтр уровней для ThinkOrSwim (TOS)

Если кто-то использует в свей торговле уровни, даю код фильтра поиска уровней. Искал его долго, потом решил написать его сам.

Код очень простой, ищет как поддержку так и сопротивление. Если уровень целый, подкрашивает его.

Plot base = (if (((low[0] == low[1]) and (low[2] == low[1]) and (low[2] == low[3]))or((high[0] == high[1]) and (high[2] == high[1]) and (high[2] == high[3]))) then 0 else 1);
AssignBackgroundColor(if (base == 0) and ((low[1] == Ceil(low[1]))or(high[1] == Ceil(high[1]))) then Color.green else Color.black);



Фильтр  ищет 4 бара которые не выходят за уровень. Код простой, легко модифицировать под свои нужды. Пользуйтесь на здоровье (и на прибыль).

В watchlist Вы увидите такие результаты:
   0 - есть уровень
   0 подкрашенный - есть целый уровень
   1 - нет уровня

* - в agrigation незабываем ставить диапазон торговли (5m, 3m ...).

-====добавлено===-

Также, фильтр на 8 баров:


Plot base = (if (((low[0] == low[1]) and (low[2] == low[1]) and (low[2] == low[3]) and (low[3] == low[4]) and (low[4] == low[5]) and (low[5] == low[6]) and (low[6] == low[7]))or((high[0] == high[1]) and (high[2] == high[1]) and (high[2] == high[3]) and (high[3] == high[4]) and (high[4] == high[5]) and (high[5] == high[6]) and (high[6] == high[7]))) then 0 else 1);
AssignBackgroundColor(if (base == 0) and ((low[1] == Ceil(low[1]))or(high[1] == Ceil(high[1]))) then Color.green else Color.black);

4 комментария:

  1. пожалуйста напишите эту формулу на 2 баров

    ОтветитьУдалить
  2. Plot base = (if (((low[0] == low[1]))or((high[0] == high[1]))) then 0 else 1);
    AssignBackgroundColor(if (base == 0) and ((low[1] == Ceil(low[1]))or(high[1] == Ceil(high[1]))) then Color.green else Color.black);

    ОтветитьУдалить
  3. Здравствуйте, а мне сможете написать фильтр поиска баров ?

    ОтветитьУдалить