У вас не стоит Flash Player
Настройки
#53932 - Fri Apr 05 2013 02:23 PM IPosition.GetStop (int bar) - что делает?
adolf Offline
stranger

Registered: Tue Apr 02 2013
Записи: 17
Уважаемые разработчики TSLаb. Очень вас прошу, я прям вас умоляю....пишу этот пост стоя на коленях перед монитором и из глаз моих текут слезы смирения. Расскажите, что делает:
Code:
IPosition.GetStop (int bar)

и для чего нужен параметр int bar

Моя задача: получить все позиции для которых не задан stop loss - согласитесь, нормальная, простая, типичная, а главное необходимая задача. Я что-то напокупал (напродавал), не плохо бы позаботиться о стопах.

И вот я открыл доку. нашел метод IPosition.GetStop (int bar), когда его набрал в студии, появилась подсказка, что если функция вернет 0, то значит стоп не задан.

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

Code:
 while(sec.Positions.Where(p => p.GetStop(i) == 0).Count() > 0){
    sec.Positions.Where(p => p.GetStop(i) == 0).First().CloseAtStop(i,  /*  и так далее по списку параметров*/);
}

Горечь разочарования постигла меня - цикл оказался беззззззконечным )

Утерев слезы, и собрав волю в кулак, я задумался:"А что вообще делает функция GetStop(), и на кой ей параметр int bar, ведь, вне зависимости от номера бара, стоп либо есть, либо его нет, и он не меняется, пока я сам не скажу его поменять.....А может быть это CloseAtStop - стопа не ставит?....".
Не буду описывать все многообразие своих мыслей в тот момент....
Очень надеюсь, что кто-нибудь откликнется на мои мольбы о помощи. )

Наверх
#53933 - Fri Apr 05 2013 02:30 PM Re: IPosition.GetStop (int bar) - что делает? [Re: adolf]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Вы явно не понимаете, что делаете. Функция действительно выдает значение стопа для свечи. Но, если позиция в этой свече не существует, либо она уже закрыта, там так же будет 0. Судя по вашему коду, вы ожидаете иметь сотню одновременно открытых позиций по бумаге?

Наверх
#53951 - Fri Apr 05 2013 04:21 PM Re: IPosition.GetStop (int bar) - что делает? [Re: Nektodron]
adolf Offline
stranger

Registered: Tue Apr 02 2013
Записи: 17
Quote:
Вы явно не понимаете, что делаете

Это крайне точно подмечено ).

Quote:
Но, если позиция в этой свече не существует, либо она уже закрыта, там так же будет 0.

Отличное замечание, оно решило проблему. Если бы она появилась в документации (прям "как есть"), думаю, это помогло бы многим в будущем.

Т.е. тот же цикл (см. первый пост), но построенный по условию
Code:
while(sec.Positions.Where(p => p.IsActive && p.GetStop(i) == 0 && p.EntryBarNum <= i ).Count() > 0){
// ставим стоп
}

работает как ожидается.
ЗЫ
Quote:
Судя по вашему коду, вы ожидаете иметь сотню одновременно открытых позиций по бумаге?

Ну, сто не сто, а -дцать...почему бы и нет...Это ж вопрос логики набора позиции....


Отредактировано adolf (Fri Apr 05 2013 04:29 PM)

Наверх
#53954 - Fri Apr 05 2013 04:34 PM Re: IPosition.GetStop (int bar) - что делает? [Re: adolf]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
p.IsActive стоит заменить на p.IsActiveForbar(i)

Наверх
#53956 - Fri Apr 05 2013 05:17 PM Re: IPosition.GetStop (int bar) - что делает? [Re: Nektodron]
adolf Offline
stranger

Registered: Tue Apr 02 2013
Записи: 17
Quote:

p.IsActive стоит заменить на p.IsActiveForbar(i)

Да, я видел этот метод....хотел его использовать, но меня смутила следующая ситуация:
имеем i = N
EntryBurNum = N + 1
Но при этом, IsActiveForBar(i) = true; хотя из названия ожидается false;
Я подумал, что я опять, что-то не понимаю и решил обойти этот метод.

Наверх
#53962 - Fri Apr 05 2013 06:15 PM Re: IPosition.GetStop (int bar) - что делает? [Re: adolf]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Да, это ошибка в программе. Будет исправлена в сегодняшней ночной сборке.

Наверх
#53964 - Fri Apr 05 2013 06:24 PM Re: IPosition.GetStop (int bar) - что делает? [Re: Nektodron]
adolf Offline
stranger

Registered: Tue Apr 02 2013
Записи: 17
Ну, в общем можно сказать, что уже не зря пообщались. Общественно полезное дело сделали )

Наверх


Moderator:  ViL, sar