COMMANDE_POSITION_ID - page 20

 
Mikalas:
Vous avez internet, n'est-ce pas ? L'internet le fait :)
Nein. Uniquement les statistiques officielles. Seulement des rapports fiscaux légitimes, donc Internet n'est d'aucune aide dans notre région. Non, ça ne l'est pas.
 
barabashkakvn:
Nein. Uniquement les statistiques officielles. Seulement des rapports fiscaux légitimes, donc Internet n'est d'aucune aide dans notre région. Nein.

Il est cependant écrit dans le dormeur quePOSITION_IDENTIFICATEUR ne change pas tout au long de sa vie.

Ce n'est pas suffisant ?

 
Mikalas:

Il est cependant écrit dans le dormeur quePOSITION_IDENTIFICATEUR ne change pas tout au long de sa vie.

Ce n'est pas suffisant ?

Aide - que je connais :2

J'ai demandé des exemples de la vie, de la bourse :

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

COMMANDE_POSITION_ID

barabashkakvn, 2014.09.01 19:39

C'est dommage que j'aie fermé mon compte chez ce courtier. Est-ce que quelqu'un a un historique de transactions qui montre clairement comment se déroule la compensation ?

 
barabashkakvn:

Aide - Je le sais :

J'ai demandé des exemples de la vie, de la bourse :


Je l'ai eu....
 

J'ai délibérément examiné la question et je me suis excusé pour les déclarations incorrectes. Il s'est avéré que la vérité était au milieu. Il est vrai qu'une position existe du début à la fin de sa clôture, son identifiant et ses propriétés de base restant inchangés, qu'elle ait été déplacée par compensation ou non. Cependant, le prix d'ouverture de la position change. Le calcul de la position elle-même est exactement comme indiqué dans mon post précédent, c'est-à-dire que d'une compensation à l'autre, le profit/la perte cumulé(e) d'une position ouverte est calculé(e) et ce résultat est crédité sur le compte à l'aide d'opérations de courtage spéciales (trades). Ces transactions sont marquées des commentaires "[ouverture de la marge de variation]" et "[fermeture de la marge de variation]".

Voici le commentaire d'un employé d'Otkritie, qui décrit très précisément ce processus :

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

MT5 Trading : Erreurs, bugs, questions.

OpenBroker, 2013.02.26 09:59

Je veux ajouter ici, à mon avis, une observation importante, afin qu'elle puisse être prise en compte lors de la planification de vos Expert Advisors.

Sur FORTS, il y a deux sessions de compensation par jour : Intermédiaire (de 14h00 à 14h03 heure de Moscou) et Principale (de 18h45 à 19h00 heure de Moscou (ou 19h10 les jours d'expiration des contrats)).

Pour référence, la compensation - est une comptabilité des règlements mutuels, en russe, c'est le moment de la fixation des profits/pertes sur les positions ouvertes/fermées entre les sessions de compensation.

Ce qui est réellement important. Ce qui est important, c'est qu'au moment de la compensation, le prix de règlement est fixé. C'est-à-dire le prix de la dernière transaction de la dernière période de négociation. En termes mathématiques, une position ouverte est "en quelque sorte" fermée et ouverte au prix de règlement (bien entendu, aucune commission supplémentaire n'est facturée par le courtier ou la bourse pour cela).

Ainsi, si vous avez ouvert une position avant la prochaine compensation et que vous l'avez conservée au moment de la compensation, vous avez une modification dans MT5 du prix d'ouverture de cette position. Et si, par exemple, vous avez un "trailing stop" en pips, il sera compté à partir du prix de compensation, et non à partir du prix de votre transaction.

Par exemple, le contrat Si-03.13 a été acheté à 11h00, heure de Moscou, au prix de 30500. Un stop suiveur égal à 50 pips est fixé. A 14h00, heure de Moscou, la position n'est pas fermée. Le prix de règlement de la compensation intermédiaire était de 30525. (c'est-à-dire que votre compte a été effectivement compensé avec (+25) roubles pour chaque contrat acheté). À partir de 14 h 03, heure de Moscou, MT5 calculera un stop suiveur sur le prix de 30525 (et non sur le prix réel de la transaction que vous avez effectuée - 30500).

