У вас не стоит Flash Player
Page 1 of 4 1 2 3 4 >
Настройки
#7177 - Mon Jun 28 2010 11:38 AM Создание индикаторов на API
uprav Offline
addict

Registered: Thu Jan 14 2010
Записи: 594
Originally Posted By: uprav
Кажется что блок "Удерживалось баров" не совсем корректно считает бары на свече перед выходом, перепрыгивает через 1.

Originally Posted By: Nektodron
Да, есть такое. Если была команда закрыть позицию на след баре, то после этого позиция будет всегда выдавать расстояние между закрытием и открытием. Будет поправлено.

Nektodron, подскажите пож: написал такой код:

public class balanse : IPosition2Double
{
public double Execute(IPosition pos, int barNum)
{ var n = pos.ExitBarNum;
if (pos == null || !pos.IsActive)
{
return 0;
} else
{return (pos.OpenProfit(barNum));}
}
}
Это блок "доход" но отличающийся тем , что выводит занчение только при активной позиции, но есть загвоздка - этот блок не выводит значение дохода на послеюней свече (в скрине). Думаю что это связано с pos.IsActive - почему то его действие заканчивается за 2 бара до выхода. Как сделать чтобы занчение выводилось на полседней свече перед выходом?


Attachments
Блок пользовательский доход.JPG (505 downloads)

_________________________


Наверх
#7178 - Mon Jun 28 2010 12:01 PM Re: Создание индикаторов на API [Re: uprav]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
pos.IsActive не учитывает номер свечи, поэтому если код скрипта сгенерился так, что сначала позиция закрылась, а потом вызвался индикатор, то там уже будет false.

надо написать так
"!(pos.IsActive || pos.ExitBarNum > barNum)"

Наверх
#7255 - Mon Jun 28 2010 06:09 PM Re: Создание индикаторов на API [Re: Nektodron]
uprav Offline
addict

Registered: Thu Jan 14 2010
Записи: 594
Originally Posted By: Nektodron

надо написать так
"!(pos.IsActive || pos.ExitBarNum > barNum)"

Вот вставил, получился код:

public class balanse : IPosition2Double
{
public double Execute(IPosition pos, int barNum)
{ if (pos == null || !(pos.IsActive || pos.ExitBarNum > barNum))
{
return 0;
} else
{return (pos.OpenProfit(barNum));}
}
}

Теперь он стал работать как стандартный блок "Доход" и протягивает значение до следующей позиции (а нужно только до конца собственной активной позиции), получается что на это выражение "!(pos.ExitBarNum > barNum)" нет должного реагирования, т.е. должен выводиться 0, когда номер exitбара <= текущего бара? Скрин прилагаю. По разному изголялся, даже писал pos.ExitBarNum-1..2..3 - в этом случае, при 1 продлевает(как в скрине), с 2 начинат рисовать по старому, т.е. без значения последнего бара перед выходом (как в первом посте этой темы).


Attachments
Блок пользовательский доход1.JPG (494 downloads)

_________________________


Наверх
#7258 - Mon Jun 28 2010 06:32 PM Re: Создание индикаторов на API [Re: uprav]
uprav Offline
addict

Registered: Thu Jan 14 2010
Записи: 594
Nektodron, натолкните на мысль, т.е. для чего я горожу этот блок, м.б. и не в ту степь полез, нужно то всего навсего накопленный (кумулятивный) баланс позиции за время её жизни, т.е. если представить этот баланс в виде гистограммы, то нужно вычилслять её площадь, например: баланс соответственно на свечах жизни позиции 1,2,3,4,5 а значения кумуляты на этих пяти свечах буду равны 1,3,6,10,15 и т.д., ну и нужны их модули, т.е. не важно баланс позиции + или -. В Визуале это не сделать т.к. нет циклов и невозможно обращаться к предыдущему рассчётному значению в формуле, подскажите пож. м.б., хотя бы какими интерфейсами воспользоваться в API, т.к. нужно будет вычислять цикл, брать цену закрытия бара и цену входа в поз., или брать доход позиции и обращаться к предыдущим барам активной позиции.
_________________________


