초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 244

 
forexman77 :
"SymbolInfoTick" 외에 현재 가격 을 얻을 수 있는 다른 빠른 방법이 있는지 알려주십시오. 현재 견적을 받는 더 빠른 방법이 있습니까?

SymbolInfoDouble 을 사용할 수 있습니다.

식별자 SYMBOL_BID 및 SYMBOL_ASK 포함.  

 
Fleder :

SymbolInfoDouble 을 사용할 수 있습니다.

식별자 SYMBOL_BID 및 SYMBOL_ASK 포함.  

고맙습니다!

"SYMBOL_BID"(입찰이 가장 좋은 판매 제안임) 다음에 나오는 내용이 완전히 명확하지 않습니다. 여전히 현재 견적 또는 ESN 주문서의 최고 시장 가격입니까?

 
forexman77 :

고맙습니다!

"SYMBOL_BID"(입찰이 가장 좋은 판매 제안임) 다음에 나오는 내용이 완전히 명확하지 않습니다. 여전히 현재 견적 또는 ESN 주문서의 최고 시장 가격입니까?

현재 견적과 ECN 유리의 최고 가격은 동일합니다.

 
Fleder :

현재 견적과 ECN 유리의 최고 가격은 동일합니다.

일반적으로 요청할 때 "SymbolInfoDouble"을 사용하면 이 가격의 거래가 발생하지 않을 수 있습니다. 즉, 이것이 현재 입찰가입니다.

"SymbolInfoTick"을 사용하면 가격이 확실히 거기에 있었습니다. 즉, double last를 사용할 때 마지막 거래가 발생한 현재 가격 입니다. // 마지막 거래의 현재 가격(Last)

 
forexman77 :

일반적으로 요청할 때 "SymbolInfoDouble"을 사용하면 이 가격의 거래가 발생하지 않을 수 있습니다. 즉, 이것이 현재 입찰가입니다.

"SymbolInfoTick"을 사용하면 가격이 확실히 존재했습니다. 즉, 이것은 마지막 거래가 발생한 현재 가격 입니다.

메모

함수가 마지막 틱에 대한 정보를 얻는 데 사용되는 경우 SymbolInfoTick() 을 사용하는 것이 좋습니다. 터미널이 거래 계정에 연결된 순간부터 이 기호에 대한 작은 따옴표가 없었을 가능성이 큽니다 . 이 경우 요청된 값은 정의되지 않습니다.

SymbolInfoTick은 터미널이 서버에 연결된 이후 단일 틱이 없는 경우 정의되지 않은 값을 반환할 수 있습니다.

SymbolInfoDouble은 이러한 상황을 제거합니다.

 
Fleder :

메모

함수가 마지막 틱에 대한 정보를 얻는 데 사용되는 경우 SymbolInfoTick() 을 사용하는 것이 좋습니다. 터미널이 거래 계정에 연결된 순간부터 이 기호에 대한 작은 따옴표가 없었을 가능성이 큽니다 . 이 경우 요청된 값은 정의되지 않습니다.

SymbolInfoTick은 EA가 차트에 첨부된 이후 단일 틱이 없는 경우 정의되지 않은 값을 반환할 수 있습니다.

SymbolInfoDouble은 이러한 상황을 제거합니다.

이해했다. 고맙습니다! 이제 각 함수가 호출될 때 걸리는 시간을 확인하는 간단한 코드 예제를 찾는 일만 남았습니다.
 
forexman77 :
이해했다. 고맙습니다! 이제 각 함수가 호출될 때 걸리는 시간을 확인하는 간단한 코드 예제를 찾는 일만 남았습니다.
 uint start= GetTickCount ();
// здесь Ваш код вызова 
Print ( "Вызов прошёл за = " , GetTickCount ()-start);
 
barabashkakvn :

대부분의 경우 이 트릭은 이 상황에서 작동하지 않습니다.

항상 0으로 출력됩니다.

SymbolInfoTick 및 SymbolInfoDouble 함수는 너무 빠르며 몇 마이크로초를 넘지 않습니다.

 
Fleder :

대부분의 경우 이 트릭은 이 상황에서 작동하지 않습니다.

항상 0으로 출력됩니다.

SymbolInfoTick 및 SymbolInfoDouble 함수는 너무 빠르며 몇 마이크로초를 넘지 않습니다.

더 흥미로운 것은 코드 예제가 있다는 것입니다. 결과를 기다리고 있습니다.
 
barabashkakvn :
플레더 :

대부분의 경우 이 트릭은 이 상황에서 작동하지 않습니다.

항상 0으로 출력됩니다.

SymbolInfoTick 및 SymbolInfoDouble 함수는 너무 빠르며 몇 마이크로초를 넘지 않습니다.

스크립트에서 다음과 같이 했습니다.

 void OnStart ()
  {
uint start= GetTickCount ();
double ask= SymbolInfoDouble ( Symbol (), SYMBOL_ASK );
Alert ( "ask=" ,ask);
uint time= GetTickCount ()-start;
Alert ( "time=" ,time);
   
  }
//+------------------------------------------------------------------+

시간=0

SymbolInfoTick은 월요일에 확인합니다.

사유: