ORDINE_POSIZIONE_ID - pagina 20

 
Mikalas:
Avete internet, vero? Internet lo fa :)
Nein. Solo statistiche ufficiali. Solo rapporti fiscali legittimi, quindi internet non è di aiuto nella nostra zona. No, non lo è.
 
barabashkakvn:
Nein. Solo statistiche ufficiali. Solo rapporti fiscali legittimi, quindi internet non è di aiuto nella nostra zona. Nein.

È scritto nel dormiente, tuttavia, chePOSITION_IDENTIFIER non cambia durante la sua vita.

Non è abbastanza?

 
Mikalas:

È scritto nel dormiente, tuttavia, chePOSITION_IDENTIFIER non cambia durante la sua vita.

Non è abbastanza?

Aiuto - questo lo so:2

Ho chiesto esempi dalla vita, dal trading azionario:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

ORDINE_POSIZIONE_ID

barabashkakvn, 2014.09.01 19:39

È un peccato che ho chiuso il mio conto con il broker. Qualcuno ha una storia di trading che mostri chiaramente come sta andando la compensazione?

 
barabashkakvn:

Aiuto - Lo so:

Ho chiesto esempi dalla vita, dal trading azionario:


Capito....
 

Ho deliberatamente esaminato la questione e mi sono scusato per le dichiarazioni errate. Come si è scoperto, la verità era nel mezzo. È vero che una posizione esiste dall'inizio alla fine della sua chiusura, con il suo identificatore e le sue proprietà di base che rimangono invariate, sia che sia stata spostata attraverso la compensazione o meno. Tuttavia, il prezzo di apertura della posizione cambia. Il calcolo della posizione stessa è esattamente come mostrato nel mio post precedente, cioè da una compensazione all'altra viene calcolato il profitto/perdita accumulato da una posizione aperta e questo risultato viene accreditato sul conto usando operazioni di intermediazione speciali (trade). Queste operazioni sono contrassegnate dai commenti "[margine di variazione aperto]" e "[margine di variazione chiuso]".

Ecco il commento di un impiegato di Otkritie, che descrive molto accuratamente questo processo:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

MT5 Trading: errori, bug, domande.

OpenBroker, 2013.02.26 09:59

Voglio aggiungere qui, a mio parere, un'osservazione importante, in modo che possa essere presa in considerazione quando pianifichi i tuoi Expert Advisor.

Su FORTS, ci sono due sessioni di compensazione al giorno: Intermedia (dalle 14:00 alle 14:03 ora di Mosca) e Principale (dalle 18:45 alle 19:00 ora di Mosca (o 19:10 nei giorni di scadenza dei contratti)).

Per riferimento, la compensazione - è una contabilità dei regolamenti reciproci, in russo, è il momento della fissazione dei profitti/perdite sulle posizioni aperte/chiuse tra le sessioni di compensazione.

Ciò che è veramente importante. Ciò che è importante è che al momento del clearing, il Settlement Price è fissato. Cioè, il prezzo dell'ultimo scambio del periodo di trading passato. In termini matematici, una posizione aperta viene "più o meno" chiusa e aperta al Prezzo di Liquidazione (naturalmente, nessuna commissione aggiuntiva viene addebitata dal broker o dalla borsa per questo).

Quindi, se avete aperto una posizione prima del prossimo clearing e siete rimasti con essa al momento del clearing, allora avete un cambiamento nel prezzo di apertura di quella posizione in MT5. E se, diciamo, hai un "trailing stop" in pip, allora sarà contato dal prezzo di compensazione, e non dal prezzo del tuo trade.

Per esempio, il contratto Si-03.13 è stato comprato alle 11:00 ora di Mosca al prezzo di 30500. Viene impostato un trailing stop pari a 50 pip. Entro le 14:00 ora di Mosca, la posizione non è chiusa. Il prezzo di liquidazione dell'Intermediate Clearing era 30525. (cioè, il tuo conto è stato effettivamente ripulito con (+25) rubli da ogni contratto acquistato). A partire dalle 14:03 ora di Mosca, MT5 calcolerà un trailing stop sul prezzo di 30525 (e non sul prezzo effettivo del trade che hai fatto - 30500).

