오류, 버그, 질문 - 페이지 1886

 
Vladimir Karputov :


그리고 질문은 무엇입니까?

숫자 "i" 아래에 이러한 기호로 티켓이 있는 위치가 있음을 어디에서 볼 수 있습니까? 일반적으로 일련번호의 단순 출력 외에 티켓과 기호도 출력한다.


한 함수가 다른 상황에 대해 동일한 값을 제공하는 것이 정상입니까?

추신: 그건 그렇고, 게시물에 질문이있었습니다.

결론은 구매를 선택하면 (PositionGetInteger( POSITION_TYPE )) 함수가 0을 반환한다는 것입니다.

존재하지 않는 위치를 선택하면 함수도 0을 반환합니다.

 
Alexandr Bryzgalov :
한 함수가 다른 상황에 대해 동일한 값을 제공하는 것이 정상입니까?


"다른 상황"이란 무엇입니까? 그리고 위에서 제안한 대로 하십시오.

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

오류, 버그, 질문

블라디미르 카르푸토프 , 2017.05.12 11:15

...

일반적으로 일련번호의 단순 출력 외에 티켓과 기호도 출력한다.


 
Alexandr Bryzgalov :

확인이 필요하다는 것은 이해하지만 무슨 일이 일어날 수 있습니다 ...

PositionGetInteger

이 함수는 PositionGetSymbol 또는 PositionSelect 함수를 사용하여 이전에 선택한 열린 위치의 요청된 속성을 반환합니다. position 속성은 datetime, int 유형이어야 합니다. 기능에는 2가지 옵션이 있습니다.

1. 속성 값을 직접 반환합니다.

PositionGetInteger (
    ENUM_POSITION_PROPERTY_INTEGER    property_id        // 속성 식별자
);

2. 함수의 성공 여부에 따라 true 또는 false를 반환합니다. 성공하면 속성 값이 마지막 매개변수로 참조로 전달된 수신 변수에 배치됩니다.

bool PositionGetInteger (
    ENUM_POSITION_PROPERTY_INTEGER    property_id , // 속성 식별자
    긴&                             long_var           // 여기에 속성 값을 가져옵니다.
);

옵션

property_id

【인】 위치 속성 식별자입니다. 값은 ENUM_POSITION_PROPERTY_INTEGER 열거형 값 중 하나일 수 있습니다.

long_var

【아웃】 요청된 속성의 값을 취하는 long 유형의 변수입니다.

반환 값

long 유형의 값입니다. 실패 시 0을 반환합니다.

마법의 상황은 더 얇습니다. 따라서 (PositionGetInteger(POSITION_TICKET) > 0) 확인하는 것이 논리적입니다.
Документация по MQL5: Торговые функции / PositionGetInteger
Документация по MQL5: Торговые функции / PositionGetInteger
  • www.mql5.com
Торговые функции / PositionGetInteger - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber :
마법의 상황은 더 얇습니다. 따라서 (PositionGetInteger(POSITION_TICKET) > 0) 확인하는 것이 논리적입니다.

네, 확인이 필요한 맛입니다.

그러나 함수를 작성할 때 항상 다른 상황에서 다른 값을 반환하려고 합니다.

다른 상황에서 하나의 값이 함수에서 나온다는 것은 옳지 않다고 생각합니다.
 
Alexandr Bryzgalov :

그러나 함수를 작성할 때 항상 다른 상황에서 다른 값을 반환하려고 합니다.

그래서 마술과 이러한 이유로 언급되었습니다. PositionGetInteger( POSITION_MAGIC ) 오류가 발생한 경우 무엇을 반환합니까?
 
fxsaber :
그래서 마술과 이러한 이유로 언급되었습니다. PositionGetInteger( POSITION_MAGIC ) 오류가 발생한 경우 무엇을 반환합니까?
0 - 위치가 수동으로 열립니다. 오른쪽?
 
Alexandr Bryzgalov :

한 함수가 다른 상황에 대해 동일한 값을 제공하는 것이 정상입니까?

추신: 그건 그렇고, 게시물에 질문이있었습니다.

결론은 구매를 선택하면 (PositionGetInteger( POSITION_TYPE )) 함수가 0을 반환한다는 것입니다.

존재하지 않는 위치를 선택하면 함수도 0을 반환합니다.


따라서 결국 첫 번째 호출은 포지션 선택을 보장할 때 사용됩니다(예: 사이클에 있는 것처럼). 그리고 여기에 두 번째 형태의 호출이 있습니다.

 bool    PositionGetInteger ( 
   ENUM_POSITION_PROPERTY_INTEGER   property_id,     // идентификатор свойства 
   long &                           long_var         // сюда примем значение свойства 
   );

위치가 floundering bay에서 선택되는 경우.


이렇게 하고 "결과" 변수에 입력한 내용을 믿으십시오. 모든 것이 제자리에 들어갈 것입니다.

 //+------------------------------------------------------------------+
//|                                                         posi.mq5 |
//|                                                      sanyooooook |
//|                                                 http://sn-bot.ru |
//+------------------------------------------------------------------+
#property copyright "sanyooooook"
#property link        "http://sn-bot.ru"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   int tot= PositionsTotal ();
   for ( int i= 0 ;i<tot;i++)
     {
       ulong OrderTicket_= PositionGetTicket (i);
       long cmd= PositionGetInteger ( POSITION_TYPE );
       if (OrderTicket_> 0 && cmd<= POSITION_TYPE_SELL )
         Print ( "N" ,i, "cmd=" ,cmd);

     }
   ulong OrderTicket_= PositionGetTicket ( 100 );
   long cmd=- 3 ;
   bool result= PositionGetInteger ( POSITION_TYPE ,cmd);
   if (result)
       Print ( "N100 cmd=" ,cmd);
  }
//+------------------------------------------------------------------+
 
Alexandr Bryzgalov :
0 - 위치가 수동으로 열립니다. 오른쪽?
네. 그러나 다른 값은 오해의 소지가 있습니다.
 
Vladimir Karputov :


따라서 결국 첫 번째 호출은 포지션 선택을 보장할 때 사용됩니다(예: 사이클에 있는 것처럼). 그리고 여기에 두 번째 형태의 호출이 있습니다.

위치가 floundering bay에서 선택되는 경우.


이렇게 하고 "결과" 변수에 입력한 내용을 신뢰하십시오. 모든 것이 제자리에 들어갈 것입니다.

그것에 대한 질문이 아니며 다른 상황에서 해당 함수에 대해 하나의 값을 반환합니다.

확인하는 방법을 알고 있습니다

처음에는 이것이 정상인지 아닌지에 대한 질문이었습니다.

추신: 실수로 오류가 발생할 수 있으며, 그러면 100,000개 코드에서 검색하는 데 지칠 것입니다.

뭐라고요? 실수할 필요가 없습니까? )

 
Alexandr Bryzgalov :

그것에 대한 질문이 아니며 다른 상황에서 해당 함수에 대해 하나의 값을 반환합니다.

확인하는 방법을 알고 있습니다

처음에는 이것이 정상인지 아닌지에 대한 질문이었습니다.


제가 보여드린 코드를 확인하지 않으셨군요. 해보자: 먼저 확인하고 다시 질문하십시오.