Некорректный расчет прибыли на биржевых инструментах в тестере - страница 4

 
fxsaber:

Полный лог


Не воспроизводится, при этом полно каких-то ошибок синхронизации. Судя по тому, что есть Spread-ошибки, в истории присутствует отрицательный спред. Кривой сервер, короче.

На MQ-Demo все норм.
 

Не знаю уже, посмотрите выше пост 28 мой, там идея LAST-ASK подтверждается и на истории метаквот.

В вашем примере

2017.01.05 08:50:00   exchange buy 1.00 DDM7 at 11603.0 (11601.5 / 11603.0 / 11601.5)

что ask-bid=1.5, что last-ask=1.5

потому профит посчитался верно.

И у нас с вами разница в сделке 1сек, а цены даже рядом не валялись. Хотя сервер у АМР всего один,вроде как

У вас

2017.01.05 08:50:00   exchange buy 1.00 DDM7 at 11603.0 (11601.5 / 11603.0 / 11601.5)

У меня

2017.01.05 08:50:01   exchange buy 1.00 DDM7 at 11599.5 (11598.0 / 11599.5 / 11575.0)

В общем-то вопрос не в котировках или сервере,а в том,почему считается как ASK-LAST. Можно хоть случайное блуждание сгенерировать вместо ASK-BID, у нас же от этого методика расчета спреда не изменится
 
ivanivan_11:

В общем-то вопрос не в котировках или сервере,а в том,почему считается как ASK-LAST.

Вопрос не в возможности воспроизведения самый главный. Только после его решения имеет смысл обсуждать последующие.
 
fxsaber:
Вопрос не в возможности воспроизведения самый главный. Только после его решения имеет смысл обсуждать последующие.

Хорошо, вот пример еще,когда спред не  ASK-BID, a ASK-LAST

Сервер бкс-демо. Валюта прибыли RUR, счет так же рублевый,т.е. конвертация не нужна.

2017.01.18 22:58:10.288 BR-2.17,M1 (BCS-Demo): generating based on real ticks
2017.01.18 22:58:10.289 BR-2.17,M1: testing of Experts\Advisors\8gky6og_5pal226.ex5 from 2017.01.05 00:00 to 2017.01.18 00:00 started with inputs:
2017.01.18 22:58:10.289   symb=BR-2.17
2017.01.18 22:58:10.289   min=22
2017.01.18 22:58:10.289   sp=3
2017.01.18 22:58:10.592 BR-2.17 : real ticks begin from 2017.01.05 00:00:00
2017.01.18 22:58:10.599 2017.01.05 10:22:12   exchange buy 1.00 BR-2.17 at 56.46 (56.43 / 56.46 / 56.44)
2017.01.18 22:58:10.599 2017.01.05 10:22:12   deal #2 buy 1.00 BR-2.17 at 56.46 done (based on order #2)
2017.01.18 22:58:10.599 2017.01.05 10:22:12   deal performed [#2 buy 1.00 BR-2.17 at 56.46]
2017.01.18 22:58:10.599 2017.01.05 10:22:12   order performed buy 1.00 at 56.46 [#2 buy 1.00 BR-2.17 at 56.46]
2017.01.18 22:58:10.605 2017.01.05 10:22:12   CTrade::OrderSend: exchange buy 1.00 BR-2.17 [done]
2017.01.18 22:58:10.605 2017.01.05 10:22:12   BID  = 56.43
2017.01.18 22:58:10.605 2017.01.05 10:22:12   ASK  = 56.46
2017.01.18 22:58:10.605 2017.01.05 10:22:12   Спред  = 3
2017.01.18 22:58:10.605 2017.01.05 10:22:12   Стоимость пункта в валюте = 5.92419
2017.01.18 22:58:10.605 2017.01.05 10:22:12   Профит сразу после открытия = -11.85
2017.01.18 22:58:10.605 2017.01.05 10:22:12   Профит должен быть = -17.77257
 
ivanivan_11:

Хорошо, вот пример еще,когда спред не  ASK-BID, a ASK-LAST

Давайте Вы свои гипотезы будет проверять хотя бы вот так
int Sum = 0;

void OnDeinit( const int Reason )
{
  Print(Sum);
}

void OnTick()
{
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick) && (SymbolInfoInteger(_Symbol, SYMBOL_SPREAD) != (int)((Tick.ask - Tick.bid) / _Point + 0.1)))
    Sum++;
}
 

