FORTS 견적에 대한 질문 - 페이지 3

 

로그를 오해할 가능성을 줄이기 위해 컴퓨터 시간을 정확하게 유지하는 것이 바람직합니다.

스크립트 감사합니다: 다음은 1분 17:36에 이 스크립트의 결과입니다.

CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 06 ; Bid = 1.2474 ; Ask = 1.2475 ; Last = 1.2476 ; Vol = 3
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 06 ; Bid = 1.2474 ; Ask = 1.2476 ; Last = 1.2476 ; Vol = 3
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 12 ; Bid = 1.2474 ; Ask = 1.2476 ; Last = 1.2476 ; Vol = 5
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 26 ; Bid = 1.2474 ; Ask = 1.2475 ; Last = 1.2476 ; Vol = 5
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 28 ; Bid = 1.2474 ; Ask = 1.2476 ; Last = 1.2476 ; Vol = 5
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 29 ; Bid = 1.2474 ; Ask = 1.2476 ; Last = 1.2474 ; Vol = 8
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 29 ; Bid = 1.2473 ; Ask = 1.2475 ; Last = 1.2474 ; Vol = 8
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 30 ; Bid = 1.2473 ; Ask = 1.2474 ; Last = 1.2473 ; Vol = 5
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 30 ; Bid = 1.2472 ; Ask = 1.2474 ; Last = 1.2473 ; Vol = 5
CollectTicks (ED- 12.14 ,M1)       2014.11 . 10 17 : 36 : 43 ; Bid = 1.2472 ; Ask = 1.2474 ; Last = 1.2474 ; Vol = 2

OnTick의 특징은 Bid/Ask 변경(정보 흐름)과 마지막(거래 흐름)에 모두 반응한다는 것입니다.

그 결과 거래소에서 거래되는 상품에 대한 OnTick 호출 횟수가 거래 거래 보다 훨씬 많은 것으로 나타났습니다.

왜 다음과 같이 수행됩니까?

  1. 거래만으로 전문가를 질식시킬 수 없으며 시장 변화에 대한 정보를 제공하지 않습니다 (5 번, 다른 하나는 15 번)
  2. 거래자 중 한 명이 폭발할 것이기 때문에 라이브 시장의 틀 내에서 시장 개요에서 last_volume을 0으로 발행하는 것은 불가능합니다.


배치 업데이트에서 계측기에 대한 두 개 이상의 틱이 동시에 도착하면 OnTick이 한 번 호출된다는 사실과 함께 한 가지 더 있습니다. 이를 통해 들어오는 견적의 흐름을 늦추지 않고 Expert Advisors의 속도를 늦추기 위해 거대한 틱 대기열을 만들지 않습니다.

곧 시간 및 판매 스트림을 활성화하여 거래 피드를 정확하게 분석할 수 있습니다.

 
Renat :

로그를 오해할 가능성을 줄이기 위해 컴퓨터 시간을 정확하게 유지하는 것이 바람직합니다.

스크립트 감사합니다: 다음은 1분 17:36에 이 스크립트의 결과입니다.

OnTick의 특징은 Bid/Ask 변경(정보 흐름)과 마지막(거래 흐름)에 모두 반응한다는 것입니다.

그 결과 거래소에서 거래되는 상품에 대한 OnTick 호출 횟수가 거래 거래보다 훨씬 많은 것으로 나타났습니다.

왜 다음과 같이 수행됩니까?

  1. 거래만으로 전문가를 질식시킬 수 없으며 시장 변화에 대한 정보를 제공하지 않습니다 (5 번, 다른 하나는 15 번)
  2. 거래자 중 한 명이 폭발할 것이기 때문에 라이브 시장의 틀 내에서 시장 개요에서 last_volume을 0으로 발행하는 것은 불가능합니다.


배치 업데이트에서 계측기에 대한 두 개 이상의 틱이 동시에 도착하면 OnTick이 한 번 호출된다는 사실과 함께 한 가지 더 있습니다. 이를 통해 들어오는 견적의 흐름을 늦추지 않고 Expert Advisors의 속도를 늦추기 위해 거대한 틱 대기열을 만들지 않습니다.

곧 시간 및 판매 스트림을 활성화하여 거래 피드를 정확하게 분석할 수 있습니다.

물론 이 모든 것이 훌륭하지만 주문서가 있는 FORTS의 경우 MqlTick 구조 에 견적 플래그를 추가해야 했습니다.

거래의 "복제"가 무서운 것이 아니라 실제 거래가 사라지는 것이 무서운 것입니다.

PS My BAN은 내 IP 주소와 관련이 있습니다. 제거하십시오. 그렇지 않으면 답변을 드리기 위해 매번 브라우저를 다시 설치해야 합니다.

 

Есть еще один момент с тем, что на пакетных обновлениях, когда одновременно приходят два и более тика по инструменту, то OnTick вызывается однократно. Это позволяет не тормозить поток входящих котировок и не делать огромную очередь тиков для тормозящих экспертов.

이 접근 방식의 결과는 다음과 같습니다.

그것은해야한다:

종이 시간 시간(µs) 가격 수량

317922.000000 RTS-12.14 [포르츠] 18:44:54 199000.000000 104140.000000 1.000000

317923.000000 RTS-12.14 [FORTS] 18:44:54 261000.000000 104130.000000 1.000000
317924.000000 RTS-12.14 [포르츠] 18:44:54 587000.000000 104140.000000 1.000000
317925.000000 RTS-12.14 [FORTS] 18:44:54 589000.000000 104140.000000 1.000000
317926.000000 RTS-12.14 [포르츠] 18:44:54 691000.000000 104140.000000 1.000000
317927.000000 RTS-12.14 [FORTS] 18:44:54 691000.000000 104140.000000 1.000000
317928.000000 RTS-12.14 [포르츠] 18:44:54 842000.000000 104130.000000 2.000000
317929.000000 RTS-12.14 [포르츠] 18:44:54 919000.000000 104150.000000 1.000000
317930.000000 RTS-12.14 [포르츠] 18:44:55 337000.000000 104150.000000 1.000000
317931.000000 RTS-12.14 [포르츠] 18:44:55 337000.000000 104150.000000 1.000000
317932.000000 RTS-12.14 [포르츠] 18:44:55 337000.000000 104160.000000 1.000000
317933.000000 RTS-12.14 [포르츠] 18:44:55 337000.000000 104160.000000 1.000000
317934.000000 RTS-12.14 [포르츠] 18:44:55 337000.000000 104160.000000 3.000000
317935.000000 RTS-12.14 [포르츠] 18:44:55 375000.000000 104140.000000 1.000000
317936.000000 RTS-12.14 [포르츠] 18:44:55 375000.000000 104130.000000 5.000000
317937.000000 RTS-12.14 [FORTS] 18:44:55 796000.000000 104130.000000 1.000000
317938.000000 RTS-12.14 [포르츠] 18:44:55 799000.000000 104130.000000 2.000000
317939.000000 RTS-12.14 [포르츠] 18:44:56 54000.000000 104160.000000 1.000000
317940.000000 RTS-12.14 [FORTS] 18:44:57 235000.000000 104160.000000 1.000000
317941.000000 RTS-12.14 [포르츠] 18:44:57 451000.000000 104140.000000 2.000000
317942.000000 RTS-12.14 [포르츠] 18:44:57 487000.000000 104140.000000 6.000000
317943.000000 RTS-12.14 [포르츠] 18:44:57 521000.000000 104160.000000 1.000000
317944.000000 RTS-12.14 [포르츠] 18:44:57 621000.000000 104160.000000 1.000000
317945.000000 RTS-12.14 [포르츠] 18:44:58 38000.000000 104160.000000 3.000000
317946.000000 RTS-12.14 [FORTS] 18:44:58 695000.000000 104160.000000 13.000000
317947.000000 RTS-12.14 [포르츠] 18:44:58 883000.000000 104140.000000 2.000000

