У вас не стоит Flash Player
Настройки
#56545 - Tue Jul 09 2013 11:13 AM Индикатор-кубик с 2-мя входами
mumbo jumbo Offline
stranger

Registered: Mon Jul 08 2013
Записи: 8
Loc: г.Петрозаводск
Смотрю, все примеры создания индикаторов используют данные одного инструмента. А как кодом описать если нужно использовать данные 2-х инструментов - например индикатор арбитражного спреда.

И возможно ли сделать индикатор, который имел бы 2 входа к которым можно подключить не инструменты, а другие блоки (индикаторы, формулы)?
Как эти входы кодом описать и использовать? В справке API и на форуме ничего похожего не нашел. cry cry

Наверх
#56552 - Tue Jul 09 2013 04:44 PM Re: Индикатор-кубик с 2-мя входами [Re: mumbo jumbo]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Например из двух источников свой "Какой-то" инструмент ):
Click to reveal..
Code:
using System;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.DataSource;
using TSLab.Script.Helpers;

namespace spr
{		
	  public class sprd : ISecurityInputs, ISecurityReturns, ITwoSourcesHandler, IStreamHandler
    {
           public ISecurity Execute(ISecurity source1, ISecurity source2)
        {
            var bars = new List<Bar>(source1.Bars.Count);
            for (int i = 0; i < source1.Bars.Count; i++)
            {
            	var bar = source1.Bars[i];
            	var o1 = source2.OpenPrices[i];
            	var h1 = source2.HighPrices[i];
            	var l1 = source2.LowPrices[i];
            	var c1 = source2.ClosePrices[i];
                
               
                var newBar = new Bar(bar.Color, bar.Date,bar.Open-o1,
                                     bar.High-h1,
                                     bar.Low-l1,
                                     bar.Close-c1,
                                     bar.Volume){ Ask = bar.Ask, Bid = bar.Bid, AskQty = bar.AskQty, BidQty = bar.BidQty };
            	bars.Add(newBar);
            }
            return source1.CloneAndReplaceBars(bars);
        }
    }
}


Отредактировано 777 (Tue Jul 09 2013 04:45 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#56555 - Tue Jul 09 2013 05:45 PM Re: Индикатор-кубик с 2-мя входами [Re: 777]
mumbo jumbo Offline
stranger

Registered: Mon Jul 08 2013
Записи: 8
Loc: г.Петрозаводск
777,
Здорово! Спасибо за помощь! +++ не нашел куда плюсы ставить smile
ООООО, можно даже 3 и 4 источника сделать! Круто, только пока не надо )))

А как бы еще данные других "кубиков" использовать? Есть такая возможность? Например, сделал я 2 индикатора, и делая третий нужно использовать те же данные, что расчитаны первыми двумя.

Наверх
#56556 - Tue Jul 09 2013 05:49 PM Re: Индикатор-кубик с 2-мя входами [Re: mumbo jumbo]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Можно в самой программе в редакторе сделать индикатор с 2мя входами и посмотреть, какой код генерится.
Вот пример индикатора, который получает на вход 2 бумаги.


Attachments
2sec.tscript (152 downloads)
func6.cs (193 downloads)


Наверх
#56557 - Tue Jul 09 2013 06:12 PM Re: Индикатор-кубик с 2-мя входами [Re: Nektodron]
mumbo jumbo Offline
stranger

Registered: Mon Jul 08 2013
Записи: 8
Loc: г.Петрозаводск
Спасибо, Nektodron!
Интересная возможность посмотреть сгенерированный код.
Правда в этом коде известно какие кубики подключены, а при написании своего индикатора их имена еще не известны.

Наверх
#56558 - Tue Jul 09 2013 06:19 PM Re: Индикатор-кубик с 2-мя входами [Re: mumbo jumbo]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
тут есть под старую версию. Сейчас не знаю работает ли. Но если нет, то как то похоже:
http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=8738#Post8738
В коде обратного нормального распределения.


Отредактировано 777 (Tue Jul 09 2013 06:20 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#56559 - Tue Jul 09 2013 06:25 PM Re: Индикатор-кубик с 2-мя входами [Re: 777]
mumbo jumbo Offline
stranger

Registered: Mon Jul 08 2013
Записи: 8
Loc: г.Петрозаводск
Спасибо! 777, посмотрю.

Еще вопрос - Индикатор может возвращать только 1 значение или как то можно больше вернуть?


В этом коде используется интерфейс на 3 источника IDoubleAccum3Handler, в текущей документации нашел только на 2.
IDoubleAccumHandler
IList< double > Execute (IList< double > source1, IList< double > source2)

Я правильно понимаю что "IList< double > source1" это и есть источник не в виде баров, а массив индикатора или чего то еще?


Отредактировано mumbo jumbo (Tue Jul 09 2013 07:15 PM)

Наверх


Moderator:  ViL, sar