Build 1510 - без изменений

2017.01.20 20:53:07.427 BR-3.17,M1 (MetaQuotes-Demo): generating based on real ticks
2017.01.20 20:53:07.427 BR-3.17,M1: testing of Experts\открыть позицию.ex5 from 2017.01.17 00:00 to 2017.01.20 00:00 started with inputs:
2017.01.20 20:53:07.428   symb=BR-3.17
2017.01.20 20:53:07.428   min=45
2017.01.20 20:53:07.685 BR-3.17 : real ticks begin from 2017.01.17 00:00:00
2017.01.20 20:53:08.069 2017.01.17 22:49:55   exchange buy 1.00 BR-3.17 at 56.08 (55.91 / 56.08 / 55.94)
2017.01.20 20:53:08.070 2017.01.17 22:49:55   deal #2 buy 1.00 BR-3.17 at 56.08 done (based on order #2)
2017.01.20 20:53:08.070 2017.01.17 22:49:55   deal performed [#2 buy 1.00 BR-3.17 at 56.08]
2017.01.20 20:53:08.070 2017.01.17 22:49:55   order performed buy 1.00 at 56.08 [#2 buy 1.00 BR-3.17 at 56.08]
2017.01.20 20:53:08.081 2017.01.17 22:49:55   CTrade::OrderSend: exchange buy 1.00 BR-3.17 [done]
2017.01.20 20:53:08.082 2017.01.17 22:49:55   BID  = 55.91
2017.01.20 20:53:08.082 2017.01.17 22:49:55   ASK  = 56.08
2017.01.20 20:53:08.082 2017.01.17 22:49:55   LAST  = 55.94
2017.01.20 20:53:08.082 2017.01.17 22:49:55   Спред  = 17
2017.01.20 20:53:08.082 2017.01.17 22:49:55   Стоимость тика = 5.96838
2017.01.20 20:53:08.082 2017.01.17 22:49:55   Профит сразу после открытия = -83.56
2017.01.20 20:53:08.082 2017.01.17 22:49:55   Профит должен быть = -101.46246
2017.01.20 20:53:08.082 2017.01.17 22:49:55   Профит должен быть, добавлено = -101.46246


ASK-BID=17*5.96=101.46

ASK-LAST=14*5.96=83.56

 
ivanivan_11:

ASK-BID=17*5.96=101.46

ASK-LAST=14*5.96=83.56

Выглядит, как ошибка.
 

Это не единственный глюк тестера на биржевых инструментах. У меня счет в БКС, торгую акции на ММВБ.   Тестер позволяет покупать акции на неограниченную сумму, т.к. Баланс, Средства, и Свободная маржа считаются неправильно. Каждая купленная акция увеличивает свободную маржу!  




я писал в соответствующей теме о тестере:

MetaTrader 5 Strategy Tester!
MetaTrader 5 Strategy Tester!
  • www.mql5.com
Эта программа входит в состав клиентского терминала MetaTrader 5 и предназначена для тестирования и оптимизации советников (MQL5 Expert Advisors).
 
xFFFF:

Это не единственный глюк тестера на биржевых инструментах. У меня счет в БКС, торгую акции на ММВБ.   Тестер позволяет покупать акции на неограниченную сумму, т.к. Баланс, Средства, и Свободная маржа считаются неправильно. Каждая купленная акция увеличивает свободную маржу!  



я писал в соответствующей теме о тестере:

да,я помню ваше сообщение. Вы писали в Сервисдеск?

в соседней ветке про кривые склейки тоже есть недовольство тестером на биржевых инструментах (если там человек не сделал ошибок).

 
ivanivan_11:

да,я помню ваше сообщение. Вы писали в Сервисдеск?

в соседней ветке про кривые склейки тоже есть недовольство тестером на биржевых инструментах (если там человек не сделал ошибок).

Написал, ответили "Ваша заявка принята к рассмотрению.".
 

На данный момент от СД получен такой ответ

Вообще то на бирже, при учёте открытых позиций, их плавающая прибыль\убыток рассчитывается по цене последней сделки, а не по цене bid\ask.
Собственно тестер так и считает для соответствующих торговых инструментов (также как и терминал).


Просьба прокомментировать знающим людям.

Причина обращения: