트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 201

 
산산이치 포멘코 :

동료에게!

여러 페이지에서 함수 정의 영역의 가장자리에서 Vash와 R의 알고리즘 간의 차이점에 대한 논쟁이 있습니다. 극점은 극점이며 실제로는 그 차이를 무시할 수 있습니다.

그러나 이 경우 훨씬 더 중요한 질문이 있습니다.

모든 기능에 대한 문서는 어디에 있습니까?

이전에는 기능이 유사하므로 R 문서를 가져오고 알고리즘을 설명하거나 R에 표시된 링크를 따라가는 R 문서의 해당 부분을 탐구한다고 생각했습니다. R은 매우 높은 품질을 가지고 있습니다. 문서 및 참조 장치.

분쟁 중에 귀하의 기능이 R과 다르다는 것을 알게 되었습니다. 이는 알고리즘이 다른 소스를 기반으로 하는 다른 기능입니다. 기사 자체에는 이에 대한 내용이 없으며 문서가 없습니다. 그리고 우리는 완전히 다른 맥락에서 Renat에게서 이것에 대해 배웁니다.

실제로 R에서 MQL5로 코드를 이식하는 것은 불가능하다는 분명한 결론이 있습니다.

그리고 그 이유입니다.

이것은 기사를 읽지 않고 여러 번 반복되는 것을 놓쳤기 때문입니다.

  1. 계산의 정확성을 증명하기 위해 소스에 단위 테스트를 첨부했습니다.
  2. 우리는 R의 오류를 이해할 수 있도록 전체 정확성 검사에 엄청난 양의 작업을 수행했습니다.
  3. 작업에서 MQL5, Wolfram Alpha 및 R의 결과를 지속적으로 다시 확인했습니다.
당신과 달리 R 소스를 분해하고, 각 기능에 대해 자세히 생각하고, 일부 기능을 최대 46배까지 가속할 수 있었고, 기사를 작성하고 그것에 대해 책임질 준비를 했습니다.

그러나 그 대신 비평가들은 기사 자체를 신중하게 읽지 않고 R에 대한 지식과 자신감의 오래된 누룩에 대해 진술합니다. 그리고 확실히 증거가 있는 테스트 스크립트를 실행하려고 하지 않습니다.

 

오해를 피하기 위해:

  1. 지정된 R 기능의 번역/아날로그가 올바르게 수행됩니다.
  2. MQL5에서 R의 논리를 거의 일대일로 사용할 수 있으며 MQL5에서는 코드가 더 명확합니다.
  3. MQL5에서 이러한 기능의 모든 코드는 유효성 검사 단위 테스트를 포함하여 깨끗한 소스로 제공됩니다(R의 어디에 있습니까?)
  4. 지정된 함수의 MQL5 계산은 R보다 몇 배 더 빠릅니다.
  5. 우리 전문가들은 수학에 정통하며 R을 쓰는 사람들보다 나쁘지 않습니다(더 나쁨).
이것은 복잡한 수학을 MQL5 표준 라이브러리 에 도입하는 긴 여정의 시작입니다. 이제 Alglib, Fuzzy 및 Stat가 있습니다.

오늘 우리는 R의 plot과 유사한 그래픽 라이브러리의 릴리스를 출시할 것입니다. Stat 라이브러리의 매트 기능의 기능적 확장은 이미 수십 가지 새로운 기능의 형태로 진행 중입니다.

 
양자 :

현재 기능에 대한 설명은 https://www.mql5.com/ru/articles/2742 기사에 있습니다.


감사합니다, 당신의 관점을 이해합니다.

추신.

내가 알기로는 R의 Normal 및 기타 기능에 대한 문서를 보았으므로 복사하여 붙여넣고 링크와 비교하지 않겠습니다.

 
레나트 파트훌린 :

이것은 기사를 읽지 않고 여러 번 반복되는 것을 놓쳤기 때문입니다.

  1. 계산의 정확성을 증명하기 위해 소스에 단위 테스트를 첨부했습니다.
  2. 우리는 R의 오류를 이해할 수 있도록 전체 정확성 검사에 대해 엄청난 양의 작업을 수행했습니다.
  3. 작업에서 MQL5, Wolfram Alpha 및 R의 결과를 지속적으로 다시 확인했습니다.
