ORDER_POSITION_ID - página 20

 
Mikalas:
Tienes internet, ¿no? Internet lo hace :)
Nein. Sólo las estadísticas oficiales. Sólo los informes fiscales legítimos, por lo que Internet no es de ayuda en nuestra zona. No, no lo es.
 
barabashkakvn:
Nein. Sólo las estadísticas oficiales. Sólo los informes fiscales legítimos, por lo que Internet no es de ayuda en nuestra zona. Nein.

Sin embargo, está escrito en el durmiente quePOSITION_IDENTIFIER no cambia a lo largo de su vida.

¿No es suficiente?

 
Mikalas:

Sin embargo, está escrito en el durmiente quePOSITION_IDENTIFIER no cambia a lo largo de su vida.

¿No es suficiente?

Ayuda - que yo sepa:2

Pedí ejemplos de la vida, del comercio de acciones:

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

ORDER_POSITION_ID

barabashkakvn, 2014.09.01 19:39

Es una pena que haya cerrado mi cuenta con el broker. ¿Alguien tiene un historial de operaciones que muestre claramente cómo va la compensación?

 
barabashkakvn:

Ayuda - Lo sé:

Pedí ejemplos de la vida, del comercio de acciones:


Lo tengo....
 

He investigado deliberadamente el asunto y me he disculpado por las declaraciones incorrectas. Resultó que la verdad estaba en el medio. Es cierto que una posición existe desde el inicio hasta el final de su cierre, permaneciendo su identificador y sus propiedades básicas inalteradas, tanto si se ha movido por compensación como si no. Sin embargo, el precio de apertura de la posición sí cambia. El cálculo de la posición en sí es exactamente como se muestra en mi post anterior, es decir, de una compensación a otra se calcula el beneficio/pérdida acumulado de una posición abierta y este resultado se abona en la cuenta mediante operaciones especiales de corretaje (trades). Estas operaciones están marcadas con los comentarios "[margen de variación abierto]" y "[margen de variación cerrado]".

Aquí está el comentario de un empleado de Otkritie, que describe este proceso con mucha precisión:

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

MT5 Trading: Errores, fallos, preguntas.

OpenBroker, 2013.02.26 09:59

Quiero añadir aquí, en mi opinión, una observación importante, para que se tenga en cuenta a la hora de planificar sus Asesores Expertos.

En FORTS, hay dos sesiones de compensación al día: la intermedia (de 14:00 a 14:03, hora de Moscú) y la principal (de 18:45 a 19:00, hora de Moscú (o 19:10 en los días de vencimiento de los contratos)).

Como referencia, la compensación - es una contabilidad de liquidaciones mutuas, en ruso, es el momento de la fijación de los beneficios/pérdidas en las posiciones abiertas/cerradas entre las sesiones de compensación.

Lo que es realmente importante. Lo importante es que, en el momento de la compensación, se fija el Precio de Liquidación. Es decir, el precio de la última operación del último periodo de negociación. En términos matemáticos, una posición abierta se cierra "más o menos" y se abre al precio de liquidación (por supuesto, ni el corredor ni la bolsa cobran comisión adicional por ello).

Por lo tanto, si usted ha abierto una posición antes de la siguiente compensación y se ha quedado con ella en el momento de la compensación, entonces tiene un cambio en el precio de apertura de esa posición en MT5. Y si, por ejemplo, tiene un "trailing stop" en pips, entonces se contará desde el precio de compensación, y no desde el precio de su operación.

Por ejemplo, el contrato Si-03.13 se compró a las 11:00, hora de Moscú, con un precio de 30500. Se establece un trailing stop igual a 50 pips. A las 14:00, hora de Moscú, la posición no está cerrada. El precio de liquidación de la compensación intermedia fue de 30525. (es decir, que su cuenta fue realmente compensada con (+25) rublos de cada contrato comprado). A partir de las 14:03 hora de Moscú, MT5 calculará un trailing stop sobre el precio de 30525 (y no sobre el precio real de la operación que usted realizó - 30500).

Por cierto, tal posición de rollover se practica no sólo en FORTS, sino también en algunas empresas de forex. Tal y como yo lo veo, el hecho de que sólo se modifique el precio de entrada de una posición o que se cree una nueva posición depende de las normas de la empresa.

Скажите, пожалуйста как именно происходит перенос позиций через ночь?
Почему именно происходит переоткрытие позиции с новой ценой ордера, а не с той же ценой?
Насколько я понимаю, переоткрытие с новой ценой ордера это ролловер (rollover).
Перенос позиции через ночь с той же ценой это своп и как бы долго позиция не удерживалась, цена ордера останется той же. Верно ??
Если так, то в ВТБ своп не применяется?
Или я в чём то ошибаюсь, расскажите..

