顺序_position_id - 页 20

 
Mikalas:
你有互联网,对吗?互联网就是这样 :)
不,不。只有官方统计数据。只有合法的税务报告,所以互联网在我们这里是没有帮助的。不,不是的。
 
barabashkakvn:
不,不。只有官方统计数据。只有合法的税务报告,所以互联网在我们这里是没有帮助的。不,不。

然而,在睡眠者中写到,POSITION_IDENTIFIER 在她的一生中不会改变。

这还不够吗?

 
Mikalas:

然而,它在睡眠者中说,POSITION_IDENTIFIER 在她的一生中不会改变。

这还不够吗?

帮助 - 我知道。2

我要求提供生活中的例子,从股票交易中。

关于交易、自动交易系统和测试交易策略的论坛

顺序_position_id

barabashkakvn, 2014.09.01 19:39

很遗憾,我关闭了我在该经纪人那里的账户。有没有人有交易记录,可以清楚地显示清算的情况?

 
barabashkakvn:

帮助 - 我知道。

我要求提供生活中的例子,从股票交易中。


得到了....
 

我特意调查了此事,并为不正确的说法表示歉意。结果是,真相在中间。诚然,一个头寸从开始到结束都存在,其标识符和基本属性保持不变,无论它是否经过清算移动。然而,头寸的开盘价 确实发生了变化。仓位计算本身与我之前的帖子中显示的完全一样,即从一个清算到另一个清算,未结头寸的累计利润/亏损被计算出来,这个结果使用特殊的经纪操作(交易)记入账户。这些交易被标记为"[变动保证金开仓]"和"[变动保证金平仓]"的注释。

下面是一位Otkritie公司员工的评论,它非常准确地描述了这个过程。

关于交易、自动交易系统和测试交易策略的论坛

MT5交易:错误、漏洞、问题。

OpenBroker, 2013.02.26 09:59

我想在这里补充一下,在我看来,一个重要的意见,以便在计划你的专家顾问时可以考虑到它。

在FORTS上,每天有两个清算时段:中级(从莫斯科时间14:00到14:03)和主要(从莫斯科时间18:45到19:00(或在合同到期日的19:10))。

作为参考,清算 - 是相互结算的核算,在俄罗斯,它是清算会议之间的未平仓/平仓的利润/亏损的固定时刻。

什么是真正重要的。重要的是,在结算时,结算价格是固定的。即过去交易期的最后一笔交易的价格。就数学而言,未结头寸 "算是 "平仓,以结算价开仓(当然,经纪人或交易所都不会为此收取额外的佣金)。

因此,如果你在下一次清算前开了一个头寸,并在清算时保持该头寸,那么你在MT5中对该头寸的开盘价有了变化。而且,如果说你有一个以点为单位的 "追踪止损",那么它将从清算价格算起,而不是从你交易的价格算起。

例如,Si-03.13合约在莫斯科时间11:00买入,价格为30500。设置了一个等于50点的追踪止损。到莫斯科时间下午2:00,职位还没有关闭。中间清算的结算价为30525。(也就是说,你的账户实际上被清空了,每份购买的合同都有(+25)卢布)。从莫斯科时间14:03开始,MT5将以30525的价格计算追踪止损(而不是以你所做交易的实际价格--30500)。

顺便说一下,这样的滚动位置不仅在FORTS上实行,而且在一些外汇公司也实行。在我看来,是只改变一个头寸的进入价格,还是建立一个新的头寸,取决于公司的规则。

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

货币互换是一种操作,包括对相同数量的交易货币进行两次相反的转换交易,其价值日期和汇率不同。一个tom/next互换意味着两个转换交易,其中第一个在价值日 "tom",即交易日之后的第一个工作日结算,不包括周末和公共假期,而相反的一个--在现货日结算。
如果在交易日次日莫斯科时间01:00之前,客户开立的头寸没有被平仓,银行应通过执行 "tom/next "货币互换独立地将头寸转移到下一个工作日。在这样做时,它应在价值日关闭现有头寸,同时在下一个价值日重新开仓。
本段的规定应被双方视为客户在前段所述情况下与银行进行货币互换交易的不可撤销的请求,其条件如下
-掉期的基础货币和反货币与未平仓合约的基础货币和反货币相对应。
-第一笔互换交易的利率等于执行互换时的现行市场利率
-第二笔互换交易的利率等于第一笔互换交易的利率,并根据当前市场互换点的价值(市场 "tom "和 "spot "利率之间的正负差异)进行调整。
-第一笔互换交易的价值日期是 "tom "日期。
-第二笔互换交易的价值日期是 "现货 "日期。


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

C-4,讨论是建设性的,这非常好!

因此,我需要仓位的 "净 "价格,以便知道(例如在一个月内)我的利润是多少。

通过POSITION_IDENTIFIER(在我的仓位中实现的),你可以看到当前仓位的传入交易历史。

但我想通过订单实现(有时一个部分执行的订单会 "保留 "两到三天)。

因为该订单有ORDER_POSITION_ID,这与

POSITION_IDENTIFIER,但顺序上有 相同之处。

在函数中(我现在正在使用它)。

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

我们仍然指的是订单票(order_ticket)。

交易的基础上(即我们不能没有ORDER票)。

我以为,即使订单被部分执行

但我错了,ORDER_POSITION_ID 是分配给它的。

只分配给已经完全 执行的订单。

 

Mikalas:

我以为,即使一个订单被部分执行了

ORDER_POSITION_ID 是分配给订单的,但我错了。

被分配给一个完全 执行的订单。

而如果订单中未执行的部分被删除,则会出现ID?
 
Dima_S:
而如果删除订单中未 执行的部分,就会出现ID?
是的,但已经在历史上...
 
Mikalas:
是的,但已经在历史上...
如果仓位被关闭,而订单的未执行部分没有被删除,并且已经打开(或改变)另一个仓位,怎么办?
 
Mikalas:

但我想通过 订单实现这一点 (我碰巧有一个部分执行的订单 "站立 "了一两天或三天)

是的,这发生在股市中,这些情况必须考虑到。这是限价订单的基本缺点之一。

米卡拉斯

...

我们仍然指的是订单票(order_ticket)。

用来执行交易的(即我们需要ORDER票)。

...

在你的例子中,我认为我们可以替换它。

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

在。

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

由于所有买入和卖出类型的交易都是由某种订单发起的。