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

 
Vladimir Karputov :
밤에 교환이 요청한 기호에서 작동하는 것이 확실합니까?

그래서 나는 터미널이 가지고 있지 않은 엄격하게 정의된 시간에 나에게 틱을 보내도록 강요하지 않고 그냥 요청을 보냅니다.

from=0 , // 틱이 요청된 날짜

개수=0                  // 얻을 틱 수

그리고 그는 나에게 그 이야기를 직접 보내지 않습니까?

 
VANDER :

그래서 나는 터미널이 가지고 있지 않은 엄격하게 정의된 시간에 나에게 틱을 보내도록 강요하지 않고 그냥 요청을 보냅니다.

from=0 , // 틱이 요청된 날짜

개수=0                  // 얻을 틱 수

그리고 그는 나에게 그 이야기를 직접 보내지 않습니까?

요청된 기호에 대한 경매가 종료된 경우(예: 밤이 밝음) - 요청한 기호에 대한 틱은 어디에서 올까요?
 

Expert Advisor가 시작된 주요 RTS-12.19 기호의 경우 마지막 틱이 23:59:30이고 SBRF-12.19의 경우 23:52:21임을 확인했는데 왜 틱을 로드할 수 없습니까?

그리고 SymbolInfoTick 함수가 바보가 되도록 도와주는 것이 얼마나 흥미로운가요?

 
VANDER :

Expert Advisor가 시작된 주요 RTS-12.19 기호의 경우 마지막 틱이 23:59:30이고 SBRF-12.19의 경우 23:52:21임을 확인했는데 왜 틱을 로드할 수 없습니까?

그리고 SymbolInfoTick 함수가 바보가 되도록 도와주는 것이 얼마나 흥미로운가요?

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

초보자의 질문 MQL5 MT5 MetaTrader 5

블라디미르 카르푸토프 , 2019.12.08 13:20

요청된 기호에 대한 경매가 종료된 경우(예: 밤이 밝음) - 요청한 기호에 대한 틱은 어디에서 올까요?

 
VANDER :

Expert Advisor가 시작된 주요 RTS-12.19 기호의 경우 마지막 틱이 23:59:30이고 SBRF-12.19의 경우 23:52:21임을 확인했는데 왜 틱을 로드할 수 없습니까?

그리고 SymbolInfoTick 함수가 바보가 되도록 도와주는 것이 얼마나 흥미로운가요?

다음은 고문입니다.

 //+------------------------------------------------------------------+
//|                                                  CopyTicks_1.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.100"
#property description "Сравнение трёх режимов получения тиков"
//--- input parameters
input string    name  = "RTSSiZ9" ;       // символ по которому запрашиваем тики
input int       ticks = 3000 ;           // количество запрашиваемых тиков
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   SymbolSelect (name, true );
//--- succeed
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//--- массив для приема тиков
   MqlTick ExTicks[];
//--- запросим тики
   ResetLastError ();
   int copied= CopyTicks (name,ExTicks, COPY_TICKS_ALL , 0 ,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask
   Print ( "Получено тиков: " ,copied, " код ошибки: " , GetLastError ());
   if (copied> 1 )
     {
       Print ( "Тик: " ,ExTicks[ 0 ].time, " bid: " ,ExTicks[ 0 ].bid, " ask: " ,ExTicks[ 0 ].ask, " last: " ,ExTicks[ 0 ].last, " [0]" );
       Print ( "Тик: " ,ExTicks[copied- 1 ].time, " bid: " ,ExTicks[copied- 1 ].bid, " ask: " ,ExTicks[copied- 1 ].ask, " last: " ,ExTicks[copied- 1 ].last, " [" ,copied- 1 , "]" );
     }
  }
//+------------------------------------------------------------------+

저는 RTSSRZ9(SBRF-Dec19)에서 실행 중입니다. 설정은 다음과 같습니다.


RTSSiZ9(이것은 Si-Dec19)에서 틱을 요청합니다.

결과:

 2019.08 . 30 07 : 00 : 00    Получено тиков: - 1 код ошибки: 4004
2019.08 . 30 07 : 00 : 01    Получено тиков: 2 код ошибки: 0
2019.08 . 30 07 : 00 : 01    Тик: 2019.08 . 30 07 : 00 : 00 bid: 22552.0 ask: 22697.0 last: 0.0 [ 0 ]
2019.08 . 30 07 : 00 : 01    Тик: 2019.08 . 30 07 : 00 : 01 bid: 22552.0 ask: 22697.0 last: 0.0 [ 1 ]
2019.08 . 30 07 : 00 : 02    Получено тиков: 3 код ошибки: 0
2019.08 . 30 07 : 00 : 02    Тик: 2019.08 . 30 07 : 00 : 00 bid: 22552.0 ask: 22697.0 last: 0.0 [ 0 ]
2019.08 . 30 07 : 00 : 02    Тик: 2019.08 . 30 07 : 00 : 02 bid: 22425.0 ask: 22856.0 last: 0.0 [ 2 ]
2019.08 . 30 07 : 00 : 02    Получено тиков: 4 код ошибки: 0
2019.08 . 30 07 : 00 : 02    Тик: 2019.08 . 30 07 : 00 : 00 bid: 22552.0 ask: 22697.0 last: 0.0 [ 0 ]

등 ...


즉, 모든 것이 실제 서버에서 작동합니다. 작동하지 않는 경우: 1. 데모 서버가 아닌 실제 서버에서 작업합니다. 2. 코드를 확인합니다.

파일:
 

계정은 실제 이상입니다. 거래합니다. 귀하의 코드를 사용하고 설정을 정확히 동일하게 설정해도 여전히 웃을 것입니다. 전체 로그를 제공합니다.


 2019.12 . 08 21 : 08 : 38.787 MetaTester 5 started on 127.0 . 0.1 : 3000
2019.12 . 08 21 : 08 : 38.790 initialization finished
2019.12 . 08 21 : 08 : 39.088 login (build 2265 )
2019.12 . 08 21 : 08 : 39.120 4372 bytes of account info loaded
2019.12 . 08 21 : 08 : 39.120 1482 bytes of tester parameters loaded
2019.12 . 08 21 : 08 : 39.120 1212 bytes of input parameters loaded
2019.12 . 08 21 : 08 : 39.138 29043 bytes of symbols list loaded
2019.12 . 08 21 : 08 : 39.138 expert file added: Experts\CopyTicks_1.ex5. 16437 bytes loaded
2019.12 . 08 21 : 08 : 39.152 6116 Mb available, 76 blocks set for ticks generating
2019.12 . 08 21 : 08 : 39.152 initial deposit 10000.00 USD, leverage 1 : 100
2019.12 . 08 21 : 08 : 39.153 successfully initialized
2019.12 . 08 21 : 08 : 39.153 37 Kb of total initialization data received
2019.12 . 08 21 : 08 : 39.153 Intel Core i5- 3450   @ 3.10 GHz, 8157 MB
2019.12 . 08 21 : 08 : 39.198 RTS- 12.19 : symbol to be synchronized
2019.12 . 08 21 : 08 : 39.199 RTS- 12.19 : symbol synchronized, 4120 bytes of symbol info received
2019.12 . 08 21 : 08 : 39.199 RTS- 12.19 : history synchronization started
2019.12 . 08 21 : 08 : 39.201 RTS- 12.19 : load 33 bytes of history data to synchronize in 0 : 00 : 00.000
2019.12 . 08 21 : 08 : 39.201 RTS- 12.19 : history synchronized from 2018.01 . 12 to 2019.12 . 06
2019.12 . 08 21 : 08 : 39.201 RTS- 12.19 : ticks synchronization started
2019.12 . 08 21 : 08 : 39.202 RTS- 12.19 : load 40 bytes of tick data to synchronize in 0 : 00 : 00.000
2019.12 . 08 21 : 08 : 39.202 RTS- 12.19 : history ticks synchronized from 2019.01 . 03 to 2019.12 . 05
2019.12 . 08 21 : 08 : 39.205 RTS- 12.19 ,H1: history cache allocated for 2480 bars and contains 971 bars from 2018.01 . 12 13 : 00 to 2019.08 . 29 23 : 00
2019.12 . 08 21 : 08 : 39.205 RTS- 12.19 ,H1: history begins from 2018.01 . 12 13 : 00
2019.12 . 08 21 : 08 : 39.207 RTS- 12.19 ,H1 (Open-Broker): generating based on real ticks
2019.12 . 08 21 : 08 : 39.207 RTS- 12.19 ,H1: testing of Experts\CopyTicks_1.ex5 from 2019.08 . 30 00 : 00 to 2019.11 . 26 00 : 00 started with inputs:
2019.12 . 08 21 : 08 : 39.207    name=SBRF- 12.19
2019.12 . 08 21 : 08 : 39.207    ticks= 3000
2019.12 . 08 21 : 08 : 39.263 SBRF- 12.19 : symbol to be synchronized
2019.12 . 08 21 : 08 : 39.263 SBRF- 12.19 : symbol synchronized, 4120 bytes of symbol info received
2019.12 . 08 21 : 08 : 40.615 RTS- 12.19 : real ticks begin from 2019.01 . 03 00 : 00 : 00
2019.12 . 08 21 : 08 : 55.958 2019.08 . 30 00 : 03 : 46    Получено тиков: - 1 код ошибки: 4401
2019.12 . 08 21 : 08 : 56.877 2019.08 . 30 00 : 03 : 46    Получено тиков: - 1 код ошибки: 4401
2019.12 . 08 21 : 08 : 57.764 2019.08 . 30 09 : 52 : 14    Получено тиков: - 1 код ошибки: 4401
2019.12 . 08 21 : 08 : 58.739 2019.08 . 30 10 : 00 : 01    Получено тиков: - 1 код ошибки: 4401
2019.12 . 08 21 : 08 : 59.784 2019.08 . 30 10 : 00 : 01    Получено тиков: - 1 код ошибки: 4401
2019.12 . 08 21 : 09 : 04.628 2019.08 . 30 10 : 00 : 03    Получено тиков: - 1 код ошибки: 4401
2019.12 . 08 21 : 09 : 05.579 2019.08 . 30 10 : 00 : 04    Получено тиков: - 1 код ошибки: 4401
2019.12 . 08 21 : 09 : 06.596 2019.08 . 30 10 : 00 : 06    Получено тиков: - 1 код ошибки: 4401

