У вас не стоит Flash Player
Настройки
#38527 - Mon Mar 12 2012 11:37 AM GetStop()
Stenk Offline
enthusiast

Registered: Mon Sep 20 2010
Записи: 218
робот использует функцию GetStop, но она возвращает 0. видимо стоп уже снялся перед её вызовом. И мы не можем получить цену прошлого стопа, что бы поставить новый. Как правильно получить цену стопа ?

Наверх
#38534 - Mon Mar 12 2012 11:59 AM Re: GetStop() [Re: Stenk]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
подробней опишите, как вы используете эту функцию

Наверх
#38544 - Mon Mar 12 2012 01:03 PM Re: GetStop() [Re: Nektodron]
Stenk Offline
enthusiast

Registered: Mon Sep 20 2010
Записи: 218
Получаю LongPos.GetStop(i), что бы посчитать и установить новый LongPos.CloseAtStop(i + 1, НовыйСтоп, "LX Stop")

Наверх
#38549 - Mon Mar 12 2012 02:15 PM Re: GetStop() [Re: Stenk]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Используете правильно, но вероятно не учитываете, что если стоп на прошлой (или первой) свече не выставлялся, то там будет 0.
Вот к примеру код из стандартного трейла:

var lastStop = pos.GetStop(barNum);
if(lastStop == 0)
{
return stop;
}
return pos.IsLong ? Math.Max(stop, lastStop) : Math.Min(stop, lastStop);

Здесь проверяется, что если насчитанный stop хуже предидущего, то берется предидущий стоп.

Наверх
#38550 - Mon Mar 12 2012 02:18 PM Re: GetStop() [Re: Nektodron]
Stenk Offline
enthusiast

Registered: Mon Sep 20 2010
Записи: 218
Мне тоже так надо (если насчитанный stop хуже предыдущего, то берется предыдущий), только по своему алгоритму. Сейчас гляну

Наверх
#38679 - Wed Mar 14 2012 04:47 PM Re: GetStop() [Re: Stenk]
Stenk Offline
enthusiast

Registered: Mon Sep 20 2010
Записи: 218
Я пишу так:
Code:
if (source.Bars[i].Date == LongPos.EntryBar.Date)
    LongPos.CloseAtStop(i + 1, LongPos.EntryPrice - Stop, "LX Stop");
else
{
    if (LongPos.GetStop(i) < НовыйСтоп)
        LongPos.CloseAtStop(i + 1, НовыйСтоп, "LX Stop");
    else
        LongPos.CloseAtStop(i + 1, LongPos.GetStop(i), "LX Stop");
}
Не работает

Наверх
#38681 - Wed Mar 14 2012 05:31 PM Re: GetStop() [Re: Stenk]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
source.Bars[i].Date == LongPos.EntryBar.Date
лучше заменить на i == LongPos.EntryBarNum

и есть подозрение, что на свече LongPos.EntryBarNum у вас этот код не исполняется.
Лучше его вообще заменить на
var oldStop = LongPos.GetStop(i);
if(oldStop == 0)
{
LongPos.CloseAtStop(i + 1, LongPos.EntryPrice - Stop, "LX Stop");
{ else { ... }

Наверх
#38843 - Fri Mar 16 2012 02:24 PM Re: GetStop() [Re: Nektodron]
Stenk Offline
enthusiast

Registered: Mon Sep 20 2010
Записи: 218
Не работает что-то. Не переставляет стоп

Наверх
#38848 - Fri Mar 16 2012 03:42 PM Re: GetStop() [Re: Stenk]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
может быть вообще этот код не исполняются? другое условие не срабатывает

Наверх
#38902 - Sat Mar 17 2012 08:16 PM Re: GetStop() [Re: Nektodron]
Stenk Offline
enthusiast

Registered: Mon Sep 20 2010
Записи: 218
Допустим я стоп поставил 1000 пунктов. Когда на 170000, то он ставит стоп на 169000.
Проходит 5 минут.
Фьючерс стоит 169900.
Ничего не делается - остается старый стоп.
Проходит еще 5 мин.
Стоимость 170200.
Надо чтобы он посмотрел какой стоп стоит (а он равен 169000), посмотрел какой стоп должен поставиться (а он равен 170200 - 1000 = 169200) и поставил 169200, а он оставляет 169000 в такой ситуации

Code:
double oldStop = LongPos.GetStop(i);

if (oldStop == 0)
    LongPos.CloseAtStop(i + 1, LongPos.EntryPrice - Stop, "LX Stop");
else
{
    if (oldStop < closes[i] - Stop)
        LongPos.CloseAtStop(i + 1, closes[i] - Stop, "LX Stop");
    else
        LongPos.CloseAtStop(i + 1, oldStop, "LX Stop");
}

Наверх
#38970 - Mon Mar 19 2012 01:57 PM Re: GetStop() [Re: Stenk]
Nektodron Offline

Carpal Tunnel

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

Наверх
#41088 - Wed May 02 2012 08:38 PM Re: GetStop() [Re: Nektodron]
Ivan Offline
addict

Registered: Sun Sep 19 2010
Записи: 453
удалено


Отредактировано Ivan (Wed May 02 2012 08:39 PM)

Наверх


Moderator:  ViL, sar