Un swap de divisas es una operación que consiste en dos transacciones de conversión opuestas para la misma cantidad de divisas negociadas con diferentes fechas de valor y tipos de cambio. Un swap "tom/next" significa dos operaciones de conversión, la primera de las cuales se liquida en la fecha valor "tom", es decir, el primer día hábil después de la fecha de la operación, excluyendo fines de semana y días festivos, y la opuesta - en la fecha al contado.
Si, antes de la 01:00 hora de Moscú del día siguiente a la fecha de la transacción, la posición abierta por el Cliente no está cerrada, el Banco transferirá independientemente la posición al siguiente día hábil realizando un intercambio de divisas "tom/next". Al hacerlo, cerrará la posición existente en la fecha valor y simultáneamente la reabrirá en la siguiente fecha valor.
Las disposiciones del presente párrafo serán consideradas por las Partes como una solicitud irrevocable del Cliente para realizar una operación de intercambio de divisas con el Banco en el caso descrito en el párrafo anterior, en las siguientes condiciones
-la moneda base y la contra-divisa del swap se corresponden con la moneda base y la contra-divisa de la posición abierta,
-el tipo de la primera operación de swap es igual al tipo de mercado vigente en el momento de la ejecución del swap
-el tipo de la segunda operación de swap es igual al tipo de la primera operación de swap ajustado por el valor de los puntos swap del mercado actual (diferencia positiva o negativa entre los tipos "tom" y "spot" del mercado)
-la fecha de valor de la primera operación de swap es la fecha "tom",
-la fecha valor de la segunda operación de swap es la fecha "spot".


Перенос позиции через ночь, как это работает ?? : ВТБ24
  • www.onlinebroker.ru
Валютный своп - операция, состоящая из двух противоположных конверсионных сделок на одинаковую сумму торгуемой валюты с разными датами валютирования и разными обменными курсами. Своп типа “tom/next“ (том/некст) означает проведение двух конверсионных сделок, расчеты по первой из которых осуществляются на дату валютирования “том“ (tom), то есть...
 

C-4, ¡es muy bueno que la discusión sea constructiva!

Así que necesito el precio "neto" de la posición, para saber (en un mes, por ejemplo) cuál es mi beneficio.

MediantePOSITION_IDENTIFIER(tal y como está implementado en mi posición), se puede ver el historial de operaciones entrantes de la posición actual.

Pero quería implementarlo a través deórdenes (a veces una orden parcialmente ejecutada "permanece" durante dos o tres días),

porque el pedido tiene ORDER_POSITION_ID, que es el mismo que

yPOSITION_IDENTIFIER, pero el orden tiene lo mismo.

En la función (la estoy usando ahora):

//+------------------------------------------------------------------+
//| Expert Get history price function                                |
//+------------------------------------------------------------------+
double GetHistoryPrice( const string aSymbol )
{
  double price_in = 0;
  double volume_in = 0;
  
  if ( PositionSelect( aSymbol ) )
  {
    long pos_id = long( PositionGetInteger( POSITION_IDENTIFIER ) );
    
    if ( pos_id > 0 )
    {
      if ( HistorySelectByPosition( ulong( 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 )
            {
              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 ) );
      }
      else
      {
        Print( "Не возможно получить историю позиции по символу ", aSymbol );
      }
    }
    else
    {
      Print( "Не возможно определить идентификатор позиции по символу ", aSymbol );
    }
  }
  return( 0 );
}

seguimos refiriéndonos al ticket de pedido(order_ticket),

en base a la cual se realizó la transacción (es decir, no podemos prescindir de un ticket de pedido).

Pensé que aunque la orden se ejecutara parcialmente

Pero me equivoqué.ORDER_POSITION_ID está asignado.

se asigna SOLO a la orden que se ha ejecutado completamente.

 

Mikalas:

Pensaba que incluso cuando una orden se ejecuta parcialmente

ElORDER_POSITION_ID está asignado a la orden, pero estaba equivocado.

se asigna a una orden totalmente ejecutada.

¿Y si se elimina la parte no ejecutada de la orden, entonces aparece el ID?
 
Dima_S:
¿Y si se elimina la parte no ejecutada de la orden, aparece el ID?
Sí, pero ya en la historia...
 
Mikalas:
Sí, pero ya en la historia...
¿Qué pasa si la posición se cierra y la parte no ejecutada de la orden no se elimina y se abre (o cambia) ya otra posición?
 
Mikalas:

Pero quería implementarlo a través de órdenes (resulta que tengo una orden parcialmente ejecutada "en pie" desde hace un par o tres de días),

Sí, ocurre en la bolsa y hay que tener en cuenta estas situaciones. Esta es una de las desventajas fundamentales de las órdenes limitadas.

Mikalas:

...

seguimos refiriéndonos al ticket de pedido(order_ticket),

que se utilizó para ejecutar la operación (es decir, necesitamos el ticket de la orden).

...

En tu ejemplo, creo que podemos sustituirlo:

ulong order_ticket = ulong( HistoryDealGetInteger( deal_ticket, DEAL_ORDER ) );

Para:

int deals = HistoryDealsTotal();
for( int i = 0; i < deals; i++ )
{
   ulong deal_ticket = HistoryDealGetTicket(i);
   ENUM_DEAL_TYPE type = (ENUM_DEAL_TYPE)HistoryDealGetInteger(deal_ticket, DEAL_TYPE);
   ENUM_DEAL_ENTRY entry = (ENUM_DEAL_ENTRY)HistoryDealGetInteger(deal_ticket, DEAL_ENTRY);
   if((type == DEAL_TYPE_BUY || type == DEAL_TYPE_SELL) && 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; 
   }
}

Dado que todas las operaciones de compra y venta se inician con algún tipo de orden.

Razón de la queja: