Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 101

 
borilunad:

Виктор, возьми опробированную функцию Кима, проверяющую, что позиция закрыта по ТП:

isCloseLastPosByTake - Возвращает флаг закрытия последней позиции по тейку. Найдёшь в Только полезные функции
И потом закрывай всё.

Вовсе необязательно, что на реале будет всегда отрабатывать... Проскальзывания и реквоты при исполнении тейк-приказа...

У Кима эта функция сравнивает цену закрытия позиции с её ценой тейкпрофит. Они могут и не совпадать. Можно частично исправить ситуацию, сравнивая разницу цен с некой дельтой, например с величиной Slippage*Point

 
yosuf:
Все равно, хороший, отзывчивый прогер. Как будто, все проблемы - его, за это судьба воздаст, бесспорно, или, наталкнется на грааль.

Спасибо, Юсуфходжа... Пойду чемоданы собирать на Мальдивы... ;)
 
borilunad:

Виктор, возьми опробированную функцию Кима, проверяющую, что позиция закрыта по ТП:

isCloseLastPosByTake - Возвращает флаг закрытия последней позиции по тейку. Найдёшь в Только полезные функции
И потом закрывай всё.


Борис, у него берётся во внимание последняя закрытая позиция по тейку. А у меня другая задача:

1. Найти последнюю открытую позицию из тех, которые уже есть (рыночные и отложенные).

2. Если последняя открытая позиция закроется по тейку, то закрываем всё!

Т.е. есть закроется по тейку не последняя открытая, а другая, нас это не устраивает...

 
hoz:


Борис, у него берётся во внимание последняя закрытая позиция по тейку. А у меня другая задача:

1. Найти последнюю открытую позицию из тех, которые уже есть (рыночные и отложенные).

2. Если последняя открытая позиция закроется по тейку, то закрываем всё!

Т.е. есть закроется по тейку не последняя открытая, а другая, нас это не устраивает...

1. Ищем последнюю закрытую позицию (MODE_HISTORY).
2. Если она закрыта по тейку (или вблизи него) --> Запоминаем её время открытия -->
3. Перебираем все открытые позиции (MODE_TRADES) и сравниваем их время открытия с запомненным (из п.2) --> Если запомненное время открытия закрытой по тейку позиции (из п.2) самое большое из времени открытия остальных открытых позиций --> Значит по тейку закрыта именно последняя открытая позиция -->
4. Кроем/удаляем нафиг всё остальное.
 
artmedia70:
1. Ищем последнюю закрытую позицию (MODE_HISTORY). 2. Если она закрыта по тейку (или вблизи него) --> Запоминаем её время открытия --> Перебираем все открытые позиции (MODE_TRADES) и сравниваем их время открытия с запомненным (из п.2) --> Если запомненное время открытия закрытой по тейку позиции (из п.2) самое большое из времени открытия остальных открытых позиций --> Значит по тейку закрыта последняя открытая позиция --> Кроем/удаляем всё остальное.


В принципе, тоже верно. А почему моя логика не верно? Вроде бы тоже логично.

1. Перебрал все открытые ордера --> Нашёл последний открытый ордер.

2. Запоминаю время последнего открытого ордера.

3. Перебираю все закрытые ордера --> Сравниваю время последнего открытого ордера с временем открытия ордера из закрытых ордеров. Если они равны, значится сохраняет время закрытия данного ордера в переменную.

Вроде как всё чётко..

 
hoz:


В принципе, тоже верно. А почему моя логика не верно? Вроде бы тоже логично. 1. Перебрал все открытые ордера --> Нашёл последний открытый ордер. 2. Запоминаю время последнего открытого ордера. 3. Перебираю все закрытые ордера --> Сравниваю время последнего открытого ордера с временем открытия ордера из закрытых ордеров. Если они равны, значится сохраняет время закрытия данного ордера в переменную.

Вроде как всё чётко..

При переборе сначала всех открытых ордеров (MODE_TRADES) в их списке уже не будет закрытого по тейку - ОН УЖЕ В MODE_HISTORY, даже если он и был открыт последним.
 
artmedia70:

Вовсе необязательно, что на реале будет всегда отрабатывать... Проскальзывания и реквоты при исполнении тейк-приказа...

У Кима эта функция сравнивает цену закрытия позиции с её ценой тейкпрофит. Они могут и не совпадать. Можно частично исправить ситуацию, сравнивая разницу цен с некой дельтой, например с величиной Slippage*Point

Артём, у меня по времени проверяет, а не по цене! Я только добавил промежуток время, в течение которого проверяется,
и работает точно на Реале.
 
hoz:


Борис, у него берётся во внимание последняя закрытая позиция по тейку. А у меня другая задача:

1. Найти последнюю открытую позицию из тех, которые уже есть (рыночные и отложенные).

2. Если последняя открытая позиция закроется по тейку, то закрываем всё!

Т.е. есть закроется по тейку не последняя открытая, а другая, нас это не устраивает...

Ты ждёшь закрытия, вот и будет у тебя последняя закрытая по тейку! Заранее никто не знает, что будет! Ну ладно! Успехов!
 
borilunad:
Артём, у меня по времени проверяет, а не по цене! Я только добавил промежуток время, в течение которого проверяется,
и работает точно на Реале.

А на пальцах? Как время и цена могут говорить о закрытии по тейку? Я конечно и сам могу подумать, но у меня уже 7.43 утра, а я ещё не ложился.

 
artmedia70:

А на пальцах? Как время и цена могут говорить о закрытии по тейку? Я конечно и сам могу подумать, но у меня уже 7.43 утра, а я ещё не ложился.

Извини! Тогда быстро на горшок и спать! Спокойного утра! ;)
Причина обращения: