#7177 - Mon Jun 28 2010 11:38 AM
Создание индикаторов на API
|
addict
Registered: Thu Jan 14 2010
Записи: 594
|
Кажется что блок "Удерживалось баров" не совсем корректно считает бары на свече перед выходом, перепрыгивает через 1. Да, есть такое. Если была команда закрыть позицию на след баре, то после этого позиция будет всегда выдавать расстояние между закрытием и открытием. Будет поправлено. 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 (506 downloads)
_________________________
|
|
Наверх
|
|
|
|
#7255 - Mon Jun 28 2010 06:09 PM
Re: Создание индикаторов на API
[Re: Nektodron]
|
addict
Registered: Thu Jan 14 2010
Записи: 594
|
надо написать так "!(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 (495 downloads)
_________________________
|
|
Наверх
|
|
|
|
#7258 - Mon Jun 28 2010 06:32 PM
Re: Создание индикаторов на API
[Re: uprav]
|
addict
Registered: Thu Jan 14 2010
Записи: 594
|
Nektodron, натолкните на мысль, т.е. для чего я горожу этот блок, м.б. и не в ту степь полез, нужно то всего навсего накопленный (кумулятивный) баланс позиции за время её жизни, т.е. если представить этот баланс в виде гистограммы, то нужно вычилслять её площадь, например: баланс соответственно на свечах жизни позиции 1,2,3,4,5 а значения кумуляты на этих пяти свечах буду равны 1,3,6,10,15 и т.д., ну и нужны их модули, т.е. не важно баланс позиции + или -. В Визуале это не сделать т.к. нет циклов и невозможно обращаться к предыдущему рассчётному значению в формуле, подскажите пож. м.б., хотя бы какими интерфейсами воспользоваться в API, т.к. нужно будет вычислять цикл, брать цену закрытия бара и цену входа в поз., или брать доход позиции и обращаться к предыдущим барам активной позиции.
_________________________
|
|
Наверх
|
|
|
|
#7276 - Mon Jun 28 2010 08:59 PM
Re: Создание индикаторов на API
[Re: Nektodron]
|
addict
Registered: Thu Jan 14 2010
Записи: 594
|
а дальше для чего используется значение этого индикатора? дальше я буду сравнивать значение одного инструмента со значением инструмента-антипода(антипод-имеется ввиду коррелирующий в + или в -,не важно, инструмент), цель этого - выяснить на сколько нужно изменить количество позиций (или позиции) для уравновешивания балансов взаимодействующих инструментов* * для рынокв акций м.б. и не нужно было бы это городить, там можно на всей истории прокинуть типа скользящей средней цен закрытия (или просто цен закрытия) двух антиподов х на коэфф.количества для выравнивания баланса, и они вполне возможно будут идти рядом (я не делал этого), но для сшитых фьюч.ФОРТСА я пробовал прокинуть на постоянном коэфф.количества баланса - линии расходятся далеко, поэтому нужно постоянно корректировать баланс количеством, и как один из варинатов - это сранивать их накопленные балансы за время жизни позиций-антиподов. ------------------------- Вполне возможно, что сначала м.б. нужно просто смоделировать поведение балансов на индикаторе, а не входить в позиции , но с другой стороны дисбаланс может пойти и в нашу сторону...без прогонки на истории трудно сказать.
Отредактировано uprav (Tue Jun 29 2010 07:25 AM)
_________________________
|
|
Наверх
|
|
|
|
#7380 - Tue Jun 29 2010 09:00 PM
Re: Создание индикаторов на API
[Re: Nektodron]
|
stranger
Registered: Wed Jun 23 2010
Записи: 18
|
Поскажите, как вывести график доходности. И на стандартный блок, и на на написанный на API ругается: Элемент 'Item1' содержит ошибку: Не получается создать график для этого элемента.
|
|
Наверх
|
|
|
|
#7382 - Tue Jun 29 2010 09:36 PM
Re: Создание индикаторов на API
[Re: Kovenant]
|
addict
Registered: Thu Jan 14 2010
Записи: 594
|
Поскажите, как вывести график доходности. И на стандартный блок, и на на написанный на 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]
|
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 (2268 downloads)
Отредактировано 777 (Tue Jun 29 2010 10:08 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
|
Наверх
|
|
|
|
#7388 - Tue Jun 29 2010 10:11 PM
Re: Создание индикаторов на API
[Re: uprav]
|
stranger
Registered: Wed Jun 23 2010
Записи: 18
|
Поскажите, как вывести график доходности. И на стандартный блок, и на на написанный на API ругается: Элемент 'Item1' содержит ошибку: Не получается создать график для этого элемента. появился блок "доходность"? Или вы говорите про блок "доход"? А какой код на API? Икакая версия программы? У меня версия 1.1.7.36 и блок "Доход" рисуется на графике. До этой версии тоже такую ошибку выдавал. Да, дело в билде оказалось. Вопрос такой: подскажите, почему доходность считается с предыдущего бара от входа в позицию? На скрине на верхней панели вход в позиицию, на самой нижней - Доход%
Attachments
30.06.jpg (1876 downloads)
Отредактировано Kovenant (Tue Jun 29 2010 10:12 PM)
|
|
Наверх
|
|
|
|
#7391 - Tue Jun 29 2010 10:14 PM
Re: Создание индикаторов на API
[Re: 777]
|
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]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Нужно создать пустой файл, для этого правой мышью на названии TSLAB -> add -> New Item -> Empty File. Пишешь название. Место менять не стоит. Он сохранится в папке проекта. Спасибо uprav! А не подскажешь. Я скопировал файл, теперь, что бы его редактировать с визуализацией, правильно ли я понимаю, что нужно нажать на эту кнопку или F5, при этом будет произведена проверка на ошибки?:
Attachments
Проверка на ошибки.JPG (1997 downloads)
Отредактировано 777 (Tue Jun 29 2010 10:34 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
|
Наверх
|
|
|
|
#7395 - Tue Jun 29 2010 10:42 PM
Re: Создание индикаторов на API
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Нужно создать пустой файл, для этого правой мышью на названии 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]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Вот такой файл(из примера): После компиляции записываются файлы в папку hendlers: В папке пользовательские находится нужный индикатор но ТСЛАБ выдает ошибку: Свойства выходного файла приведены выше. В чем может быть проблема?
Attachments
Пример sharp.JPG (2045 downloads)папка handlers.JPG (2036 downloads)Ошибка в Тслабе.JPG (2022 downloads)
Отредактировано 777 (Tue Jun 29 2010 11:33 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
|
Наверх
|
|
|
|
#7406 - Wed Jun 30 2010 08:37 AM
Re: Создание индикаторов на API
[Re: 777]
|
addict
Registered: Thu Jan 14 2010
Записи: 594
|
Вот такой файл(из примера): Свойства выходного файла приведены выше. В чем может быть проблема? М.б. что то с кодом не то? Я тоже сначала из справки делал, тоже ошибка была, было что то с кодом. 1. Попробуй переименовать блок - для этого надо MyStock в publik class заменить на другое. 2. Побробуй для примера взять код попроще, Nektodron выкладывал примеры .cs на форуме. Для этого можно в этом же проекте открыть другой .cs в другой вкладке он появится, и скопировать код в свою вкладку. Они друг на друга не влияют при компиляции.
_________________________
|
|
Наверх
|
|
|
|
#7440 - Wed Jun 30 2010 12:47 PM
Re: Создание индикаторов на API
[Re: uprav]
|
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]
|
stranger
Registered: Wed Jun 23 2010
Записи: 18
|
Поскажите, как вывести график доходности. И на стандартный блок, и на на написанный на 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]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Вот такой файл(из примера): После компиляции записываются файлы в папку hendlers: В папке пользовательские находится нужный индикатор но ТСЛАБ выдает ошибку: Свойства выходного файла приведены выше. В чем может быть проблема?
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
|
Наверх
|
|
|
|
|
|