Наверх
#7273 - Mon Jun 28 2010 08:20 PM Re: Создание индикаторов на API [Re: uprav]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
а дальше для чего используется значение этого индикатора?

Наверх
#7276 - Mon Jun 28 2010 08:59 PM Re: Создание индикаторов на API [Re: Nektodron]
uprav Offline
addict

Registered: Thu Jan 14 2010
Записи: 594
Originally Posted By: Nektodron
а дальше для чего используется значение этого индикатора?

дальше я буду сравнивать значение одного инструмента со значением инструмента-антипода(антипод-имеется ввиду коррелирующий в + или в -,не важно, инструмент), цель этого - выяснить на сколько нужно изменить количество позиций (или позиции) для уравновешивания балансов взаимодействующих инструментов*
* для рынокв акций м.б. и не нужно было бы это городить, там можно на всей истории прокинуть типа скользящей средней цен закрытия (или просто цен закрытия) двух антиподов х на коэфф.количества для выравнивания баланса, и они вполне возможно будут идти рядом (я не делал этого), но для сшитых фьюч.ФОРТСА я пробовал прокинуть на постоянном коэфф.количества баланса - линии расходятся далеко, поэтому нужно постоянно корректировать баланс количеством, и как один из варинатов - это сранивать их накопленные балансы за время жизни позиций-антиподов.
-------------------------
Вполне возможно, что сначала м.б. нужно просто смоделировать поведение балансов на индикаторе, а не входить в позиции , но с другой стороны дисбаланс может пойти и в нашу сторону...без прогонки на истории трудно сказать.


Отредактировано uprav (Tue Jun 29 2010 07:25 AM)
_________________________


Наверх
#7317 - Tue Jun 29 2010 01:23 PM Re: Создание индикаторов на API [Re: uprav]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Я к тому, что может проще все алгоритм на C# написать?
Просто в редакторе код, который получается, несколько хитро генерируется, расчет значений из позиции вызывается только когда позиция существует, а потом копируется последнее. Поэтому нулей и нет.

Наверх
#7380 - Tue Jun 29 2010 09:00 PM Re: Создание индикаторов на API [Re: Nektodron]
Kovenant Offline
stranger

Registered: Wed Jun 23 2010
Записи: 18
Поскажите, как вывести график доходности. И на стандартный блок, и на на написанный на API ругается:
Элемент 'Item1' содержит ошибку: Не получается создать график для этого элемента.

Наверх
#7382 - Tue Jun 29 2010 09:36 PM Re: Создание индикаторов на API [Re: Kovenant]
uprav Offline
addict

Registered: Thu Jan 14 2010
Записи: 594
Originally Posted By: Kovenant
Поскажите, как вывести график доходности. И на стандартный блок, и на на написанный на API ругается:
Элемент 'Item1' содержит ошибку: Не получается создать график для этого элемента.
появился блок "доходность"? Или вы говорите про блок "доход"? А какой код на API? Икакая версия программы? У меня версия 1.1.7.36 и блок "Доход" рисуется на графике. До этой версии тоже такую ошибку выдавал.


Отредактировано uprav (Tue Jun 29 2010 09:38 PM)
_________________________


Наверх
#7386 - Tue Jun 29 2010 09:58 PM Re: Создание индикаторов на API [Re: Nektodron]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Подскажите пожалуйста!
Задача - создать индикатор и компилировать. Знаю, что мои вопросы будут дурацкими, но все же прошу ответить, не обязательно разработчиков. Мне просто нужно понять программу SharpDevelop. Я реально завис на мелочах, которые уже кажутся нерешаемыми. Вот посмотрите на настройки, при таких настройках компилируемый файл DLL должен оказаться в папке handlers? Ничего не нужно нигде менять? :



Подскажите, что нужно нажать, что бы появилось окно редактора, куда бы можно было скопировать код индикатора из примера:

using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.DataSource;
using TSLab.Script.Helpers;

namespace test
{
public class MyStochK : IBar2DoubleHandler, IContextUses
{
[HandlerParameter]
public int Period { get; set; }

public IList<double> Execute(ISecurity source)
{
var high = Context.GetData("Highest", new[] { Period.ToString() },
() => Series.Highest(source.HighPrices, Period));
var low = Context.GetData("Lowest", new[] { Period.ToString() },
() => Series.Lowest(source.LowPrices, Period));
var closes = source.ClosePrices;
IList<double> list = new List<double>(closes.Count);
for (int i = 0; i < closes.Count; i++)
{
var stochK = 100 * (closes[i] - low[i]) / (high[i] - low[i]);
list.Add(stochK);
}
return list;
}

public IContext Context { get; set; }
}
}


Attachments
Компиляция.JPG (2267 downloads)



Отредактировано 777 (Tue Jun 29 2010 10:08 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#7388 - Tue Jun 29 2010 10:11 PM Re: Создание индикаторов на API [Re: uprav]
Kovenant Offline
stranger

Registered: Wed Jun 23 2010
Записи: 18
Originally Posted By: uprav
Originally Posted By: Kovenant
Поскажите, как вывести график доходности. И на стандартный блок, и на на написанный на API ругается:
Элемент 'Item1' содержит ошибку: Не получается создать график для этого элемента.
появился блок "доходность"? Или вы говорите про блок "доход"? А какой код на API? Икакая версия программы? У меня версия 1.1.7.36 и блок "Доход" рисуется на графике. До этой версии тоже такую ошибку выдавал.

Да, дело в билде оказалось.
Вопрос такой: подскажите, почему доходность считается с предыдущего бара от входа в позицию? На скрине на верхней панели вход в позиицию, на самой нижней - Доход%


Attachments
30.06.jpg (1875 downloads)



Отредактировано Kovenant (Tue Jun 29 2010 10:12 PM)

Наверх
#7391 - Tue Jun 29 2010 10:14 PM Re: Создание индикаторов на API [Re: 777]
uprav Offline
addict

Registered: Thu Jan 14 2010
Записи: 594
Нужно создать пустой файл, для этого правой мышью на названии TSLAB -> add -> New Item -> Empty File. Пишешь название. Место менять не стоит. Он сохранится в папке проекта.
_________________________


Наверх
#7394 - Tue Jun 29 2010 10:32 PM Re: Создание индикаторов на API [Re: uprav]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Originally Posted By: uprav
Нужно создать пустой файл, для этого правой мышью на названии TSLAB -> add -> New Item -> Empty File. Пишешь название. Место менять не стоит. Он сохранится в папке проекта.

Спасибо uprav!

А не подскажешь. Я скопировал файл, теперь, что бы его редактировать с визуализацией, правильно ли я понимаю, что нужно нажать на эту кнопку или F5, при этом будет произведена проверка на ошибки?:





Attachments
Проверка на ошибки.JPG (1996 downloads)



Отредактировано 777 (Tue Jun 29 2010 10:34 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#7395 - Tue Jun 29 2010 10:42 PM Re: Создание индикаторов на API [Re: 777]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Originally Posted By: 777
Originally Posted By: uprav
Нужно создать пустой файл, для этого правой мышью на названии TSLAB -> add -> New Item -> Empty File. Пишешь название. Место менять не стоит. Он сохранится в папке проекта.

Спасибо uprav!

А не подскажешь. Я скопировал файл, теперь, что бы его редактировать с визуализацией, правильно ли я понимаю, что нужно нажать на эту кнопку или F5, при этом будет произведена проверка на ошибки?:




Снимается вопрос.
Такой вопрос:
Что нужно нажать, что бы появился DLL?
_________________________
То же снимается


Отредактировано 777 (Wed Jun 30 2010 12:09 AM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#7397 - Tue Jun 29 2010 11:29 PM Re: Создание индикаторов на API [Re: 777]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Вот такой файл(из примера):



После компиляции записываются файлы в папку hendlers:



В папке пользовательские находится нужный индикатор но ТСЛАБ выдает ошибку:



Свойства выходного файла приведены выше. В чем может быть проблема?


Attachments
Пример sharp.JPG (2044 downloads)
папка handlers.JPG (2035 downloads)
Ошибка в Тслабе.JPG (2021 downloads)



Отредактировано 777 (Tue Jun 29 2010 11:33 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#7406 - Wed Jun 30 2010 08:37 AM Re: Создание индикаторов на API [Re: 777]
uprav Offline
addict

Registered: Thu Jan 14 2010
Записи: 594
Originally Posted By: 777
Вот такой файл(из примера): Свойства выходного файла приведены выше. В чем может быть проблема?
М.б. что то с кодом не то? Я тоже сначала из справки делал, тоже ошибка была, было что то с кодом.
1. Попробуй переименовать блок - для этого надо MyStock в publik class заменить на другое.
2. Побробуй для примера взять код попроще, Nektodron выкладывал примеры .cs на форуме. Для этого можно в этом же проекте открыть другой .cs в другой вкладке он появится, и скопировать код в свою вкладку. Они друг на друга не влияют при компиляции.
_________________________


Наверх
#7440 - Wed Jun 30 2010 12:47 PM Re: Создание индикаторов на API [Re: uprav]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Не прокатывает. Теперь опять вообще ничего не компилируется. Беру индикаторы из основных, тех что нектодрон выкладывал, компилирую, в папке hendlers ничего не появляется... То пишет ошибку 39 то Sharp пишет сексесфул, но в папке ничего нет.
Ничего не понимаю. Очень не хватает видеоуроков по-этому sharp-у.
А с самым первым, тем что из примера, все в порядке, изменяются названия переменных и все такое, но в тслабе пишет ошибку:
System.TypeLoadException: Не удалось загрузить тип "test.ПРОБА" из сборки "TSLAB, Version=1.0.3832.33524, Culture=neutral, PublicKeyToken=null".
в TSLab.User.Script..ctor()


Отредактировано 777 (Wed Jun 30 2010 12:49 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#7485 - Wed Jun 30 2010 06:04 PM Re: Создание индикаторов на API [Re: Kovenant]
Kovenant Offline
stranger

Registered: Wed Jun 23 2010
Записи: 18
Originally Posted By: Kovenant
Originally Posted By: uprav
Originally Posted By: Kovenant
Поскажите, как вывести график доходности. И на стандартный блок, и на на написанный на API ругается:
Элемент 'Item1' содержит ошибку: Не получается создать график для этого элемента.
появился блок "доходность"? Или вы говорите про блок "доход"? А какой код на API? Икакая версия программы? У меня версия 1.1.7.36 и блок "Доход" рисуется на графике. До этой версии тоже такую ошибку выдавал.

Да, дело в билде оказалось.
Вопрос такой: подскажите, почему доходность считается с предыдущего бара от входа в позицию? На скрине на верхней панели вход в позиицию, на самой нижней - Доход%

прояните пож-ста..


Отредактировано Kovenant (Wed Jun 30 2010 06:05 PM)

Наверх
#7732 - Fri Jul 02 2010 10:23 PM Re: Создание индикаторов на API [Re: 777]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Originally Posted By: 777
Вот такой файл(из примера):



После компиляции записываются файлы в папку hendlers:



В папке пользовательские находится нужный индикатор но ТСЛАБ выдает ошибку:



Свойства выходного файла приведены выше. В чем может быть проблема?
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#7749 - Sat Jul 03 2010 11:29 AM Re: Создание индикаторов на API [Re: 777]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Такое ощущение, что файлы TSLab.ScriptCommon.dll и TSLab.DataSourceCommon.dll используемые при компиляции - другие, чем, которые сейчас в программе.

Наверх
Page 1 of 4 1 2 3 4 >


Moderator:  ViL, sar