317948.000000 RTS-12.14 [포르츠] 18:44:58 986000.000000 104160.000000 1.000000
317949.000000 RTS-12.14 [포르츠] 18:44:58 993000.000000 104160.000000 5.000000
317950.000000 RTS-12.14 [포르츠] 18:44:58 993000.000000 104160.000000 5.000000
317951.000000 RTS-12.14 [포르츠] 18:44:58 995000.000000 104160.000000 5.000000
317952.000000 RTS-12.14 [포르츠] 18:44:58 996000.000000 104160.000000 1.000000
317953.000000 RTS-12.14 [포르츠] 18:44:59 56000.000000 104160.000000 1.000000
317954.000000 RTS-12.14 [포르츠] 18:44:59 560000.000000 104140.000000 1.000000
317955.000000 RTS-12.14 [포르츠] 18:44:59 604000.000000 104140.000000 1.000000
317956.000000 RTS-12.14 [FORTS] 18:44:59 647000.000000 104160.000000 1.000000


MT5에 도착하는 방법:

NE 0 18:44:54.483 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:54 입찰가 = 104130 매도호가 = 104150 마지막 = 104140 거래량 = 1
ES 0 18:44:54.639 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:54 입찰가 = 104130 매도호가 = 104150 마지막 = 104130 거래량 = 2
OR 0 18:44:54.720 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:54 입찰가 = 104130 매도호가 = 104150 마지막 = 104150 거래량 = 1
NQ 0 18:44:54.983 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:55 입찰가 = 104140 매도호가 = 104150 마지막 = 104150 거래량 = 1
FP 0 18:44:55.139 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:55 입찰 = 104140 매수 = 104160 마지막 = 104160 거래량 = 3
JO 0 18:44:55.174 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:55 입찰 = 104140 매도호가 = 104160 마지막 = 104130 거래량 = 5
GN 0 18:44:55.206 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:55 입찰 = 104130 매수 = 104160 마지막 = 104130 거래량 = 5
RM 0 18:44:55.592 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:55 입찰가 = 104130 매도호가 = 104160 마지막 = 104130 거래량 = 2
IL 0 18:44:55.891 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:56 입찰가 = 104130 매도호가 = 104160 마지막 = 104160 거래량 = 1
HJ 0 18:44:55.921 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:56 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 1
RI 0 18:44:57.032 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:57 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 1
PH 0 18:44:57.242 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:57 입찰 = 104140 매수 = 104160 마지막 = 104140 거래량 = 2
FG 0 18:44:57.297 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:57 입찰 = 104140 매수 = 104160 마지막 = 104140 거래량 = 6
PF 0 18:44:57.328 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:57 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 1
JE 0 18:44:57.436 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:57 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 1
QD 0 18:44:57.838 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:58 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 3
DP 0 18:44:58.514 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:58 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 13
RR 0 18:44:58.693 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:58 입찰가 = 104140 매도호가 = 104160 마지막 = 104140 거래량 = 2
JP 0 18:44:58.795 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:58 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 1
CO 0 18:44:58.852 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:59 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 1
GN 0 18:44:59.358 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:59 입찰 = 104140 매도호가 = 104160 마지막 = 104140 거래량 = 1
MM 0 18:44:59.406 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:59 입찰가 = 104140 매도호가 = 104160 마지막 = 104140 거래량 = 1
IL 0 18:44:59.453 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:44:59 입찰가 = 104140 매도호가 = 104160 마지막 = 104160 거래량 = 1
CK 0 18:50:31.437 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:50:24 입찰가 = 0 매도 = 0 마지막 = 104160 거래량 = 1
KH 0 18:50:33.357 FORTSTicksAction (RTS-12.14,M1) 시간 = 18:50:24 입찰가 = 104080 매도호가 = 104180 마지막 = 104160 거래량 = 1


이것들은 모두 세션이 종료되기 직전의 마지막 것들입니다(즉, 청산이 끝날 때까지 아래에 따옴표가 없습니다).

시작점으로 검은색으로 강조 표시된 세 개의 선을 사용합니다. 두 가지 질문이 있습니다.

1.빨간거 어디갔어?

2. 강조 표시된 파란색은 어디에서 왔습니까?


또 다른 질문(추가) - "동시 도착"을 의미하는 시간 간격은 무엇입니까?

 
Dima_S :

