ФОРТС Как узнать первоначальную цену покупки фьючерса - страница 2

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

Всё-равно нужно брать историю, чтобы посмотреть цену сделки(нет смысла хранить в глобальной переменной)

 
Mikalas:

Всё-равно нужно брать историю, чтобы посмотреть цену сделки(нет смысла хранить в глобальной переменной)

Я не ищу сложных путей. Зачем брать историю, если цена сохранена.
 

Всем спасибо.

Проблему решил так:

double GetHistoryPrice( const string aSymbol )
{
  double price_in = 0;
  double volume_in = 0;
  
  if ( PositionSelect( aSymbol ) )
  {
    ulong pos_id = PositionGetInteger( POSITION_IDENTIFIER );
    
    if ( HistorySelectByPosition( pos_id ) )
    {
      int deals = HistoryDealsTotal();
      
      for( int i = 0; i < deals; i++ )
      {
        ulong deal_ticket = HistoryDealGetTicket( i );
        ulong order_ticket = HistoryDealGetInteger( deal_ticket, DEAL_ORDER );
        
        if ( order_ticket > 0 )
        {
          long deal_entry = HistoryDealGetInteger( deal_ticket, DEAL_ENTRY );
              
          if ( deal_entry == DEAL_ENTRY_IN )
          {
            double price = HistoryDealGetDouble( deal_ticket, DEAL_PRICE );
            double volume = HistoryDealGetDouble( deal_ticket, DEAL_VOLUME );
                                
            price_in = price_in + price * volume;
            volume_in = volume_in + volume;  
          }
        }
      }
      if ( volume_in > 0 ) return( NormalizeDouble( price_in / volume_in, _Digits ) );
    }
  }
  return( 0 );
}
 
в своем роботе на апи сохраняю в файлы. но там истории нет.
 

Проблему-то решил, НО история не правильная!

У меня 3 входящих сделки, а функция возвращает 2(volume_in)!

P/S Тем, кто предлагал "копаться" в истории.

ВОТ ВАМ И ИСТОРИЯ! 

 
Можно сделать, добавив еще проверку комментария, или магика если он выставляется.
 
Serj_Che:
Можно сделать, добавив еще проверку комментария, или магика если он выставляется.
Что добавлять, если данные в истории не правильные?!
 
Mikalas:
Что добавлять, если данные в истории не правильные?!

С чего Вы взяли что данные неправильные?

Если хотите сделать чтобы все работало - то могу подсказать.

А если просто высказать претензию - то это в сервисдек. 

P.S. В Вашем случае функцию HistorySelectByPosition( pos_id )  использовать бесполезно.

 
Serj_Che:

С чего Вы взяли что данные неправильные?

Если хотите сделать чтобы все работало - то могу подсказать.

А если просто высказать претензию - то это в сервисдек. 

P.S. В Вашем случае функцию HistorySelectByPosition( pos_id )  использовать бесполезно.

Подскажите. Я хочу знать.
 
Меня также интересует подобный вопрос. Хотя он и не связан с FORTS (хотя для себя я всё выяснил, хочу только чтобы разработчики либо справку поправили, либо признали ошибки и исправили).