나에게 유일한 차이점은 밤에 시작하지만 아침에도 똑같다는 것입니다.

 
VANDER :

계정은 실제 이상입니다. 거래합니다. 귀하의 코드를 사용하고 설정을 정확히 동일하게 설정해도 여전히 웃을 것입니다. 전체 로그를 제공합니다.


나에게 유일한 차이점은 밤에 시작하지만 아침에도 똑같다는 것입니다.

ERR_HISTORY_NOT_FOUND

4401

요청한 기록을 찾을 수 없습니다

SBRF- 12.19 상품은 언제부터 언제까지 거래됩니까? 이 날짜가 2019.08.30-2019.11.26 사이에 해당합니까?

 
Vladimir Karputov :

ERR_HISTORY_NOT_FOUND

4401

요청한 기록을 찾을 수 없습니다

SBRF- 12.19 상품은 언제부터 언제까지 거래됩니까? 이 날짜가 2019.08.30-2019.11.26 사이에 해당합니까?

예, 모든 날짜에 발생합니다.


그래 망치질 해 나 스스로 탈출구를 찾았어 그 전에 함수를 사용해

 SymbolInfoTick (необходимый символ)

그런 다음 CopyTicks()가 작업을 시작합니다. 다른 브로커에서 Opener가 버그가 있고 확인하지 않은 것일 수도 있습니다. 누군가에게 유용할 수도 있습니다.

 
VANDER :

예, 모든 날짜에 발생합니다.


그래 망치질 해 나 스스로 탈출구를 찾았어 그 전에 함수를 사용해

그런 다음 CopyTicks()가 작업을 시작합니다. 다른 브로커에서 Opener가 버그가 있고 확인하지 않은 것일 수도 있습니다. 누군가에게 유용할 수도 있습니다.

그것은 분명히 거래 서버에 달려 있습니다. 모든 것이 저에게 효과적이었습니다.
아마도 그들은 10년 동안 서버 부분을 업데이트하지 않았을 것입니다.
 
fxsaber :

경고가 없도록 코드를 수정하지 못하는 것은 무엇입니까?

600개의 경고가 있는 경우 오류 라인을 찾아야 합니다(실제로 엄격 모드를 활성화하면 더 많은 경고가 있음).

그리고 거의 모든 경고는 쓸모가 없습니다. 대부분이 숨겨진 변수나 유형 변환에 관한 것이기 때문입니다. 아마도 어떤 사람들은 이것이 잘못 될 수 있다고 생각하지만 경험 많은 프로그래머에게는 일반적이지 않습니다.

Mt4는 초보자에게 적합합니다. 그러나 현재 mql5 언어는 초보 프로그래머 를 대상으로 하기에 충분히 복잡합니다. 그리고 숙련된 프로그래머는 600줄의 명확하게 이유가 있는 작업을 필요로 하지 않습니다.


분명히 이것은 내 주관적인 의견이지만 다른 언어를 사용하면 원하는 정도를 결정할 수 있습니다.

사유: