mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 12

 
레오59 :
고맙습니다!
내가 이해하는 바에 따르면 "활성 주문"이라는 용어에는 BUY 및/또는 SELL 포지션과 보류 중인 주문(브로커가 수락함)이 포함됩니다.
내가 open: LongShort 포지션을 가지고 있고 Buy Limit Sell Stop 도 설정하면 OrdersTotal ()은 값 =4를 반환합니다. 그래서?

BUY 포지션과 유효한 BUY 주문을 열 수 있습니다. 위에서 코드 예제를 제공했지만 손가락에 더 쉬울 것입니다. 오픈 포지션 의 TP가 발동되는 방법

  • 가격이 TP BUY 위치에 도달했습니다.
  • 거래 서버는 해당하는 유효한 SELL 주문을 생성합니다.
  • 그 후, BUY 위치와 SELL 주문이 동시에 터미널에 존재합니다.
  • SELL 주문이 실행되어 히스토리에 들어가 동일한 장소에서 거래가 생성됩니다.
  • 거래 데이터를 기반으로 원래 BUY 위치가 마감되어 어디에도 속하지 않습니다. 거래 내역에 간접적으로 존재합니다.

 
레오59 :
모든 것이 오랫동안 받아들여져 왔으며 문서를 작성하기 전에 Sergey Kovalev의 자습서를 읽는 것이 불필요하지 않을 것입니다(MQL4에 내장됨).
스레드 제목을 읽으십시오. 모두 MQL5 정도라고 생각했습니다. 여기 포럼에는 MQL4 및 MT4에 대한 해당 섹션이 있습니다. 거기에 질문을 했다면 다른 대답을 했을 것이다.
 
레오59 :
모든 것이 오랫동안 받아들여져 왔으며 문서를 작성하기 전에 Sergey Kovalev의 자습서를 읽는 것이 불필요하지 않을 것입니다(MQL4에 내장됨).


다음은 시장 및 보류 중인 주문이 분석되는 블록을 구축하는 방법입니다.

   for ( int i= 1 ; i<= OrdersTotal (); i++)       //Цикл по всем ордерам,..
     {                                         //отражённым в терминале
       if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) //Если есть следующий
        {                                    
         // Здесь должен выполняться ..
         // ..анализ характеристик ордеров
        }
     }                                         //Конец тела цикла

순환 연산자의 머리글은 초기값 i=1을 포함하고 순환 종료 조건은 표현식 i<=OrdersTotal()입니다. OrdersTotal() 함수는 시장 및 보류 중인 주문의 총 수를 반환합니다. 거래 탭의 터미널에 반영된 주문. 따라서 사이클은 거래의 주문 수만큼 반복됩니다.

코드를 올바르게 붙여넣으십시오 . 포럼에 코드를 올바르게 붙여넣으십시오(나는 이미 붙여넣은 내용을 수정했습니다. 이제 텍스트만 붙여넣었고 구문 강조 표시가 있는 CODE입니다).
 
비탈리 무지첸코 :

어닐링 할 필요가 없습니다)

이것은 MT4 코드이며 그 안에 주문과 위치의 구분이 없습니다. 모든 것이 함께 섞여 있습니다.

그리고 MQL4와 MQL5에서 OrdersTotal() 함수는 다른 함수인가요? 컴파일러도 똑같고...
 
레오59 :
모든 것이 오랫동안 받아들여져 왔으며 문서를 작성하기 전에 Sergey Kovalev의 자습서를 읽는 것이 불필요하지 않을 것입니다(MQL4에 내장됨).


다음은 시장 및 보류 중인 주문이 분석되는 블록을 구축하는 방법입니다.

   for ( int i= 1 ; i<= OrdersTotal (); i++)       //Цикл по всем ордерам,..
     {                                         //отражённым в терминале
       if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) //Если есть следующий
        {                                    
         // Здесь должен выполняться ..
         // ..анализ характеристик ордеров
        }
     }                                         //Конец тела цикла