당신과 달리 R 소스를 분해하고, 각 기능에 대해 자세히 생각하고, 일부 기능을 최대 46배까지 가속할 수 있었고, 기사를 작성하고 그것에 대해 책임질 준비를 했습니다.

그러나 그 대신 비평가들은 기사 자체를 신중하게 읽지 않고 R에 대한 지식과 자신감의 오래된 누룩에 대해 진술합니다. 그리고 확실히 증거가 있는 테스트 스크립트를 실행하려고 하지 않습니다.

감사합니다, 당신의 관점을 이해합니다.

추신.

당신은 내가 기사를 읽지 않았다고 두 번째로 나를 책망합니다.

나는 그것을 읽었습니다. 게다가 함수에서 오류를 발견했습니다(벡터 대신 스칼라가 반환됨). 수정했고 이제 이 오류는 사라졌습니다.

 
산산이치 포멘코 :

감사합니다, 당신의 관점을 이해합니다.

추신.

당신은 내가 기사를 읽지 않았다고 두 번째로 나를 책망합니다.

나는 그것을 읽었습니다. 게다가 함수에서 오류를 발견했습니다(벡터 대신 스칼라가 반환됨). 수정했고 이제 이 오류는 사라졌습니다.

이것은 "실제로 R에서 MQL5로 코드를 이식하는 것은 불가능하다는 명백한 결론이 있습니다."에 대한 대응책입니다.

어제의 새 기사가 아니라 이전 기사를 읽었을 수도 있습니다. 그리고 버그는 없었습니다. 스칼라 리턴이 있는 버전이 있었고(오래 전) 벡터 함수를 추가했습니다. 오래된 기사의 시간 이후로 라이브러리는 심각하게 성장했으며 본질적으로 다시 작성되었습니다.

내 말이 맞았습니다. 당신은 새 기사를 읽지 않았습니다.

"당신은 그런 기능이 없고 당신이 스스로 생각해 냈다"는 이야기가 더 이상 없기를 바랍니다.
 
알렉세이 버나코프 :

t 분포에 관하여. 이 오류는 최신 버전의 R에서 재현했습니다. 하지만 알고리즘의 본질을 깊이 파고들지는 않았습니다. 수정이 정말 필요했음을 인정합니다.

R 지원 팀에 질문을 하려고 합니다.

기사 "연속 분포의 이산 혼합물 계산"은 저자의 웹사이트 에 있습니다.

기사의 저자는 문제가 시리즈의 수렴 기준에 있다고 말합니다.


제안된 반복 알고리즘 7.2 구현 https://github.com/neurodebian/afni_removeme_eventually/blob/master/nct.c

그러나 재귀 계산에는 오류가 있습니다. 예를 들어 베타 함수의 경우:


#include <Math\Stat\Math.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   double a= 1 ;
   double b= 1 ;
   double r_beta=MathBeta(a,b);
   for ( int j= 0 ; j< 40 ; j++)
     {
       if (j> 0 )
        {
         r_beta*=((a+j- 1 )/(a+b+j- 1 ));
        }
       double beta=MathBeta(a+j,b);
       PrintFormat ( "%d   error=%5.20e" ,j,beta-r_beta);
     }
  }