이 접근 방식의 결과는 다음과 같습니다.

317945.000000 RTS-12.14 [포르츠] 18:44:58 38000.000000 104160.000000 3.000000
317946.000000 RTS-12.14 [포르츠] 18:44:58 695000.000000 104160.000000 13.000000
317947.000000 RTS-12.14 [포르츠] 18:44:58 883000.000000 104140.000000 2.000000

317948.000000 RTS-12.14 [포르츠] 18:44:58 986000.000000 104160.000000 1.000000
317949.000000 RTS-12.14 [포르츠] 18:44:58 993000.000000 104160.000000 5.000000
317950.000000 RTS-12.14 [포르츠] 18:44:58 993000.000000 104160.000000 5.000000
317951.000000 RTS-12.14 [포르츠] 18:44:58 995000.000000 104160.000000 5.000000
317952.000000 RTS-12.14 [포르츠] 18:44:58 996000.000000 104160.000000 1.000000



이것들은 모두 세션 종료 직전의 마지막 것입니다(즉, 청산이 끝날 때까지 아래에 따옴표가 없습니다).

시작점으로 검은색으로 강조 표시된 세 개의 선을 사용합니다. 두 가지 질문이 있습니다.

1.빨간거 어디갔어?

그들은 하나의 네트워크 패킷으로 도착했으며, 하나의 OnTick으로 자원했습니다. 1초에 8개의 틱이 있었고 그 중 3개는 단일 호출로 발생했으며 마지막 5개는 마지막 따옴표가 Last로 표시된 한 패킷에 있을 가능성이 가장 높습니다.


2.파란색 하이라이트는 어디에서 왔습니까?

포스트마켓입니다. 우리는 또한 시장 후 이벤트를 잡을 수있는 기회를 제공합니다. 거기에서 일반적으로 응용 프로그램 철회 만 작동합니다.


또 다른 질문(추가) - "동시 도착"을 의미하는 시간 간격은 무엇입니까?

이것은 간격이 아니라 물리적 네트워크 패킷입니다. 패킷은 2-3-4 틱에 대해 도착하며 모두 기본에서 겹치지만 OnTick 호출은 하나입니다.

여전히 EA가 느려지고(바쁜) 새 들어오는 견적이 데이터베이스에 추가될 가능성이 있지만 EA가 작동하기 때문에 OnTick이 호출되지 않습니다. 그러한 메커니즘이 없다면 우리는 쉽게 전문가에 대한 견적의 대기열을 초과하고 전문가에게 오래된 견적을 보내기 시작하여 그를 오도할 것입니다.

 

레나트!

자세한 설명 감사합니다만...

FORTS의 경우 이 접근 방식이 허용되지 않는 것 같습니다.

인용문은 볼륨이며 다른 것은 아닙니다.

11개의 따옴표가 있으므로 OnTick에 11개가 있어야 합니다.

안 그래?

 

이 방법이 아닙니다.

정확하고 정확한 데이터 스트림을 단말기에 전달하는 문제와 전문가 호출/알림 문제를 혼동하지 마십시오.

모든 데이터는 정확하고 정확하게 단말기로 전달되는 것이 기본입니다. 차트를 비교하는 것으로 충분합니다.

그러나 전문가(ontic)의 출시는 독립적이고 비동기적인 알림입니다. 들어오는 데이터 패킷은 속도가 느려지는 Expert Advisor를 기다릴 수 없지만 시장 환경에 즉시 적용해야 하며 선택적으로만(Expert Advisor가 이전 호출을 완료한 경우) Expert Advisor를 시작해야 합니다.

상황에 대해 생각해 보십시오. 견적의 흐름은 초당 2이고 속도를 늦추고 거래를 하는 일하는 Expert Advisor는 동시에 대기열에 있는 새로운 보류 견적이 폐하까지 터미널의 시장 환경과 겹치지 않도록 요구합니다. Expert Advisor가 작업을 완료합니다.

