기고글 토론 "MetaTrader 5 터미널의 Strategy Tester 내 틱 생성 알고리즘" - 페이지 4

 
Renat :
그러나 귀하는 MetaTrader 5 + MQL5 + 테스터 주제에 참여하고 있으며 개발자와 직접 경쟁하고 있습니다.


메타트레이더 5 터미널을 모르기 때문에 테스터의 거래 모드를 알지 못하고 이 주제의 첫 페이지에 그림과 함께 이러한 모드에 대한 설명에도주의를 기울이지 않았습니다.

테스터 모드는 트레이더를 냉정하게 만들고 강력한 전문가 조언을 작성하기 위해 특별히 고안되었습니다. 이를 통해 전문가 조언을 극적으로 그리고 질적으로 향상시킬 수 있습니다.

저는 포럼(MQL4.com 및 MQL5.com)에서 테스터의 공격적 모드에 대해 반복해서 글을 썼습니다.

이것이 문제의 근원입니다. 실제로 테스트하지 않으려는 것입니다.

일반적으로 우리의 대화는 잠금 반대자와 지지자 간의 토론처럼 보입니다,

양측은 상대방의 말을 듣고 싶어하지 않습니다 (아마도 한 쪽이 상대방이 보지 못하고 이해하지 못하는 해결책을 겪었 기 때문일 것입니다).

당신이 옳고 연습이 그것을 보여줄 것이 좋을 것입니다,

나는 당신에게 행운을 빌며 더 나은 단말기를 사용하는 것이 더 중요하기 때문에 그것이 진심 어린 소원이라고 믿습니다.

(그리고 그 도움으로 이익을 얻는 것이) 어떤 분쟁에서 옳은 것보다 더 중요합니다.

 
Renat писал(а) :

...
4. MT4에서 모델링에 대한 "기술"과 이에 대한 태도를 기억하세요. 하나만 더 물어볼게요. 바에 같은 수의 틱이 있습니까? MT4에서는 틱의 20%를 버리곤 했습니다. 지금은 어떻습니까? 실제 막대에 100개의 틱이 있다면 모델링에서는 몇 개의 틱이 있을까요?

일치하지만 아무것도 확인하고 싶지 않을 것입니다. 이론적 사고로 충분합니다.

자, 확인해 봅시다. 전문가의 도움을 받아 스케치를 해봤습니다. 여기 코드가 있습니다.

  int ticks=0; 
  double  old_bid=0, old_ask=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {return(0);}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick)) // получаем тик по символу
     {
     // ограничение по времени, собираем смоделированные тики за 1 час. 2010.05.21   22:00
      if(last_tick.time>"2010.05.21 21.00.00" && last_tick.time<"2010.05.21 23.00.00") {
      if(old_ask!=last_tick.ask || old_bid!=last_tick.bid)  { // если нет изменения цены это не тик, пропускаем
         // это тик запоминаем цену, увеличиваем счетчик тиков и выводим принт для проверки
         old_bid=last_tick.bid;
         old_ask=last_tick.ask;
         ticks++;
         Print("ticks=", ticks," ",last_tick.time,": Bid =",last_tick.bid," Ask =",last_tick.ask);
     }      
     }
     }
   else Print("SymbolInfoTick() failed, error =",GetLastError());
//---
  }

결과는 이렇습니다.

숫자가 일치하지 않아요. 둘 중 하나죠. 제 손이 비뚤어졌거나 당신이 거짓말을 하고 있어요. 누구나 다운로드하여 직접 확인할 수 있습니다. 제 코드에서 오류를 발견하시면 알려주시면 감사하겠습니다.

파일:
111.mq5  3 kb
 

실기 시험 결과 첫 번째 옵션이 나왔습니다. 제한 시간을 1시간이 아닌 2시간으로 지정하는 실수를 범했습니다.

다음은 올바른 시간 제한의 변형입니다:

      if(last_tick.time>="2010.05.21 21:00" && last_tick.time<"2010.05.21 22:00") 

그리고 결과입니다:

2010.05.23 20:13:07     Core 1  ticks= 2315   2010.05.21 21:59:59 : Bid = 1.25721  Ask = 1.25738

실제 2318개의 틱이 생성될 때 2315개의 틱이 생성되었습니다. 2318개 중 3개의 틱이 손실되는 것은 정상적인 변형입니다.


 

좋아요. 이 코드를 확인할 수 있다는 데 동의합니다. 정확한 시간 간격을 입력하기만 하면 됩니다. 이 코드를 입력하세요.

      if(last_tick.time>"2010.05.19 12.00.00" && last_tick.time<"2010.05.19 13.00.00") {

5200개의 틱이 어디로 갔는지 설명해주세요.

 

연습 테스트를 계속하는 것이 좋습니다.

이 시계에는 5869개의 틱이 아니라 679개의 틱이 있습니다. 이 기간을 실행한 결과는 다음과 같습니다 - 679 틱입니다. 틱의 100%가 시뮬레이션되었습니다.


분명히 캐시된 시계가 있고(총 679 틱 동안 분 단위가 정확했습니다.) 19일에 잠시 시세를 켰다가 다시 롤백했습니다.

차트에서 "새로 고침" 명령을 호출하고 다시 실행하면 됩니다.

올바른 시간 형식인 YYYY.MM.DD HH:MM:SS에 주의하세요.

 

이 기사에서 다루지 못했던 문제입니다.

MT5에서 실제 볼륨 데이터의 출현과 함께

이 정보가 생성되는 방법

 

나는 핍 트레이더를 완벽하게 잘 이해하지만, 우레인과 프라이빗은 그것을 무시합니다. 그러나 내 TS는 가능한 최대 노이즈 필터링에 반대로 구축되어 TS는 틱의 품질에 영향을받지 않습니다. 이러한 TS는 모든 견적 제공 업체와 함께 사용할 수 있습니다. Urain이 언급 한 NN과 관련하여 - 틱 품질에 민감한 NN에 TS를 구축하는 것은 의미가 없습니다.

저도 개발자들의 입장을 잘 이해합니다.

개발자들이 표준 틱 생성기에 애드온을 추가하여 생성된 틱의 "솜털"을 조절할 수 있고, 틱의 발생 빈도와 배출 크기를 조절할 수 있는 가능성을 타협한 것으로 보입니다. 제 생각에는 이것은 테스트의 '공격성 정도'를 조정하는 것과는 다릅니다. 아마도 테스터에서 생성된 틱과 실제 틱 사이의 일치 정도에 대한 일종의 분석기 변형을 고려하여 사용자가 조정할 수 있는 매개 변수를 표시할 수 있도록 해야 할 것입니다.

어쨌든 개발자는 자신의 이익과 최종 트레이더의 이익을 보호하기 위해 무언가를 해야 합니다. 절충안은 거의 항상 찾을 수 있습니다.

추신 예, 그리고 한 가지 더 있습니다. DC가 매일 매일 필터를 변경하여 누적 된 틱 이력을 쓸모 없게 만들 수 있다면 실제 틱 이력에서도 테스트 후 TS의 향후 동작이 예상했던 것과 상당히 다를 수 있으므로 틱 이력이 필요한 이유를 모르겠습니다 (적절한 실제 테스트가 필요하기 때문에). 그렇기 때문에 실제 틱 이력을 갖는 것보다 사용자가 "솜털"을 조정할 수 있는 변형이 더 바람직하다고 생각합니다.
 
joo писал(а) :

나는 핍 트레이더를 완벽하게 잘 이해하지만, 우레인과 프라이빗은 그것을 무시합니다. 그러나 내 TS는 가능한 최대 노이즈 필터링에 반대로 구축되어 TS는 틱의 품질에 면역이됩니다. .....

그리고 나는 이해없이 라벨을 붙이는 사람들을 이해하지 못합니다. 다시 한 번 첫 페이지의 링크가 있습니다. https://www.mql5.com/ru/forum/115584/page11#150512. 그림을 자세히보세요 !!! 거기에서 모든 것을 볼 수 있습니다-거래가 차트에 표시됩니다.

매개 변수 - 평균 거래 크기 650 핍, 최소 거래 유지 시간 1 시간. 나는 핍맨인가?

틱 분석을 금지하는 이유는 무엇인가요? 들어오는 정보를 원하는 대로 작업하고 분석하는 것을 금지하는 건가요? 당신은 시간별 틱을 작업함으로써 자동으로 소음을 제거했다고 생각합니다 - 이것은 망상입니다, 나는 더 나은 변형을 제안합니다 - 연간 촛대에서 작업하면 시스템이 더 좋고, 더 강력하고, 심지어 잡음이 없으며, 데이터 제공자는 문제가 없으며, OHLC 5 자리 및 "볼륨"을 1 년에 한 번 상인에게 제공하고 거래 할 수 있습니다. 모두가 행복하고, 상인은 강력한 시스템을 가지고 있으며, 소음이 없으며, 공급 업체는 확장에 문제가 없습니다. (과학에는 아이디어가 말도 안되는지 아닌지 이해하기 위해 극단적 인 경우를 대체하는 방법이 있습니다... 자신의 결론을 도출하십시오).

이제 Renat에게 답장을 쓸 것입니다. 모델링 과 실제 인용문 사이에 불일치가있는 부분을 설명하려고 노력할 것입니다. 이것은 그의 아이디어이며, 그는 진드기를 모델링하기로 결정했으며 의 많은 매개 변수가 모델링에서 중요하지 않다고 믿습니다.

우리의 비즈니스는 테스터를 어디에서 무엇을 신뢰할 수 있는지 이해하는 것입니다. 그리고 테스터가 우리를 속일 수 있는 부분을 파악하는 것입니다. 우리는 서로의 마음을 바꿀 수 없습니다. 레나트는 실제보다 더 나은 모델을 만들 수 있다는 착각에 빠져 있습니다. 전 그렇게 생각하지 않아요.

우리는 모델에 대해서만 TC를 연구 할 수있는 기회가 주어지며 생성 된 TC를 실제 데이터에서 실행할 가능성이 없습니다 (나쁘든 좋든, 푹신하든 아니든 상관 없습니다). 우리에겐 이런 기회가 없어요 !!!. 여기 http://www.dukascopy.com/swiss/russian/data_feed/historical/ 에서 적어도 독립적으로 기록을 다운로드하고 테스터에 넣고이 데이터에서 TS를 실행할 수있는 기회를 제공하지 않는 이유는 무엇입니까? 모두 잘 알고있는 결과는 아무도 만난 적이 없습니까? 테스터에서는 모든 것이 좋지만 실생활에서는 TS를 찾았더라도 얼굴에 너무 아름답게 얻을 수 있습니다 https://www.mql5.com/ru/forum . 그리고 그러한 것을 모델링하려면 (발전기의 도움을 받아도) 절대적인 편집증이되어야하고 그러한 것에 저항하고 그러한 조건에서 작동하는 TS를 만들려고 노력해야합니다.....

이제 히스토리 틱과 모델링 된 틱의 수를 비교하는 것에 대해....

예, 그것은 역사에 대한 문제입니다 (이것이 바로 우리가 말하는 것입니다).

서비스 데스크 #14710 2010.05.18 오전 08:42 따옴표 실패에 대해 서비스 데스크에 편지를 썼습니다. 그들은 그것을 정리하는 데 오랜 시간이 걸렸고 해결하지 못한 것 같습니다. 20.05에 모든 따옴표를 수동으로 지우고 모두 새로 다운로드 했으므로 (19 일 실험 중이 었습니다) 그게 아닙니다. 2010.05.20 12:08경에 서비스 데스크의 서신으로 새로 다운로드 한 견적은 모두 새로 다운로드했습니다.

그래서 더 이상 오해가 없을 것입니다. 다시 폴더 기록을 완전히 삭제하고 새 폴더를 업로드했습니다.

  1. 예, 실제로 새로 고침 버튼을 클릭했을 때 기록이 변경되었습니다. 데이터는 틱=678과 일치했습니다.
  2. 데이터 제공자의 입장에서는 마법사처럼 이력을 변경할 수 있어서 좋았습니다.
  3. 트레이더의 입장에서는 악몽입니다. 그런 상황은 제외하세요. 나는이 데이터를 내 터미널에 가지고 있으며 계산에 참여하고 지표에 참여하며 TS를 구축하고 결정을 내리는 데 사용됩니다.

내가 주목 한 또 다른 것, 이 수표는 쓸모가 없습니다.

if(old_ask!=last_tick.ask || old_bid!=last_tick.bid)  

1. 요청 또는 입찰 변경 (판매자 또는 구매자가 해체) 만있을 때 상황이 없습니다. 그리고 이것은 매우 자주 발생합니다. 입찰은 스탠드, 변경 사항 만 요청하고 그 반대의 경우도 마찬가지입니다.

2. 스프레드는 상수와 같습니다. 이것은 또한 현실과 일치하지 않습니다.

3. 모델의 품질을 연구하는 데 도움이 필요한 경우. 가급적 3-4 개의 소스에서 직접 진드기를 수집하여 게시하십시오. 이 진드기의 모델링 결과를 그림의 형태가 아닌 진드기 1000개당 가격이 30포인트씩 내려가는 방식으로 보여주세요. 그러나 짧은 시간 간격으로 큰 움직임을 포함하여 다양한 상황이 있는 하루를 가정해 봅시다.

4. 실제 데이터와의 편차의 수치적 특성( , 적어도 두 축의 RMS)을 제시하세요.

5. 이것은 전 세계에서 수행되며 동일한 초기 데이터를 가진 다른 사람이 동일한 결과를 얻으면 결과를 신뢰할 수 있습니다.

6. 그렇지 않으면 상황은 위와 같고 터미널에 678 개의 틱이 있고 5800 개의 틱이 있습니다. 여기에 진드기 수집의 모든 뉘앙스를 추가하면 진실을 결코 찾을 수 없습니다.

7. 누군가에게 무언가를 보여 주거나 증명하기 위해 2-3 일 동안 앉아서 미안 해요, 이미 제 시간에 모였습니다. 의견을 형성하기 위해 틱이 어떻게 생성되는지 보는 것으로 충분합니다.

8. 기록을 터미널에 저장하고 공급하는 선택된 형식 때문에 우리 거래자들이 정보를 잃는 것은 유감입니다. 레나트, 아무리 노력해도 렌코, 카기의 형태로 차트를 만들 수 없습니다. 그것은 다시 그려지고 실제 데이터에 구축 된 것과 다를 것입니다.

트레이더를 위한 결론 및 권장 사항. 이를 고려할지 여부는 귀하에게 달려 있습니다.

  1. 테스트 모드는 쓸모가 없습니다. 바 내부의 틱 구조가 정확하게 재현되지 않기 때문에 시간 낭비입니다.
  2. 가장 정확한 테스트 방법은 시초가 MT4에서와 동일할 것입니다. 보다 정확하게는 새 막대가 시작되었는지 확인하고 이전 막대의 가격을 가져와야 합니다. 동시에 실제 거래에서는 다음과 같은 데이터의 존재 및 동기화에 대해 "편집증" 검사( https://www.mql5.com/ru/forum/993 )를 사용해야 하며 결과가 여전히 일치하지 않을 수 있습니다.
  3. 작은 스톱 또는 트롤링 값으로 시스템을 테스트하는 경우, 시초가 고점 사이의 불일치 가능성으로 인해 시초가에서도 결과가 다를 수 있습니다. (다시 정렬할 수 있습니다).
  4. 전문가 조언자가 실제로 작동하기 전에 초기화할 때 어떻게든 기록의 정확성을 확인해야 합니다(새로 고침 버튼을 누르는 시뮬레이션).
MetaTrader не отражает реальности ! как с этим бороться? - MQL4 форум
  • www.mql5.com
MetaTrader не отражает реальности ! как с этим бороться? - MQL4 форум
 
Prival :

나는 그들이 무슨 말을하는지 모르고 사람들에게 라벨을 붙이는 사람들을 이해하지 못합니다. 다시 한 번, 첫 페이지의 링크입니다. https://www.mql5.com/ru/forum/115584/page11#150512. 사진을 자세히보세요 !!! 거기에서 모든 것을 볼 수 있습니다-거래가 차트에 표시되어 있습니다.

매개 변수 - 평균 거래 크기 650 핍, 거래 유지 최소 시간 1 시간. 나는 핍맨인가?

왜 제가 틱을 분석하는 것을 금지합니까? 들어오는 정보를 원하는 대로 작업하고 분석하는 것을 금지하는 건가요? 당신은 시간별 틱을 작업함으로써 자동으로 소음을 제거했다고 생각합니다 - 이것은 오해입니다, 저는 더 나은 옵션을 제안합니다 - 연간 촛대에서 작업하면 시스템이 더 좋고, 더 강력하고, 심지어 잡음이 없으며, 데이터 제공 업체는 문제가 없으며, 일년에 한 번 OHLC 및 "볼륨"의 5 자리를 거래자에게 제공하고 거래 할 수 있습니다. 모두가 행복하고, 상인은 강력한 시스템을 가지고 있으며, 소음이 없으며, 공급 업체는 확장에 문제가 없습니다. (과학에는 표현 된 아이디어가 말도 안되는지 아닌지 이해하기 위해 극단적 인 경우를 대체하는 방법이 있습니다... 자신의 결론을 도출 할 수 있습니다).

................

왜 그렇게 격렬하게 반응하는 건가요, 좀 당황 스럽네요? 나는 당신의 관점을 지지하고 있었어요. "핍스퀘이크"라는 단어가 마음에 들지 않아서 취소합니다. 부정적인 감정을 불러 일으켜 죄송합니다.

저는 "파이퍼"라는 단어를 더 넓은 의미로 이해하고 있습니다. 파이퍼는 진드기의 품질에 민감한 TS입니다. 그게 다입니다. 마치 내 게시물의 첫 줄만 읽은 것처럼. 그리고 제 게시물에서 더 나아가 절충안을 제시했습니다.

추신 더 높은 TF로 전환하는 것보다 다른 노이즈 필터링 방법을 사용합니다 (내 게시물에서 굵은 글씨로 표시). 제 연구는 M1에 초점을 맞추고 있습니다.

 
joo писал(а) :

....

이 정보를 개인적으로 받아들이셨다면 사과드립니다. 예, 저는 가족을 위해 거래하고 빵 한 조각을 버는 대신 앉아서 글을 쓰기 때문에 격렬하게 반응합니다. 이것은 오히려 사람이 틱을 분석하면 핍 플레이어라고 생각하는 사람들을 위해 작성되었습니다. 이것은 사실이 아닙니다. 저는 가능한 한 많이 보여주려고 노력합니다.

정성적/비정성적 틱의 개념은 없습니다. 따라서 정성적/비정성적 틱의 총합은 존재하지 않습니다. 틱은 트레이딩 터미널에서 우리에게 주어진 현실입니다. 그것이 우리에게 오면 전문가 어드바이저가 시작되고 우리는 그것을 분석합니다. 여기 있는 사람은 누구나 말할 수 있습니다. 이 틱은 품질이 좋고 이 틱은 그렇지 않습니까?

누군가는 바의 종가만 분석합니다 = 한 시간이 끝날 때 나온 틱입니다. 이 틱은 1초 전에 나온 틱과 품질이 어떻게 다를까요? 누군가가 그것이 더 "푹신하다"고 주장한다고 가정 해 봅시다. 그것은 무엇이며 무엇과 함께 있습니까? 그러한 주장의 부조리를 보시기 바랍니다.

견적 제공 업체는 틱 수준에서 작업하고 예, 필터링하고 여러 공급 업체가 있으며 주어진 시간에 필요하고 수익성이 있다고 생각되는 것을 제공합니다. 그러나 그들은 OHLC가 아니라 틱으로 작업합니다. 그런 다음 으로 접힌 것들입니다. 그곳의 모든 DC는 어리 석고 진드기 수준에서 일하는 것이 자살이라는 것을 알지 못합니까?

그렇지 않다면 그들은 똑똑하고 유능합니까? 왜 우리는 진드기가 아닌 병원의 평균 기온으로 일해야합니까? 진드기에서 원하는 것은 무엇이든, 어떤 종류의 차트든 잘라낼 수 있습니다. 분 단위로는 그렇게 할 수 없는데, 이는 데이터 압축의 손실 형태이기 때문입니다, 돌이킬 수 없는 손실이죠.

동일한 *.rar 정보를 압축하여 다른 사람에게 전달하고 압축을 풀고 읽은 다음 책이라고 가정 해 보겠습니다. 이제 알고리즘을 변경하고 문장의 첫 번째(열기) 및 마지막(닫기) 문자 만 압축을 풀면 가장 두꺼운 문자 ( High의 아날로그)와 가장 얇은 문자 ( Low의 아날로그) 두 개를 더 추가 할 수 있습니다. 어때요? 누구 그런 책을 읽고 싶으세요? 여기 ((((