#85556 - Mon Aug 05 2019 08:21 AM
Внешний скрипт, не возвращает данные о позиции
|
newbie
Registered: Mon Jun 17 2013
Записи: 43
|
Нужна информация о позиции, запись ее в файл. Делаю это через внешний скрипт, но всегда возвращает null, информацию об инструменте достает, количество свечей тоже. Подскажите в чем проблема?
public class Class1 : IExternalScript
{
public void Execute(IContext ctx, ISecurity sec)
{
var pos = sec.Positions;
var open = pos.GetLastPosition(ctx.BarsCount - 1);
var close = pos.GetLastPositionActive(ctx.BarsCount - 1);
if (open != null)
ctx.Log(ctx.BarsCount - 1 + " close:" + close.EntryPrice);
if (close != null)
ctx.Log(ctx.BarsCount - 1 + " open:" + open.EntryPrice);
ctx.Log("test2"+ ctx.BarsCount);
ctx.Log(pos.Security.Symbol);
ctx.Log(pos.ActivePositionCount.ToString());
ctx.Log(pos.HavePositions.ToString());
}
}
В логах при проведении теста по одной записи, т.е. внешний скрипт пересчитывается только по окончанию выполнения скрипта? А как в реальной торговле будет это происходить?
|
Наверх
|
|
|
|
#85557 - Mon Aug 05 2019 10:24 AM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: SliderShadow]
|
newbie
Registered: Mon Jun 17 2013
Записи: 43
|
Перепробовал все функции получения информации о позиции, но все равно null. Даже циклом проходился по свечам, ничего не помогает.
for (int i = 0; i < ctx.BarsCount; i++)
{
var poses = pos.GetActiveForBar(i);
foreach (var item in poses)
{
ctx.Log(i + " open: " + item.EntryBar);
}
}
Версия TSLab 2.0.35.0
|
Наверх
|
|
|
|
#85566 - Wed Aug 07 2019 10:38 AM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: SliderShadow]
|
member
Registered: Wed Feb 08 2017
Записи: 194
|
Я так понимаю, вы в режиме лаборатории работаете?
var positionsList= sec.Positions; foreach (var pos in positionsList) ctx.Log("бар входа: " + pos.EntryBarNum );
|
Наверх
|
|
|
|
#85567 - Wed Aug 07 2019 02:14 PM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: OldMo]
|
newbie
Registered: Mon Jun 17 2013
Записи: 43
|
Не работает в режиме лаборатории. Запись делает о количестве свечей, а позиции не видит. Пытался по другому
[HandlerCategory("Indi3")]
public class DetectedPos2 : IBar2ValueDoubleHandler, IBar2DoubleHandler, IContextUses
{
public double Execute(ISecurity source, int barNum)
{
var active= source.Positions.GetActiveForBar(barNum);
foreach (var item in active)
{
Context.Log("активная " + item.EntryBar);
}
return 1;
}
public IList<double> Execute(ISecurity source)
{
return new double[source.Bars.Count];
}
public IContext Context { get; set; }
}
Но при подключении данного кубика вообще перестает открывать позиции
Attachments
Код.png (54 downloads)
Отредактировано SliderShadow (Wed Aug 07 2019 02:15 PM)
|
Наверх
|
|
|
|
#85568 - Wed Aug 07 2019 03:32 PM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: SliderShadow]
|
member
Registered: Wed Feb 08 2017
Записи: 194
|
Работает. Сделки совершает, бары открытия сделок в лог выводит
Attachments
test.cs (103 downloads)
|
Наверх
|
|
|
|
#85569 - Wed Aug 07 2019 07:07 PM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: OldMo]
|
newbie
Registered: Mon Jun 17 2013
Записи: 43
|
Согласен, в приведенном вами примере все работает корректно. Спасибо что помогаете. Но у клиента весь код робота в кубиках, он его не будет давать и переделывать в код, поэтому мне нужно с помощью кода достать оттуда информацию о позиции на конкретном баре. Т.е. мне нужно написать кубик, который клиент просто прикрепит к своему алгоритму
|
Наверх
|
|
|
|
#85570 - Wed Aug 07 2019 07:07 PM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: SliderShadow]
|
newbie
Registered: Mon Jun 17 2013
Записи: 43
|
Извиняюсь, что плохо донес свою мысль.
|
Наверх
|
|
|
|
#85571 - Wed Aug 07 2019 07:32 PM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: SliderShadow]
|
member
Registered: Wed Feb 08 2017
Записи: 194
|
Тогда логично делать свой, пользовательский кубик, в который передается позиция, а он с ней делает то, что вам нужно. Я, правда, с граф редактором не работал ни когда, так что мало в этом разбираюсь.
|
Наверх
|
|
|
|
#85572 - Wed Aug 07 2019 08:38 PM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: OldMo]
|
newbie
Registered: Mon Jun 17 2013
Записи: 43
|
Понимаю что надо кубик. Только вот в этом да и проблема, что описание интерфейсов нет с примерами ( Техническая поддержка тоже не смогла подсказать (
|
Наверх
|
|
|
|
#85574 - Wed Aug 07 2019 09:54 PM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: Stan]
|
newbie
Registered: Mon Jun 17 2013
Записи: 43
|
Посмотрю, спасибо. Просто еще раз хочу сказать, что записать для меня не проблема, у меня проблема сейчас получить информацию о позиции. Информация по количеству свечей получаю, информацию по инструменту получаю, а позиции null.
|
Наверх
|
|
|
|
#85575 - Thu Aug 08 2019 12:05 PM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: SliderShadow]
|
member
Registered: Wed Feb 08 2017
Записи: 194
|
А в чем проблема? Берем любой кубик работающий с позицией и переделываем. Это первый сделанный мной кубик, поэтому имейте ввиду что это не эталон. Но вроде бы работает.
Attachments
test.rar (64 downloads)test.cs (100 downloads)
|
Наверх
|
|
|
|
#85591 - Wed Aug 14 2019 08:58 AM
Re: Внешний скрипт, не возвращает данные о позиции
[Re: OldMo]
|
member
Registered: Wed Feb 08 2017
Записи: 194
|
Во внешний скрипт передаются данные только об инструменте и контексте. public void Execute(IContext ctx, ISecurity sec) Откуда там возьмутся данные о позиции открытой не им?
|
Наверх
|
|
|
|
|
|