이것이 어디로 이어질지 보이십니까? 전체 터미널은 처리 중인 견적의 상태에 대한 시장 스냅샷을 유지하는 어리석은 생각을 위해 모든 프로세스를 지연시키기 시작합니다. 그리고 다른 도구에 대해 생각한다면 자신을 쏘십시오.

따라서 시장 업데이트의 부과는 다른 프로세스와 독립적으로 즉각적으로 항상 우선 순위가 지정됩니다. 다른 모든 사람들은 시장을 비동기식으로 따라잡아야 합니다.

 
Renat :

이 방법이 아닙니다.

정확하고 정확한 데이터 스트림을 단말기에 전달하는 문제와 전문가 호출/알림 문제를 혼동하지 마십시오.

모든 데이터는 정확하고 정확하게 단말기로 전달되는 것이 기본입니다. 차트를 비교하는 것으로 충분합니다.

그러나 전문가(ontic)의 출시는 독립적이고 비동기적인 알림입니다. 들어오는 데이터 패킷은 속도가 느려지는 Expert Advisor를 기다릴 수 없지만 시장 환경에 즉시 적용해야 하며 선택적으로만(Expert Advisor가 이전 호출을 완료한 경우) Expert Advisor를 시작해야 합니다.

상황에 대해 생각해 보십시오. 견적의 흐름은 초당 2이고 속도를 늦추고 거래를 하는 일하는 Expert Advisor는 동시에 대기열에 있는 새로운 보류 견적이 폐하까지 터미널의 시장 환경과 겹치지 않도록 요구합니다. Expert Advisor가 작업을 완료합니다.

이것이 어디로 이어질지 보이십니까? 전체 터미널은 처리 중인 견적의 상태에 대한 시장 스냅샷을 유지하는 어리석은 생각을 위해 모든 프로세스를 지연시키기 시작합니다. 그리고 다른 도구에 대해 생각한다면 자신을 쏘십시오.

따라서 시장 업데이트의 부과는 다른 프로세스와 독립적으로 즉각적으로 항상 우선 순위가 지정됩니다. 다른 모든 사람들은 시장을 비동기식으로 따라잡아야 합니다.

동의하지 않는다.

내가 유리를 사용하지 않는다고 가정해 봅시다.

FORTS 시장의 상황에 대한 아이디어는 무엇입니까 (전문가)는 어떤 인용문을 가지고 있는지 명확하지 않습니다.

그리고 볼륨?

결국 FORTS의 경우 입찰 및 요청을 전송하지 않는 것이 가능합니다(유리에 있음).

그리고 코드에서 변경 사항은 최소화됩니다 - 유리에 가입됨 - 입찰 및 물음표에서 브로드캐스트되지 않습니다.

 
Mikalas :

동의하지 않는다.

내 설명을 여러 번 다시 읽으십시오.

내가 유리를 사용하지 않는다고 가정해 봅시다.

FORTS 시장의 상황에 대한 아이디어는 무엇입니까 (전문가)는 어떤 인용문을 가지고 있는지 명확하지 않습니다.

현재 비동기식으로 업데이트된 견적이 있고 다른 견적은 없습니다.

당신이 부름을 받았다면 그뿐입니다. 유리에있는 당신 앞에는 인용문뿐입니다. 패키지에 2개의 따옴표가 와서 겹치면 마지막 따옴표만 표시됩니다. 아무도 첫 번째 견적을 전문가에게 전달하고 전문가가 계산을 완료할 때까지 기다리지 않을 것이기 때문입니다. 그게 다야, 오래된 인용문은 사라졌고, 제 시간에 그것을 잡아서 해결할 수 없다면 기차는 떠난 것입니다. 그 오래된 인용문에서는 여전히 아무 것도 실행할 수 없습니다. 예, 그리고 주문이 전송될 때까지 시장이 변경될 수 있기 때문에 현재/마지막 주문에 대해 이행될 것인지도 의심스럽습니다.

"입찰/매도 방송 금지"는 도움이 되지 않습니다. 오래된 진드기는 구식입니다. 아무도 시장을 동결하고 오래된 진드기로 작업하도록 허용하지 않습니다.

