У вас не стоит Flash Player
Настройки
#53593 - Tue Mar 26 2013 07:41 PM индикатор с IDouble2DoubleHandler
Vlad2013 Offline
newbie

Registered: Sat Mar 23 2013
Записи: 25
Добрый день,
у меня такая задача: хочу создать индикатор, который начинает считать для фин.инструмента(например, открытие) некоторое значение основанное на N предыдущих значений инструмента.
Причем сделать так, чтобы первые N-1 значений вычислялись только при достожении N бара, или вовсе не вычислялись.
А если значений инструмента больше чем N, то вычислялись бы только новые точки. То есть чтобы получаемый ряд каждый раз не пересчитывать заново.
Пока написал примитивный индикатор с интерфейсом IDouble2DoubleHandler, но не знаю насколько правильный выбор для данной задачи.

Наверх
#53595 - Tue Mar 26 2013 09:26 PM Re: индикатор с IDouble2DoubleHandler [Re: Vlad2013]
airwaves18244 Offline
journeyman

Registered: Sun Feb 17 2013
Записи: 99
Прочитал дважды))видимо мало)
Логическая формула вам помощь.

Наверх
#53596 - Tue Mar 26 2013 09:36 PM Re: индикатор с IDouble2DoubleHandler [Re: airwaves18244]
Vlad2013 Offline
newbie

Registered: Sat Mar 23 2013
Записи: 25
Я математик и мне чужда и мало понятна терминология торговли. Так что может что криво написал))
Мне нужно построить сглаженный ряд на основе ряда максимальных значений в стакане (или баре не знаю, что правильно). Соотв каждый элемент нового ряда зависит от N элеметов исходного ряда.
Поскольку ряд считать не быстро. Не хотелось бы, чтобы при появлении обновлений весь ряд пересчитывался.


Отредактировано Vlad2013 (Tue Mar 26 2013 09:37 PM)

Наверх
#53597 - Tue Mar 26 2013 09:45 PM Re: индикатор с IDouble2DoubleHandler [Re: Vlad2013]
airwaves18244 Offline
journeyman

Registered: Sun Feb 17 2013
Записи: 99
Пример: Использование блоков «Логическая формула» и «Формула». Синтаксис
http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=8149#Post8149

Пример: Работаем с Обновляемым значением
http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=7583#Post7583

Или опишите конкретно, что считаем, по каким значениям и когда пересчитываем)

Наверх
#53604 - Tue Mar 26 2013 11:38 PM Re: индикатор с IDouble2DoubleHandler [Re: airwaves18244]
Vlad2013 Offline
newbie

Registered: Sat Mar 23 2013
Записи: 25
Как я понял мне нужно написать индикатор аналогично SMA только со своими модификациями. Ибо используется более сложная апроксимация.
Только желательно сделать так, чтобы все найденные значения не пересчитывались при появлении данных для нового интервала.

Наверх
#53605 - Tue Mar 26 2013 11:49 PM Re: индикатор с IDouble2DoubleHandler [Re: Vlad2013]
zxc Offline
member

Registered: Mon May 07 2012
Записи: 150
действительно, не усложняй, попробуй изложить идею в кубиках и выложи сюда, народ подправит. или раскритикует...

Наверх
#53608 - Wed Mar 27 2013 12:43 AM Re: индикатор с IDouble2DoubleHandler [Re: Vlad2013]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Современные процессоры перемалывают числа очень быстро. Думаю есть смысл, сначала, сделать по простому, а уже потом решать, требуется ли оптимизация. Вот пример несложного индикатора (сглаживающий фильтр).
Code:
using System.Collections.Generic;
using TSLab.Script.Handlers;

namespace MyIndicators {
  [HandlerCategory("Мои индикаторы")]
  public class Wma : IDouble2DoubleHandler {
    [HandlerParameter(true, "20", Min = "10", Max = "100", Step = "5")]
    public int Period { get; set; }

    public IList<double> Execute(IList<double> source) {
      int count = source.Count;
      int w = Period*(Period + 1)/2;

      var wma = new double[count];
      for (int i = Period-1; i < count; i++) {
        double wma1 = 0;
        for (int k = i - Period + 1, wv = 1; k <= i; k++, wv++)
          wma1 += wv*source[k];
        wma[i] = wma1/w;
      }
      return wma;
    }
  }
}

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

Наверх
#53632 - Wed Mar 27 2013 06:20 PM Re: индикатор с IDouble2DoubleHandler [Re: jhgjrht]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
для тестов есть КЭШ!
Для реалтайма есть ограничение подаваемых данных в скрипт. Головняк с запоминанием лучше избегать.
_________________________
__


Наверх


Moderator:  ViL, sar