МОЕХ.Вопросы новичка - страница 14

 
Sergey Savinkin:
Попробуйте 2 дня поторговать на РЕАЛЕ, пусть 1 контрактом вручную, многие вопросы отпадут сами собой.
на демке не будет всех вышеописанных прелестей?
 
Renat Akhtyamov:
на демке не будет всех вышеописанных прелестей?

На демке нет клиринга. Не всегда правильно указывается гарантийное обеспечение. Не факт, что правильный стакан. К тому же можно оценить реальную скорость исполнения заявок. На 1 контракте много денег не сольете. ))))

 
Sergey Savinkin:

На демке нет клиринга. Не всегда правильно указывается гарантийное обеспечение. Не факт, что правильный стакан. К тому же можно оценить реальную скорость исполнения заявок. На 1 контракте много денег не сольете. ))))

я имел ввиду клиринг?

ну раз на демке нет, тогда пока не пойму как протестить

 
Renat Akhtyamov:

я имел ввиду клиринг?

ну раз на демке нет, тогда пока не пойму как протестить

А че тебе ( вам, простите) клиринг для теста? Все считается реал-тайм. Клиринг только подтверждает, что все ОК.
 
Yuriy Asaulenko:
А че тебе ( вам, простите) клиринг для теста? Все считается реал-тайм. Клиринг только подтверждает, что все ОК.

прощаю ;)

Стратегию хочу потестить на торговых условиях, макисмально приближенных к реальным.

Смысл в том, чтобы не было "подарков" на реале.

 
Renat Akhtyamov:

прощаю ;)

Стратегию хочу потестить на торговых условиях, макисмально приближенных к реальным.

Смысл в том, чтобы не было "подарков" на реале.

Подарки на реале есть всегда.

 
Alexey Kozitsyn:

Подарки на реале есть всегда.

Вы имеете ввиду неожиданные убытки?
 
Renat Akhtyamov:
Вы имеете ввиду неожиданные убытки?

Чаще всего - да, это убытки. Но не всегда. Лично мне не всегда понятно как начисляется комиссия брокера. При определенном стиле торговли может браться комиссия за частоту торговых транзакций. Может и действительно быть убыток, если не смотреть стакан + заходить большим лотом. В общем - при переходе с тестера/демо на реал всегда будут особенности. И подарки всегда будут.

 
всех приветствую, подскажите, торгую через мт5 на фортсе, добавил к счету мониторинг ***, и столкнулся с тем что ***не правильно считает результат по сделкам, особенно если поза переносится через клиринг, т.е может не правильно посчить прибыль/убыток в деньгах, или некоторые сделки из стейтмента в мониторинге отсутствуют. Может кто сталкивался?
 
Вадим Мотеюнас:
всех приветствую, подскажите, торгую через мт5 на фортсе, добавил к счету мониторинг ***, и столкнулся с тем что ***не правильно считает результат по сделкам, особенно если поза переносится через клиринг, т.е может не правильно посчить прибыль/убыток в деньгах, или некоторые сделки из стейтмента в мониторинге отсутствуют. Может кто сталкивался?
//+------------------------------------------------------------------+
//| Expert Get position price function                               |
//+------------------------------------------------------------------+
double GetPositionPrice( const string aSymbol )
{
  double price_in = 0;
  double volume_in = 0;
  double price_out = 0;
  double volume_out = 0;
  double price = 0;
  double volume = 0;
//---  
  ulong pos_id = ulong( PositionGetInteger( POSITION_IDENTIFIER ) );
    
  if ( pos_id > 0 )
  {
      if ( HistorySelectByPosition( pos_id ) )
      {
        int deals = HistoryDealsTotal();
      
        for( int i = 0; i < deals; i++ )
        {
          ulong deal_ticket = HistoryDealGetTicket( i );
          ulong order_ticket = ulong( HistoryDealGetInteger( deal_ticket, DEAL_ORDER ) );
        
          if ( order_ticket > 0 )
          {
            ENUM_DEAL_ENTRY deal_entry = ENUM_DEAL_ENTRY( HistoryDealGetInteger( deal_ticket, DEAL_ENTRY ) );
              
            if ( deal_entry == DEAL_ENTRY_IN )
            {
              price = HistoryDealGetDouble( deal_ticket, DEAL_PRICE );
              volume = HistoryDealGetDouble( deal_ticket, DEAL_VOLUME );
                                
              price_in += price * volume;
              volume_in += volume;  
            }
            else
            if ( deal_entry == DEAL_ENTRY_OUT )
            {
              price = HistoryDealGetDouble( deal_ticket, DEAL_PRICE );
              volume = HistoryDealGetDouble( deal_ticket, DEAL_VOLUME );
                                
              price_out += price * volume;
              volume_out += volume;  
            }
          }
        }
//---  
        price = price_in - price_out;
        volume = volume_in - volume_out;
//---
        if ( volume > 0 )
        {       
          return( NormalizeDouble( price / volume, _Digits ) );
        }
      }
      else
      {
        Print( "GetPositionPrice: Невозможно получить историю позиции по символу ", aSymbol );
      }
    }
    else
    {
      Print( "GetPositionPrice: Невозможно определить идентификатор позиции по символу ", aSymbol );
    }
  return( 0 );
}