#28650 - Tue Jun 21 2011 12:48 PM
Два входящих источника для индикатора
|
stranger
Registered: Tue Jun 21 2011
Записи: 6
|
Здравствуйте, существует ли возможность реализовать на C# индикатор, который в качестве входящего параметра будет принимать 2 источника данных. К примеру, описанная в интерфейсе IBar2DoubleHandler функция Execute принимает только один источник, а хотелось бы 2 таких.
|
|
Наверх
|
|
|
|
#28670 - Wed Jun 22 2011 09:35 AM
Re: Два входящих источника для индикатора
[Re: Nektodron]
|
stranger
Registered: Tue Jun 21 2011
Записи: 6
|
Спасибо! Интересует только: а не возникнет ли проблем с синхронизацией? К примеру, в одном источнике данных чуть больше, чем в другом. Или этот вопрос нужно урегулировать самостоятельно? И как я понимаю TSLab сам нормально распознает такой индикатор и его можно будет использовать в блок схемах обычным способом? (перетащить на него 2 источника данных)
|
|
Наверх
|
|
|
|
#28673 - Wed Jun 22 2011 11:13 AM
Re: Два входящих источника для индикатора
[Re: Nektodron]
|
stranger
Registered: Tue Jun 21 2011
Записи: 6
|
Спасибо за помощь. Все сделал. Но возникла следующая проблема: TSLab не видит индикатор. Вот код: using System;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
namespace Correlation
{
[HandlerName("Correlation")]
[HandlerCategory("Indicators")]
public class CorrelationBlock : I2Bar2DoubleHandler, IStreamHandler
{
[HandlerParameter(IsShown = true, Default = "1", Min = "1", Max = "1000", Name = "Depth")]
public int Depth { get; set; }
public IList<double> Execute(ISecurity source1, ISecurity source2)
{
var close1 = source1.ClosePrices;
var close2 = source2.ClosePrices;
var result = new List<double>();
// some logics here
return result;
}
public IContext Context { get; set; }
}
public interface I2Bar2DoubleHandler : ISecurityInputs, IDoubleReturns
{
IList<double> Execute(ISecurity source1, ISecurity source2);
}
}После компиляции и помещения .dll файла в папку %ProgramFiles%\TSLab\Handlers - ничего не происходит. Индикатор не отображается. Пробовал и в корень папки TSLab кидать. Так же пробовал компиляцию под все типы платформ x86/x64/any - не видит. Так же пробовал давать разные имена HandlerName и HandlerCategory Полный код индикатора в прилагаемом файле
Attachments
CorrelationBlock.cs (267 downloads)
|
|
Наверх
|
|
|
|
#28677 - Wed Jun 22 2011 11:58 AM
Re: Два входящих источника для индикатора
[Re: ViL]
|
stranger
Registered: Tue Jun 21 2011
Записи: 6
|
Да, и TSLab и компьютер. Но проблема в другом оказалась. Я компилировал под .NET Framework 4, пересобрал под 3.5 - все видит, но теперь блок в TSLab перетащить не могу, другие индикаторы работают, а этот нет.
|
|
Наверх
|
|
|
|
#28685 - Thu Jun 23 2011 11:27 AM
Re: Два входящих источника для индикатора
[Re: Nektodron]
|
stranger
Registered: Tue Jun 21 2011
Записи: 6
|
Да, действительно. Прописал интерфейс ITwoSourcesHandlers, удалил существующую библиотеку из папки Handlers в TSLab, перезагрузил компьютер, скомпилировал новую библиотеку с ITwoSourcesHandler - скопировал DLL в папку Handlers - TSLab индикатор видит, но разместить его в редакторе не получается. Код и скриншот окна настроек параметров построения прилагается.
Attachments
CorrelationBlock.cs (298 downloads)tslabCompilationParameters.PNG (295 downloads)
|
|
Наверх
|
|
|
|
#28777 - Mon Jun 27 2011 01:44 PM
Re: Два входящих источника для индикатора
[Re: Nektodron]
|
stranger
Registered: Tue Jun 21 2011
Записи: 6
|
Пробовал открыть TSLab и в редакторе блок-схем перетащить индикатор на панель - ничего не получалось (это в Win XP). На Win7 все работает. Будем ковыряться у себя. Спасибо за помощь.
|
|
Наверх
|
|
|
|
|
|