Ошибки, баги, вопросы - страница 3537

 
fxsaber #:

Правильно ли я понимаю, что просадка в Сигналах (да много где) считается, как расхождение эквити относительно баланса?


Возьмем такую ТС.

  1. Открылись в обе стороны.
  2. Через какое-то время положительная позиция закрывается.
  3. Сразу открывается позиция в том же направлении.
  4. п.2.
Правильно ли я понимаю, что Сигналы покажут дикую просадку такой ТС?


ЗЫ И прибыльность вычисляется по закрытым позициям...

Вроде как так.

 
Aleksey Vyazmikin #:

Вроде как так.

Тогда неадекватные оценки в Сигналах.

 
fxsaber #:

Тогда неадекватные оценки в Сигналах.

Ну, иначе как? Просадка же относительно баланса считается...

 
fxsaber #:

Тогда неадекватные оценки в Сигналах.

Об этом давно речь вели, но метаквоты считают, что нормально всё.
 
Aleksey Vyazmikin #:

Ну, иначе как? Просадка же относительно баланса считается...

Правильно считать по средствам.
Но тогда не получится втащить в статистику историю счета до создания сигнала, а метаквоты считают, что она нужна. Непонятно только зачем кроме мошенничества поставщиков.
 
Sergey Gridnev #:
Правильно считать по средствам.
Но тогда не получится втащить в статистику историю счета до создания сигнала, а метаквоты считают, что она нужна. Непонятно только зачем кроме мошенничества поставщиков.

Как тогда просадку считать, на какую дату от средств? Особенно если позиций много в рынке и по разным парам?

 
Aleksey Vyazmikin #:

Как тогда просадку считать, на какую дату от средств? Особенно если позиций много в рынке и по разным парам?

Вот так.

// https://www.mql5.com/ru/forum/1111/page3536#comment_53654150

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

input int inTP = 50;

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

long OpenPosition( const int Type )
{
  return(Type ? OrderSend(_Symbol, OP_SELL, 1, Bid, 0, 0, Bid - inTP * _Point)
              : OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, Ask + inTP * _Point));
}

void OnTick()
{
  OrderSelect(0, SELECT_BY_POS);
  
  if (OrdersTotal() != 2)
    OpenPosition(1 - OrderType());
}
 
fxsaber #:

Вот так.

void OnTick()
{
  OrderSelect(0, SELECT_BY_POS);
  
  if (OrdersTotal() != 2)
    OpenPosition(1 - OrderType());
}

Сильно так-себе условие. А если OrdersTotal() > 2? На всю котлету?

Ни чем не хуже:

OrdersTotal() < 2
 
Vladislav Boyko #:

Сильно так-себе условие. А если OrdersTotal() > 2? На всю котлету?

Ни чем не хуже:

Вот так моя паранойя одобряет

switch(OrdersTotal())
  {
   case 0:
   case 1: OpenPosition(1 - OrderType()); break;
   default: break;
  }
 
Vladislav Boyko #:

Вот так моя паранойя одобряет

1 - OrderType()

:-) за такое в приличных местах бьют