A propos, une telle position de rollover est pratiquée non seulement sur FORTS, mais aussi dans certaines sociétés de forex. Selon moi, le fait que seul le prix d'entrée d'une position soit modifié ou qu'une nouvelle position soit créée dépend des règles de l'entreprise.

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

Un swap de devises est une opération consistant en deux transactions de conversion opposées pour le même montant de devises échangées, avec des dates de valeur et des taux de change différents. Un swap tom/next désigne deux opérations de conversion, dont la première est réglée à la date de valeur "tom", c'est-à-dire le premier jour ouvrable après la date de l'opération, à l'exclusion des week-ends et des jours fériés, et la seconde, à la date au comptant.
Si, à 01h00, heure de Moscou, le jour suivant la date de l'opération, la position ouverte par le Client n'est pas clôturée, la Banque transfère indépendamment la position au jour ouvrable suivant en effectuant un swap de devises "tom/next". Ce faisant, il ferme la position existante à la date de valeur et la rouvre simultanément à la date de valeur suivante.
Les dispositions du présent paragraphe sont considérées par les Parties comme une demande irrévocable du Client de conclure une opération de swap de devises avec la Banque dans le cas décrit au paragraphe précédent, aux conditions suivantes
la devise de base et la contre-devise du swap correspondent à la devise de base et à la contre-devise de la position ouverte,
-le taux de la première opération de swap est égal au taux du marché en vigueur au moment de l'exécution du swap
-le taux de la deuxième opération de swap est égal au taux de la première opération de swap ajusté par la valeur des points de swap du marché actuel (différence positive ou négative entre les taux "tom" et "spot" du marché).
-la date de valeur de la première transaction de swap est la date "tom",
-la date de valeur de la deuxième opération de swap est la date "spot".


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

C-4, c'est très bien que la discussion soit constructive !

J'ai donc besoin du prix "net" de la position, afin de savoir (dans un mois, par exemple) quel est mon bénéfice.

ParPOSITION_IDENTIFIER(tel qu'il est implémenté dans ma position), vous pouvez voir l'historique des transactions entrantes de la position actuelle.

Mais je voulais l'implémenter par le biais desordres (parfois un ordre partiellement exécuté "reste" pendant deux ou trois jours),

parce que l'ordre a ORDER_POSITION_ID, qui est le même que

etPOSITION_IDENTIFIER, mais l'ordre a la même chose.

Dans la fonction (je l'utilise maintenant) :

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

nous nous référons toujours au ticket de commande(order_ticket),

sur la base de laquelle la transaction a été effectuée (c'est-à-dire que nous ne pouvons pas nous passer d'un ticket ORDRE).

Je pensais que même si l'ordre était partiellement exécuté

Mais je me suis trompé.ORDER_POSITION_ID lui est attribué.

est affecté UNIQUEMENT à l'ordre qui a été entièrement exécuté.

 

Mikalas:

Je pensais que même lorsqu'un ordre est partiellement exécuté

L'ORDER_POSITION_ID est attribué à l'ordre, mais je me suis trompé.

est affecté à un ordre entièrement exécuté.

Et si la partie non exécutée de la commande est supprimée, l'ID apparaît alors ?
 
Dima_S:
Et si la partie non exécutée de la commande est supprimée, l'ID apparaît ?
Oui, mais déjà dans l'histoire...
 
Mikalas:
Oui, mais déjà dans l'histoire...
Que se passe-t-il si la position est fermée et que la partie non exécutée de l'ordre n'est pas supprimée et qu'elle ouvre (ou modifie) déjà une autre position ?
 
Mikalas:

Mais je voulais mettre en œuvre ce système par le biais d'ordres (il se trouve que j'ai un ordre partiellement exécuté "en attente" depuis deux ou trois jours),

Oui, cela arrive sur le marché boursier et ces situations doivent être prises en compte. C'est l'un des inconvénients fondamentaux des ordres à cours limité.

Mikalas:

...

nous nous référons toujours au ticket de commande(order_ticket),

qui a été utilisé pour exécuter la transaction (c'est-à-dire que nous avons besoin du ticket ORDER).

...

Dans votre exemple, je pense que nous pouvons le remplacer :

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

Puisque toutes les transactions de type achat et vente sont initiées par une sorte d'ordre.

Raison: