파일에서 Expert Advisor 자동 초기화 및 재초기화 - 페이지 7

 
Fry_Антон :

분명한.

세부 사항: 내일 FORTS에서 "즉석에서" 위치를 잡는 방법에 대해 생각할 것입니다. 사실 저는 무엇보다 청산을 통과한(청산가격으로 재오픈한) 포지션의 실제 시가를 알아야 합니다.

FORTS의 위치는 하나(또는 여러 주문)에 대한 거래 금액으로 획득됩니다. 티켓 없이 청산하는 기술 거래가 있습니다. 청산 전의 POSITION_PRICE_OPEN 가격을 결정하는 방법을 파악해야 합니다.

보관할 수 있습니다. 수명만 결정하면 됩니다. 예를 들어, 고문이 시장에서 벗어났는지(포지션이 없음) 잊어버리십시오.
 
Dmitry Fedoseev :

분명히 다음과 같은 경우:

계속 망치질을 해야 합니다. 그러나 적어도 확실히 전문가를 차단하지 마십시오. 망치질하는 것이 덜 뻔뻔할 수 있습니다. 오류 수가 증가하면 시도 사이의 일시 중지가 증가합니다. 가장 간단한 해결책은 몇 번의 시도와 다음 막대가 열릴 때까지 일시 중지하는 것입니다.

그러나 2,000건을 초과하는 거래에 대한 거래소 벌금은 어떻게 됩니까? 50명의 Expert Advisors가 있고 2,000개의 트랜잭션이 통과했다고 가정해 보겠습니다. 다음에해야 할 일은 거래소에서 벌금을 내야합니까?
 
Fry_Антон :

분명한.

세부 사항: 내일 FORTS에서 "즉석에서" 위치를 잡는 방법에 대해 생각할 것입니다. 사실 저는 무엇보다 청산을 통과한(청산가격으로 재오픈한) 포지션의 실제 시가를 알아야 합니다.

FORTS의 위치는 하나(또는 여러 주문)에 대한 거래 금액으로 획득됩니다. 티켓 없이 청산하는 기술 거래가 있습니다. 청산 전의 POSITION_PRICE_OPEN 가격을 결정하는 방법을 파악해야 합니다.

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

엄청난! 나는 내일 그것을 망칠 것이다.

당신은 저에게 많은 시간을 절약했습니다. 고맙습니다.

 
Fry_Антон :

엄청난! 나는 내일 그것을 망칠 것이다.

당신은 저에게 많은 시간을 절약했습니다. 고맙습니다.

알림:

이 기능은 들어오는 트랜잭션만을 위해 설계되었습니다!

(즉, 순위 하락이 없었음)

둘 다 필요한 경우 함수에 DEAL_ENTRY_OUT 을 추가하십시오.

 
Михаил :

알림:

이 기능은 들어오는 트랜잭션만을 위해 설계되었습니다!

(즉, 순위 하락이 없었음)

둘 다 필요한 경우 함수에 DEAL_ENTRY_OUT 을 추가하십시오.

나는 이것을 즉시 이해했다. 여기서 원칙 자체가 중요합니다. 기록의 ID를 반복하며, 실제로 이것은 위의 질문에 대한 완전한 답변입니다.


솔직히 말해서 개발자들의 논리가 이해가 되지 않고, 그들이 왜 그런 "서투른" 방식으로 청산 기술 거래를 실행하기로 결정했는지 이해하지 못합니다.

차트의 그래픽 개체, 기록의 위치 속성 및 또한 열린 위치의 속성(수익성) - 모든 것이 고문의 간단한 코드뿐만 아니라 일반적으로 모든 거래자를 오도합니다.

 
kond777 :
그러나 2,000건을 초과하는 거래에 대한 거래소 벌금은 어떻게 됩니까? 50명의 Expert Advisors가 있고 2,000개의 트랜잭션이 통과했다고 가정해 보겠습니다. 다음에해야 할 일은 거래소에서 벌금을 내야합니까?

당신은 당신의 질문에 대한 답을 배우지 않을 것입니다.

벌금을 받지 않으려면 전문가 고문의 작업을 중단해야 합니다(오랫동안 이에 대해 논의했습니다).

우리의 기적의 프로그래머가 우리가 멈춰야 한다고 말한다면 그는 할 것입니다.

자기 자신을 가장 잘 알아본다 ....., 우리는 프로그래밍에서 아무것도 이해하지 못한다.

주식 거래 전문가 ....

 
Михаил :

당신은 당신의 질문에 대한 답을 배우지 않을 것입니다.

벌금을 받지 않으려면 전문가 고문의 작업을 중단해야 합니다(오랫동안 이에 대해 논의했습니다).

우리의 기적의 프로그래머가 우리가 멈춰야 한다고 말한다면 그는 할 것입니다.

자기 자신을 가장 잘 알아본다 ....., 우리는 프로그래밍에서 아무것도 이해하지 못한다.

주식 거래 전문가 ....

제 생각에 Dmitry Fedoseev는 지식이 풍부한 사람으로 나타났습니다. 그는 확실히 이 문제에 대한 솔루션을 제공할 수 있을 것이라고 믿습니다.
 
Михаил :

예, Dmitry가 사람에게 MT4에 무엇이 좋은지, MT5에서는 완전히 "보라색"으로 조언하기 때문입니다!

귀하의 게시물에서 MT5가 어떻게 작동하는지 전혀 모른다는 것이 분명합니다.

그리고 전문가 프로그래밍의 부끄러운 원칙은 여러분이 판단할 문제가 아닙니다!

당신은 나에게 권위가 아니라 건방진 건방진 소년입니다!

당신은 질투? 글쎄요, 맞습니다. 낙원의 늙은 새보다 어린 강아지가 되는 것이 낫습니다.
 
Алексей Тарабанов :
당신은 질투? 글쎄요, 맞습니다. 낙원의 늙은 새보다 어린 강아지가 되는 것이 낫습니다.
가스 웅덩이에서 증가 ...