2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 0 error=0.00000000000000000000e+00
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 1 오류=-5.55111512312578270212e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 2 error=0.00000000000000000000e+00
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 3 오류=1.11022302462515654042e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 4 오류=1.38777878078144567553e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 5 오류=-2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 6 error=2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 7 error=1.66533453693773481064e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 8 오류=-2.91433543964103591861e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 9 error=-1.24900090270330110798e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 10 오류=-2.77555756156289135106e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 11 오류=-1.24900090270330110798e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 12 error=5.68989300120392726967e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 13 오류=-2.91433543964103591861e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 14 오류=-5.55111512312578270212e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 15 error=-4.85722573273505986435e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 16 error=-1.87350135405495166196e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 17 error=5.27355936696949356701e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 18 error=-1.04083408558608425665e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 19 오류=-3.40005801291454190505e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 20 error=-3.26128013483639733749e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 21 error=4.57966997657877072925e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 22 error=-3.19189119579732505372e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 23 error=1.52655665885959024308e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 24 error=5.55111512312578270212e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 25 error=-6.24500451351650553988e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 26 error=-2.70616862252381906728e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 27 error=4.85722573273505986435e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 28 error=4.64905891561784301302e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 29 error=-8.32667268468867405318e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 30 error=-9.02056207507939689094e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 31 오류=-2.98372437868010820239e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 32 error=2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 33 error=2.74086309204335520917e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 34 오류=-3.43475248243407804694e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 35 error=2.08166817117216851329e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 36 error=-4.16333634234433702659e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 37 error=8.67361737988403547206e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 38 error=-1.21430643318376496609e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 39 error=-2.18575157973077693896e-16

CDF를 계산하려면 정확도가 충분할 수 있지만 높은 정확도로 분위수를 반전하는 경우 정확도가 충분하지 않을 수 있습니다.

따라서 분위수 계산 알고리즘에서는 반복 계산 없이 직접 합을 사용했습니다.

 
레나트 파트훌린 :

이것은 "실제로 R에서 MQL5로 코드를 이식하는 것은 불가능하다는 명백한 결론이 있습니다."에 대한 대응책입니다.

"당신은 그런 기능이 없고 스스로 생각해냈다"는 이야기가 더 이상 없기를 바랍니다.

나는 무언가에 대해 쓰기 전에 읽는 나쁜 버릇이 있습니다. 나는 "초안"을 다룬 적이 없지만 장점에 대해서만 이야기했습니다.

처음이 아니라 제 관점을 당신에게 전달할 수 없다는 것이 밝혀졌습니다.

그러므로 나 없이는.

진심으로 레나트의 행운을 빕니다!

 

여러분, 100500 페이지에 대한 주장은 무엇입니까? 누가 수학을 더 잘합니까? 당신에게 근본적인 차이점은 무엇입니까 - 함수는 0으로 정의됩니다 - 정의되지 않았으며 기사에 썼습니다 - R의 오류 - 또는 오류가 아닙니다. 마치 그들이 여기에서 당신의 아이에 대해 이야기하고 그가 배불렀다고 말하는 것과 같습니다 ... 그리고 당신은 그를 전심으로 옹호했습니다.

일반적인 메시지는 오랫동안 명확했습니다. R과 통합된 기능이 내장되어 있지 않으며 앞으로도 없을 것입니다. 당연하게 여기고 MT5에 내장된 칩을 사용하고, 개발자에게 새 칩을 요청하고, 누락된 것이 있으면 직접 작성하십시오. 결국 목발을 통해 MT5부터 R을 계속 사용하십시오. 다행히 mt4r입니다.

 
@SanSanych Fomenko 참여에 감사드립니다. 하지만 우리의 입장을 반박할 수 없었고 실제 스케치는 실패했습니다.
 
레나트 팻쿨린 :

오해를 피하기 위해:

  1. 지정된 R 기능의 번역/아날로그가 올바르게 수행됩니다.
  2. MQL5에서 R의 논리를 거의 일대일로 사용할 수 있으며 MQL5에서는 코드가 더 명확합니다.
  3. MQL5에서 이러한 기능의 모든 코드는 유효성 검사 단위 테스트를 포함하여 깨끗한 소스로 제공됩니다(R의 어디에 있습니까?)
  4. 지정된 함수의 MQL5 계산은 R보다 몇 배 더 빠릅니다.
  5. 우리 전문가들은 수학에 정통하며 R을 쓰는 사람들보다 나쁘지(더 좋지) 않습니다.
이것은 복잡한 수학을 MQL5 표준 라이브러리 에 도입하는 긴 여정의 시작입니다. 이제 Alglib, Fuzzy 및 Stat가 있습니다.

오늘 우리는 R의 plot과 유사한 그래픽 라이브러리의 릴리스를 출시할 것입니다. Stat 라이브러리의 매트 기능의 기능적 확장은 이미 수십 가지 새로운 기능의 형태로 진행 중입니다.

그냥 휴일이야
사유: