ORDER_POSITION_ID - 페이지 20

 
Mikalas :
인터넷이 있습니까? 인터넷을 통해 찾아보세요 :)
나인. 공식 통계만 있습니다. 법적 세금 보고서 만 있으므로 우리 지역에서는 인터넷이 도우미가 아닙니다. 안 돼요.
 
barabashkakvn :
나인. 공식 통계만 있습니다. 법적 세금 보고서 만 있으므로 우리 지역에서는 인터넷이 도우미가 아닙니다. 안 돼요.

스폰북에 따르면 POSITION_IDENTIFIER 는 평생 변하지 않습니다.

충분하지 않다?

 
Mikalas :

스폰북에 따르면 POSITION_IDENTIFIER 는 평생 변하지 않습니다.

충분하지 않다?

도움말 - 알아요: 2

나는 주식 거래에서 삶의 예를 물었습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

ORDER_POSITION_ID

바라바시 카크vn , 2014.09.01 19:39

브로커와 계정을 폐쇄한 것이 유감입니다. 청산이 어떻게 발생하는지 명확하게 볼 수 있는 거래 이력이 있는 사람이 있습니까?

 
barabashkakvn :

도움말 - 알아요:

나는 주식 거래에서 삶의 예를 물었습니다.


당연하게....
 

이 문제를 구체적으로 이해했으며 잘못된 진술에 대해 사과드립니다. 알고 보니 진실은 그 한가운데에 있었다. 실제로 포지션은 폐쇄의 시작부터 끝까지 존재하며, 청산을 통해 이전되었는지 여부에 관계없이 식별자와 기본 속성은 변경되지 않습니다. 그러나 포지션 의 개시 가격 은 변경됩니다. 위치 계산 자체는 이전 게시물에 표시된 것과 정확히 동일합니다. 한 청산에서 다른 청산으로, 미결 포지션의 누적 손익이 계산되고 이 결과는 특별 중개 작업(거래)을 사용하여 계정에 적립됩니다. 이러한 거래는 "[변동증거금 개시]" 및 "[변동증거금 마감]" 주석으로 표시됩니다.

이 프로세스를 매우 정확하게 설명하는 Otkritie 직원의 의견을 인용합니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

교환의 MT5: 오류, 버그, 질문.

오픈브로커 , 2013.02.26 09:59

동료 여러분, 제 생각에는 전문가 자문을 계획할 때 이 점을 고려할 수 있도록 중요한 언급을 하고 싶습니다.

FORTS는 하루에 두 번 청산 세션이 있습니다: 중급(모스크바 시간 14:00~14:03) 및 메인(모스크바 시간 18:45~19:00(또는 계약 만료일의 경우 19:10)).

참고로 청산은 상호 정산을 고려한 것입니다. 러시아어의 경우 청산 세션 사이의 오픈/클로즈드 포지션에서 손익을 고정하는 순간입니다.

사실 중요한 것은. 청산 시 정산 가격을 고정하는 것이 중요합니다. 즉, 지난 거래 기간 의 마지막 거래 가격입니다 . 수학의 관점에서 미결 포지션은 "있는 그대로" 청산 가격으로 청산 및 개설됩니다(물론 브로커나 거래소 모두 이에 대한 추가 커미션을 받지 않습니다).

따라서 다음 청산 이전에 포지션을 개설하고 구현 당시 그대로 유지했다면 이 포지션의 시가는 MT 5에서 변경됩니다. 그리고 예를 들어 포인트에 "후행 정지"가 있는 경우 거래 가격이 아닌 청산 가격에서 계산됩니다.

예를 들어 모스크바 시간 11시에 계약 Si-03.13을 30,500루블의 가격으로 구매했습니다. 50포인트의 후행 정지가 설정되었습니다. 모스크바 시간 14:00까지 포지션이 마감되지 않습니다. 중간 청산의 정산 가격은 30525입니다(즉, 구매한 각 계약의 (+25) 루블이 실제로 청산을 위해 귀하의 계정으로 이체되었습니다). 모스크바 시간 14:03부터 MT 5는 30525의 가격에서 후행 중지를 계산합니다(거래의 실제 가격이 아닌 30500루블).

그건 그렇고, 이러한 포지션 롤오버는 FORTS뿐만 아니라 일부 외환 회사에서도 실행됩니다. 동시에, 포지션 진입 가격만 변경될 것인지, 아니면 새로운 포지션이 생성될 것인지는 회사 자체의 규칙에 따라 달라지는 것으로 이해합니다.

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

통화 스왑 - 동일한 금액의 거래 통화에 대해 서로 다른 가치 날짜와 다른 환율을 사용하는 두 개의 반대 변환 거래로 구성된 거래. "tom/next" 스왑은 두 번의 전환 거래를 의미하며, 그 중 첫 번째는 "tom"(톰) 가치 날짜, 즉 주말 및 공휴일을 제외하고 거래가 체결된 다음 영업일의 첫 번째 영업일에 결제됩니다. 반대쪽 - 당일.
고객이 개설한 포지션이 거래일 다음 날 모스크바 시간 01:00 이전에 마감되지 않은 경우 은행은 "tom/next" 통화 스왑을 수행하여 해당 포지션을 다음 영업일로 독립적으로 이전합니다. 동시에 그는 기준일에 기존 포지션을 마감하고 동시에 다음 기준일에 다시 포지션을 엽니다.
이 단락의 규정은 다음 조건에 대해 이전 단락에 설명된 경우 은행과 통화 스왑 거래를 하기 위한 고객의 취소 불가능한 응용 프로그램으로 당사자에 의해 간주됩니다.
- 스왑의 기준통화 및 상대통화는 오픈포지션의 기준통화 및 상대통화에 해당하며,
- 첫 번째 스왑 거래의 비율은 스왑 당시의 현재 시장 비율과 동일합니다.
- 두 번째 스왑 거래의 비율은 현재 시장 스왑 포인트의 가치로 조정된 첫 번째 스왑 거래의 비율과 동일합니다(시장 비율 "tom"과 "spot" 사이의 양수 또는 음수 차이).
-첫 번째 스왑 거래의 가치 날짜 - "tom" 날짜,
- 두 번째 스왑 거래의 가치 날짜 - "현물" 날짜.


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

P-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가 할당되었지만 내가 잘못 했습니다. ORDER_POSITION_ID

완전히 실행된 주문에만 할당됩니다.

 

Mikalas :

부분 실행에도

ORDER_POSITION_ID가 할당되었지만 내가 잘못 했습니다. 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 );
   i f ((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; 
   }
}

왜냐하면 모든 매수 및 매도 거래는 일종의 주문에 의해 시작됩니다.