원하는 경우 다음을 수행할 수 있습니다.

  1. 터미널을 고속 컴퓨터 에서 브로커와 더 가까운 코로케이션에 놓으면 점점 더 적극적으로 잡을 것입니다.
  2. 전문가를 반복하고 주문서와 시장 감시를 지속적으로 스캔하여 사용 가능한 모든 것을 더 자주 추출합니다.
  3. 차트 분석, 오더북 분석

Time & Sales와 함께 최신 틱 가격 피드에 대한 직접 액세스를 제공하여 연속 틱에 액세스할 수 있도록 하는 것을 고려할 것입니다. 시장 검토에서 우리는 그것을 세션별로 수집합니다. 이것은 스캘퍼에게 더 많은 기회를 줄 것입니다.

 

Renat :

Time & Sales와 함께 최신 틱 가격 피드에 대한 직접 액세스를 제공하여 연속 틱에 액세스할 수 있도록 하는 것을 고려할 것입니다. 시장 검토에서 우리는 그것을 세션별로 수집합니다. 이것은 스캘퍼에게 더 많은 기회를 줄 것입니다.

이것이 유일하게 허용되는 솔루션입니다. 바라건대 주어진 문자에 대한 fifo 대기열이 있을 것입니다. 이것은 이 이벤트 모델 의 프레임워크 내에서 해결할 수 없는 또 다른 문제를 해결할 것입니다. 손실 없이 전문가 기호 이외의 기호에 대한 따옴표를 얻는 것입니다.
 

의심이 가는 부분이 있습니다.

지금 바로 실행하도록 설정하겠습니다.

//+------------------------------------------------------------------+
//|                                                    Kotirovki.mq5 |
//|                                                   Copyright 2014 |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, Mikalas"
#property link      "http://www.mql5.com"
#property version   "1.02"
//
MqlTick curr_tick;
double  start_last   = 0;
double  start_bid    = 0;
double  start_ask    = 0; 
ulong   start_volume = 0;  
//  
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
  return( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit( const int reason )
{

}
//+------------------------------------------------------------------+
//| Expert On Tick event function                                    |
//+------------------------------------------------------------------+  
void OnTick()
{
  if ( SymbolInfoTick( _Symbol, curr_tick ) )
  {
    if ( start_last == curr_tick.last )
    {
      if ( start_volume == curr_tick.volume )
      {
        if ( ( start_ask == curr_tick.ask ) &&
             ( start_bid == curr_tick.bid )  )
        {
          Print( curr_tick.time, "; Bid = ", curr_tick.bid,
                                 "; Ask = ", curr_tick.ask,
                                 "; Last = ", curr_tick.last,
                                 "; Vol = ", curr_tick.volume, "; Новая котировка(Всё одинаковое)" );
        }
        else
        {
          start_ask = curr_tick.ask;
          start_bid = curr_tick.bid;
          Print( curr_tick.time, "; Bid = ", curr_tick.bid,
                                 "; Ask = ", curr_tick.ask,
                                 "; Last = ", curr_tick.last,
                                 "; Vol = ", curr_tick.volume, "; Изменение ask или bid? Или же новая котировка?" );
        }
      }
      else
      {
        start_last = curr_tick.last;
        start_volume = curr_tick.volume;
        start_ask = curr_tick.ask;
        start_bid = curr_tick.bid;
        Print( curr_tick.time, "; Bid = ", curr_tick.bid,
                               "; Ask = ", curr_tick.ask,
                               "; Last = ", curr_tick.last,
                               "; Vol = ", curr_tick.volume, "Новая котировка (Изменён объём)!" );
      }
    }
    else
    {
      start_last = curr_tick.last;
      start_volume = curr_tick.volume;
      start_ask = curr_tick.ask;
      start_bid = curr_tick.bid;
      Print( curr_tick.time, "; Bid = ", curr_tick.bid,
                             "; Ask = ", curr_tick.ask,
                             "; Last = ", curr_tick.last,
                             "; Vol = ", curr_tick.volume, "Новая котировка! (Изменена котировка)" );
    }
  }
}

내일 어떻게 되는지 보자...

파일:
Kotirovki.ex5  5 kb