티크 역사 - 페이지 19

 
Karputov Vladimir :

MqlTicks 구조 의 플래그 필드에는 종종 "24" 값("모든 틱" 표시 모드)이 포함됩니다.

- 이 값은 무엇을 의미합니까?

각 틱에 대해 데이터가 이전 틱과 비교하여 변경되었는지 여부에 관계없이 모든 매개변수가 항상 채워집니다. 이를 통해 틱 기록에서 이전 값을 찾지 않고도 항상 현재 가격 상태를 확인할 수 있습니다. 예를 들어, 틱으로 입찰 가격만 변경할 수 있지만 새 가격 외에도 이전 요청 가격, 볼륨 등 다른 매개변수가 구조에 표시됩니다. 현재 틱으로 변경된 데이터를 정확히 찾으려면 해당 플래그를 분석하십시오.

  • TICK_FLAG_BID - 틱이 입찰가를 변경했습니다.
  • TICK_FLAG_ASK - 매도호가를 변경한 틱
  • TICK_FLAG_LAST - 틱이 마지막 거래의 가격을 변경했습니다.
  • TICK_FLAG_VOLUME - 변경된 볼륨 틱
  • TICK_FLAG_BUY - 매수 거래의 결과로 발생한 틱
  • TICK_FLAG_SELL - 매도 거래의 결과로 발생한 틱
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:. - Страница 18 - Категория: общее обсуждение
 
Andrey Khatimlianskii :

OnInit()에서 다음 코드를 인쇄하는 어드바이저를 첨부했습니다.

   Print (TICK_FLAG_BID, " - тик изменил цену бид" );
   Print (TICK_FLAG_ASK, "  - тик изменил цену аск" );
   Print (TICK_FLAG_LAST, " - тик изменил цену последней сделки" );
   Print (TICK_FLAG_VOLUME, " - тик изменил объем" );
   Print (TICK_FLAG_BUY, " - тик возник в результате сделки на покупку" );
   Print (TICK_FLAG_SELL, " - тик возник в результате сделки на продажу" )

결과:

 2015.10 . 23 15 : 12 : 33.274 CopyTicks_1_5_0 (USDCAD,M5)     2 - тик изменил цену бид
2015.10 . 23 15 : 12 : 33.274 CopyTicks_1_5_0 (USDCAD,M5)     4   - тик изменил цену аск
2015.10 . 23 15 : 12 : 33.274 CopyTicks_1_5_0 (USDCAD,M5)     8 - тик изменил цену последней сделки
2015.10 . 23 15 : 12 : 33.274 CopyTicks_1_5_0 (USDCAD,M5)     16 - тик изменил объем
2015.10 . 23 15 : 12 : 33.274 CopyTicks_1_5_0 (USDCAD,M5)     32 - тик возник в результате сделки на покупку
2015.10 . 23 15 : 12 : 33.274 CopyTicks_1_5_0 (USDCAD,M5)     64 - тик возник в результате сделки на продажу

결과 중 "24" 값이 없습니다.

 
Karputov Vladimir :

결과 중 "24" 값이 없습니다.

8 || 16 = 24

 
Karputov Vladimir :

OnInit()에서 다음 코드를 인쇄하는 어드바이저를 첨부했습니다.

결과:

결과 중 "24" 값이 없습니다.

비트 OR 연산

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Основы языка / Операции и выражения / Побитовые операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
MqlTick 구조의 어떤 매개변수가 틱의 도착과 함께 변경되었는지에 따라 매개변수를 요약할 수 있습니다.
 

다른 사람이 다음 방법에 따라 메시지 에서 표시기를 테스트할 수 있습니다.

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

티크 역사

카르푸토프 블라디미르 , 2015.10.22 15:07

이것은 분명합니다. 근데 교환하는데 얼마나 걸리나요? 위의 예에서 요청은 50틱이며, 틱이 즉시 로드되지 않으면 30초가 걸립니다.

더 나빠. 나는 500틱을 요청한다 - 틱은 거의 즉시 로드된다(나는 그런 양을 요청했었다는 사실 때문에만 생각한다) 그런 다음 나는 5000틱을 요청한다 - 4분이 지나고 5000틱 중 2000보다 약간 적게 로드되고 이 숫자는 증가하지 않습니다.


 
Renat Fatkhullin :

...

테스터에서 다음 릴리스에서 틱을 거래 전략 테스터에 완전히 통합할 때까지 틱이 반환되지 않습니다.

Build 1200이 출시되었습니다. 테스터에서는 틱이 다운로드되지 않지만 Market Watch의 테스터에서는 틱이 실제처럼 보입니다.

시험 장치. 시장 검토.

 

특정 날짜에서 틱을 얻는 방법을 알아냈습니다. 간단합니다. 시간은 밀리초 단위로 지정해야 합니다.

 //+------------------------------------------------------------------+
//|                                                CopyTicks_1_03.mq5|
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.03"
#property description "Получение тиков с определённой даты"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int   ticks= 200 ;   // количество запрашиваемых тиков
input datetime start= D'2015.10.16 23:59' ; // с какой даты запрашивать тики
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//--- запросим тики, время должно быть в миллисекундах!
   int copied=CopyTicks( _Symbol ,ExTicks,COPY_TICKS_ALL,( ulong )start* 1000 ,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print ( "Получено тиков: " ,copied, " код ошибки: " , GetLastError ());
   if (copied> 1 )
     {
       Print ( "Из заказанных " ,ticks, " самый старый тик: " ,ExTicks[ 0 ].time, " bid: " ,
            ExTicks[ 0 ].bid, " ask: " ,ExTicks[ 0 ].ask, " last: " ,ExTicks[ 0 ].last, " [0]" );
       Print ( "Из заказанных " ,ticks, " самый молодой тик: " ,ExTicks[copied- 1 ].time, " bid: " ,
            ExTicks[copied- 1 ].bid, " ask: " ,ExTicks[copied- 1 ].ask, " last: " ,ExTicks[copied- 1 ].last, " [" ,copied- 1 , "]" );
     }
   Print ( "Size " ,(( long )copied* sizeof ( MqlTick ))>> 20 , " Mb" );
  }
//+------------------------------------------------------------------+
파일:
 

Build 1200. CopyTicks를 호출하는 차트에 지표가 첨부되어 있습니다. 모든 것이 작동합니다. 그러나 연결이 끊긴 후:

2015.10.26 09:58:06.721 Network '1783501': connection to MetaQuotes-Demo lost

그런 다음 연결이 복원되면 CopyTicks는 완강하게 틱을 거부합니다. 그리고 요청하려면 최소 50틱, 최소 500틱.

 
Karputov Vladimir :

Build 1200. CopyTicks를 호출하는 차트에 지표가 첨부되어 있습니다. 모든 것이 작동합니다. 그러나 연결이 끊긴 후:

그런 다음 연결이 복원되면 CopyTicks는 완강하게 틱을 거부합니다. 요청하려면 최소 50틱, 최소 500틱이 필요합니다.

그런 다음 다른 서버에 연결하면? 아니면 네트워크를 다시 스캔하고 동일한 네트워크에 연결하시겠습니까? 오류가 남아 있습니까?