У вас не стоит Flash Player
Настройки
#60176 - Wed Jan 08 2014 06:12 PM Закрытие позиций лимитной заявкой
Max Milovanov Offline
stranger

Registered: Tue Jan 07 2014
Записи: 7
При написании кода обнаружил странную ситуацию, что метод CloseAtProfit - работает очень странно.

Например данный код работает корректно:

Code:
            for (int bar = 0; bar < barsCount; bar++)
            {

                if (source.Positions.ActivePositionCount > 0)
                {
                    var pLast = source.Positions.LastPosition;
                    pLast.CloseAtProfit(bar + 1, pLast.EntryPrice + 100, "Close" + bar);
                }


                if (bar == 10) source.Positions.BuyAtPrice(bar + 1, 1, source.Bars[bar].Close, "Buy1");


В этом случае тейк-профит работает успешно.
Однако код в котором есть 2 и более позиций работает странно:

Code:
                if (source.Positions.ActivePositionCount > 0)
                {
                    var pLast = source.Positions.LastPosition;
                    pLast.CloseAtProfit(bar + 1, pLast.EntryPrice + 100, "Close" + bar);
                }


                if (bar == 10) source.Positions.BuyAtPrice(bar + 1, 1, source.Bars[bar].Close, "Buy1");
                if (bar == 11) source.Positions.BuyAtPrice(bar + 1, 1, source.Bars[bar].Close, "Buy2");


А именно, заявки по тейкпрофиту закрываются только в случае если свеча открылась по цене равной - pLast.EntryPrice + 100

В чем может быть ошибка? В документации про это ничего не сказано.


Пример работы во вложении:


Attachments
Безымянный.png (262 downloads)



Отредактировано Max Milovanov (Wed Jan 08 2014 06:14 PM)

Наверх
#60177 - Wed Jan 08 2014 09:08 PM Re: Закрытие позиций лимитной заявкой [Re: Max Milovanov]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
source.Positions.LastPosition - не используйте. наживете проблем.
используйте методы GetLastxxxx

вообще лучше отойди от идеологии велслаба. покачайте скрипты с форума посмотрите как люди делают. Это избавит от многих вопросов.
_________________________
__


Наверх
#60186 - Thu Jan 09 2014 07:46 PM Re: Закрытие позиций лимитной заявкой [Re: ra81]
Max Milovanov Offline
stranger

Registered: Tue Jan 07 2014
Записи: 7
Спасибо.
Однако очень странно, даже поиск по форуму (по запросу GetLastPosition и похожих) даёт всего две ссылки. Еще очень не понятно в документации ни слова что за переменная barNum в методе GetLastPosition(int barNum) ?

Документации очень слабая, к сожалению.

Наверх
#60187 - Thu Jan 09 2014 07:50 PM Re: Закрытие позиций лимитной заявкой [Re: Max Milovanov]
Max Milovanov Offline
stranger

Registered: Tue Jan 07 2014
Записи: 7
Опять же вопрос - как получить не последнюю, а предпоследнюю открытую позицию?
Конечно, есть вариант перебрать всё в цикле, но как-то это велосипед напоминает.

Наверх
#60188 - Thu Jan 09 2014 08:38 PM Re: Закрытие позиций лимитной заявкой [Re: Max Milovanov]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: Max Milovanov
Опять же вопрос - как получить не последнюю, а предпоследнюю открытую позицию?
Конечно, есть вариант перебрать всё в цикле, но как-то это велосипед напоминает.

проверяйте позиции сравнивая номера баров открытия.

документация какая есть. Есть куча написанного для изучения в виде скриптов и индикаторов. Лучшего материала все равно нет чем рабочий код.
_________________________
__


Наверх


Moderator:  ViL, sar