순환 연산자의 머리글은 초기값 i=1을 포함하고 순환 종료 조건은 표현식 i<=OrdersTotal()입니다. OrdersTotal() 함수는 시장 및 보류 중인 주문의 총 수를 반환합니다. 거래 탭의 터미널에 반영된 주문. 따라서 사이클은 거래의 주문 수만큼 반복됩니다.

mql4에 대해 이야기하고 mql4에서 코드를 표시할 뿐만 아니라(mql5에서 프로그래밍의 기능과 미묘함에 대한 스레드) 주기도 잘못 작성했습니다. 처음부터 시작해야 합니다. 그렇지 않으면 항상 한 주문을 건너뛰게 됩니다.
 
레오59 :
그리고 MQL4와 MQL5에서 OrdersTotal() 함수는 다른 함수인가요? 컴파일러도 똑같고...
예, 다릅니다.
 
레오59 :
그리고 MQL4와 MQL5에서 OrdersTotal() 함수는 다른 함수인가요? 컴파일러도 똑같고...

거래 기능에 관해서는 차이점이 있습니다. 위에서 MQL4에 대해 이미 말했습니다.

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

mql5 언어의 특징, 미묘함 및 작업 방법

비탈리 무지첸코 , 2017.02.28 19:25

... MT4, 거기에는 명령과 위치의 구분이 없습니다. 모든 것이 함께 혼합되어 있습니다.

반면 MQL5 OrdersTotal()에서는 보류 중인 주문 수를 반환합니다. 따라서 MQL5에서는 모든 것이 더 높은 수준에서 체계화됩니다. 커틀릿은 별도로, 별도로 날아갑니다.
 
Artyom Trishkin :
예, 다릅니다.
그리고 차이점은 무엇입니까?
 
레오59 :
그리고 차이점은 무엇입니까?

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

mql5 언어의 특징, 미묘함 및 작업 방법

블라디미르 카르푸토프 , 2017.02.28 19:44

거래 기능에 관해서는 차이점이 있습니다. 위에서 MQL4에 대해 이미 말했습니다.

반면 MQL5 OrdersTotal()에서는 보류 중인 주문 수를 반환합니다. 따라서 MQL5에서는 모든 것이 더 높은 수준에서 체계화됩니다. 커틀릿은 별도로, 별도로 날아갑니다.

 
레오59 :
그리고 차이점은 무엇입니까?

주문 합계()

활성 주문 수를 반환합니다.

정수 주문 합계 ();

반환 값

int 유형의 값입니다.

메모

활성 보류 주문을 "도구" 패널의 "거래" 탭에도 표시되는 포지션과 혼동하지 마십시오. 주문은 거래 작업 을 수행하라는 지시이며, 포지션은 하나 이상의 거래의 결과입니다.

"상계" 위치 회계(ACCOUNT_MARGIN_MODE_RETAIL_NETTING 및 ACCOUNT_MARGIN_MODE_EXCHANGE)를 사용하면 한 번에 하나 이상의 거래의 결과인 각 기호에 대해 하나의 위치만 열 수 있습니다. 위치는 "도구" 패널의 "거래" 탭에도 표시되는 활성 보류 주문과 혼동되어서는 안 됩니다.

위치의 독립적 표현(ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)을 사용하면 각 기호에 대해 여러 위치를 동시에 열 수 있습니다.


총 포지션()

열린 위치의 수를 반환합니다.

int PositionsTotal ();

반환 값

int 유형의 값입니다.

메모

"상계" 위치 회계(ACCOUNT_MARGIN_MODE_RETAIL_NETTING 및 ACCOUNT_MARGIN_MODE_EXCHANGE)를 사용하면 한 번에 하나 이상의 거래의 결과인 각 기호에 대해 하나의 위치만 열 수 있습니다. 위치는 "도구" 패널의 "거래" 탭에도 표시되는 활성 보류 주문과 혼동되어서는 안 됩니다.

위치의 독립적 표현(ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)을 사용하면 각 기호에 대해 여러 위치를 동시에 열 수 있습니다.