A proposito, una tale posizione di rollover è praticata non solo su FORTS, ma anche in alcune società di forex. Per come la vedo io, se si cambia solo il prezzo di entrata di una posizione o si crea una nuova posizione dipende dalle regole della società.

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

Un currency swap è un'operazione che consiste in due operazioni di conversione opposte per la stessa quantità di valuta scambiata con date di valuta e tassi di cambio diversi. Uno swap tom/next significa due operazioni di conversione, la prima delle quali viene regolata alla data di valore "tom", cioè il primo giorno lavorativo dopo la data della transazione, esclusi i fine settimana e i giorni festivi, e quella opposta - alla data spot.
Se, entro le 01:00 ora di Mosca del giorno successivo alla data della transazione, la posizione aperta dal Cliente non viene chiusa, la Banca trasferisce autonomamente la posizione al giorno lavorativo successivo eseguendo uno swap di valuta "tom/next". Così facendo, chiude la posizione esistente alla data di valuta e contemporaneamente la riapre alla data di valuta successiva.
Le disposizioni del presente paragrafo saranno considerate dalle Parti come una richiesta irrevocabile del Cliente di effettuare un'operazione di swap di valuta con la Banca nel caso descritto nel paragrafo precedente, alle seguenti condizioni
-la valuta di base e la controvaluta dello swap corrispondono alla valuta di base e alla controvaluta della posizione aperta,
-il tasso della prima operazione di swap è uguale al tasso di mercato corrente al momento dell'esecuzione dello swap
-il tasso della seconda operazione swap è uguale al tasso della prima operazione swap aggiustato del valore dei punti swap di mercato correnti (differenza positiva o negativa tra i tassi "tom" e "spot" di mercato)
-la data di valore della prima operazione di swap è la data "tom",
-la data di valore della seconda operazione di swap è la data "spot".


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

C-4, è molto bello che la discussione sia costruttiva!

Quindi, ho bisogno del prezzo "netto" della posizione, per sapere (in un mese, per esempio) qual è il mio profitto.

ConPOSITION_IDENTIFIER(come è implementato nella mia posizione), puoi vedere la storia dei trade in entrata della posizione corrente.

Ma volevo implementarlo attraverso gliordini (a volte un ordine parzialmente eseguito "rimane" per due o tre giorni),

perché l'ordine ha ORDER_POSITION_ID, che è lo stesso di

ePOSITION_IDENTIFIER, ma l'ordine ha la stessa cosa.

Nella funzione (la sto usando ora):

//+------------------------------------------------------------------+
//| 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 );
}

ci riferiamo ancora al biglietto d'ordine(order_ticket),

sulla base della quale è stata fatta la transazione (cioè non possiamo fare a meno di un biglietto d'ORDINE).

Ho pensato che anche se l'ordine è stato eseguito parzialmente

Ma mi sbagliavo,ORDER_POSITION_ID è assegnato ad esso.

viene assegnato SOLO all'ordine che è stato completamente eseguito.

 

Mikalas:

Pensavo che anche quando un ordine viene eseguito parzialmente

L'ORDER_POSITION_ID è assegnato all'ordine, ma mi sono sbagliato.

è assegnato a un ordine completamente eseguito.

E se la parte non eseguita dell'ordine viene rimossa, allora appare l'ID?
 
Dima_S:
E se la parte non eseguita dell'ordine viene rimossa, appare l'ID?
Sì, ma già nella storia...
 
Mikalas:
Sì, ma già nella storia...
Cosa succede se la posizione viene chiusa e la parte non eseguita dell'ordine non viene rimossa e si apre (o cambia) già un'altra posizione?
 
Mikalas:

Ma volevo implementare questo attraverso gli ordini (mi capita di avere un ordine parzialmente eseguito "in piedi" per un paio o tre giorni),

Sì, succede nel mercato azionario e queste situazioni devono essere prese in considerazione. Questo è uno degli svantaggi fondamentali degli ordini limite.

Mikalas:

...

si fa ancora riferimento al biglietto d'ordine(order_ticket),

che è stato usato per eseguire il commercio (cioè, abbiamo bisogno del biglietto ORDER).

...

Nel tuo esempio, penso che possiamo sostituirlo:

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

A:

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; 
   }
}

Dato che tutte le operazioni di compravendita sono iniziate da un qualche tipo di ordine.

Motivazione: