실시간 예측 시스템 테스트 - 페이지 52

 
grasn >> :

여전히 1.55 미만 : o) 우리는 볼 것입니다

그것과 매우 비슷합니다 ^_^ 적어도 옵션을 보면

비주얼 CME 옵션

 
grasn писал(а) >>

(1) 다차원 배열(모든 차원)을 올바르게 초기화하는 방법. 다음은 내가 이해하는 것처럼 1차원 배열과 다차원 배열에서 발견되는 첫 번째 차원에 대해 올바른 코드입니다.

double memRow[];

ArrayResize(memRow, N);
ArrayInitialize(memRow, 0.0);

그러나 많은 수의 차원은 어떻습니까?

(2) 1차원 및 다차원 배열을 동적으로 확장하는 방법은 무엇입니까?

이 경우 memRow[] 배열은 반복할 때마다 어느 정도 증가해야 하며 단순화를 위해 1로 둡니다. 유사하게 2D 배열의 경우 i와 j의 두 방향으로 증가해야 합니다 - memRow[i ] [제]

(1) 모든 것이 정확하고 여러 차원에 대해 정확히 동일합니다. 초기화는 차원에 관계없이 배열의 모든 요소에 하나의 값을 할당합니다.

(2) 아아, 아무 일도 일어나지 않을 것입니다. MKL4에서는 다차원 배열의 첫 번째 차원의 차원만 변경할 수 있습니다. 아마도 이것은 MKL5에서 수정될 것입니다.

 
NEKSUS_ >> :

그것과 매우 비슷합니다 ^_^ 적어도 옵션을 보면

비주얼 CME 옵션

그런 아름다운 데이터는 어디에서 왔습니까?

 
dentraf >> :

그런 아름다운 데이터는 어디에서 오는가?

데이터 는 가장 평범하고 아름답거나 그렇지 않은 것은 작성자에 따라 다릅니다 ^_^

 

grasn , MQL4 프로그래밍 자체가 끝이 아닌 경우 프로젝트의 가장 중요한 부분, 특히 일반적인 구현을 위해 다차원 배열이 필요한 경우 C로 작성하고 DLL로 첨부하면 안 됩니까? 더 빠르고 편리하게 디버깅할 수 있으며 소스 코드가 더 읽기 쉬워집니다(여러 배열, 간접 인덱싱 및 제한 사항을 우회하기 위해 MQL에서 발명해야 하는 기타 쓰레기가 포함된 종소리와 휘파람 없이). ).

 
grasn >> :

나는 실현(궤적)을 예측하지만 거래 결정을 내릴 때 "빈도" 특성, 예를 들어 예측 범위에서 가장 가능성 있는 트랙터의 평균값 +/- 속도에 중점을 둡니다. 목표 달성 측면에서 더 안정적이지만 이러한 수준에 이르는 가격 경로는 상당히 까다로울 수 있습니다. 물론, 나는 국부적인 반전 영역을 평가하는 두 번째 접근 방식을 연구하고 있습니다. MM의 경우 여기에서 모든 것이 그렇게 간단하지 않고 별도의 심각한 작업인 것 같습니다.

바로 이러한 이유, 즉 대화의 주제 때문에 저는 이제 MathCAD에서 MT로 코드를 전송하고 있습니다. 통계적 의미는 (눈으로) 최소 6개월의 테스트 기간을 갖습니다. 그래서 잠시 후에 상태를 포스팅하겠습니다.


그건 그렇고, 프로그래밍에 대한 질문이 있습니다. 그렇지 않으면 막혔습니다 (나는 여전히 그 프로그래머입니다).

(1) 다차원 배열(모든 차원)을 올바르게 초기화하는 방법. 다음은 내가 이해하는 것처럼 1차원 배열과 다차원 배열에서 발견되는 첫 번째 차원에 대해 올바른 코드입니다.

double memRow[];

ArrayResize(memRow, N);
ArrayInitialize(memRow, 0.0);


그러나 많은 수의 차원은 어떻습니까?


(2) 1차원 및 다차원 배열을 동적으로 확장하는 방법은 무엇입니까?



for(i=0; i<=N-1; i++)

{

...

memRow[];

...

}


이 경우 memRow[] 배열은 반복할 때마다 어느 정도 증가해야 하며 단순화를 위해 1로 둡니다. 유사하게 2D 배열의 경우 i와 j의 두 방향으로 증가해야 합니다 - memRow[i ] [제]


분명히 다차원 배열에 대한 액세스는 함수로 구현되어야 합니다.


예를 들어, 1차원 배열 a[n]이 있습니다.


그런 다음 3D 배열 i,k,j로 사용한다고 가정합니다.


그러면 요소(i,k,j)는 배열 a에서 a[i*3+k*2+j]로 지정됩니다.


등등...

 

유리크스에게

(1) Все правильно и для нескольких измерений точно так же. Инициализация прописывает одно значение во все элементы массива независимо от размерности.

(2) 아아, 아무 일도 일어나지 않을 것입니다. MKL4에서는 다차원 배열의 첫 번째 차원의 차원만 변경할 수 있습니다. 아마도 이것은 MKL5에서 수정될 것입니다.

우리의 안전한 항구에서 만나서 반갑습니다 :o) 그리고 인간의 열정이 불타오르는 이웃 지점들과 달리 갑자기 조용해서 좋습니다. 더 명확한 이해를 위한 작은 요약. 다음과 같은 구조가 있다고 가정해 보겠습니다.

double memRow[];

...

<какая то первая инициализация массива>

j=1

for(int i=0; i<=N-1; i++)

{

if(<какое то условие>)

{

ArrayResize(memRow, j+1);

<запись значений в расширенный массив>

...

}

}


내가 이해하는 한 일부 조건이 트리거될 때 memRow[] 배열의 동적 증가를 제공합니다. 저것들. 배열의 길이보다 앞서, 나는 모른다. 내가 모든 것을 올바르게 이해 했습니까?


마케터 에게

grasn , MQL4 프로그래밍 자체가 끝이 아닌 경우 프로젝트의 가장 중요한 부분, 특히 일반적인 구현을 위해 다차원 배열이 필요한 경우 C로 작성하고 DLL로 첨부하면 안 됩니까? 더 빠르고 편리하게 디버깅할 수 있으며 소스 코드가 더 읽기 쉬워집니다(여러 배열, 간접 인덱싱 및 제한 사항을 우회하기 위해 MQL에서 발명해야 하는 기타 쓰레기가 포함된 종소리와 휘파람 없이). ).

나는 MQL보다 C/C++에서 더 나쁜 프로그래밍을 한다. 그러나 일반적으로 저는 15년 정도 프로그래밍을 하지 않았습니다. 이제 첫 번째 결과를 얻고 싶습니다. 이를 바탕으로 몇 가지 결론을 내릴 것입니다. 물론 속도는 얻지 못하지만 시스템은 어떻게 든 자동 모드에서 작동하기 시작합니다. 적어도 그렇게 되기를 바랍니다. :에 대한)


물론 당신이 옳습니다. 미래에는 dll의 일부 기능과 아마도 전체 시스템을 교체할 것입니다.


분명히 다차원 배열에 대한 액세스는 함수로 구현되어야 합니다.

예를 들어, 1차원 배열 a[n]이 있습니다.

그런 다음 3D 배열 i,k,j로 사용한다고 가정합니다.

그러면 요소(i,k,j)는 배열 a에서 a[i*3+k*2+j]로 주소 지정됩니다.

등등...

흥미로운 아이디어지만, 행렬 차원의 변경으로 이어지는 각 반복에서 실제로 전체 배열에 대한 검색(또는 재구축)이 필요합니다. 비록 가능하지만. 아이디어 주셔서 감사합니다.

 
grasn писал(а) >>

다음과 같은 구조가 있다고 가정해 보겠습니다.

double memRow[];

...

<какая то первая инициализация массива>

j=1

for(int i=0; i<=N-1; i++)

{

if(<какое то условие>)

{

ArrayResize(memRow, j+1);

<запись значений в расширенный массив>

...

}

}

내가 이해하는 한 일부 조건이 트리거될 때 memRow[] 배열의 동적 증가를 제공합니다. 저것들. 배열의 길이보다 앞서, 나는 모른다. 내가 모든 것을 올바르게 이해 했습니까?

약간의 조언. 루프에서 1 요소만큼 배열을 늘릴 필요는 없습니다. 사용된(채워진) 요소의 수를 추가 변수에 저장하고 공간이 충분하지 않은 경우 배열을 12개 또는 2개의 요소(작업에 대해 스스로 추정)만큼 늘립니다. 따라서 상당한 성능 향상을 얻을 수 있습니다. // 터미널의 배열에 메모리가 어떻게 할당되는지는 모르지만. 어레이가 증가할 경우를 대비하여 메모리가 약간의 예비로 할당된 경우 ArrayResize(memRow, j+1)는 매우 빠릅니다.

 
lea >> :

약간의 조언. 루프에서 1 요소만큼 배열을 늘릴 필요는 없습니다. 사용된(채워진) 요소의 수를 추가 변수에 저장하고 공간이 충분하지 않은 경우 배열을 12개 또는 2개의 요소(작업에 대해 스스로 추정)만큼 늘립니다. 따라서 상당한 성능 향상을 얻을 수 있습니다. // 터미널의 배열에 메모리가 어떻게 할당되는지는 모르지만. 어레이가 증가할 경우를 대비하여 메모리가 약간의 예비로 할당된 경우 ArrayResize(memRow, j+1)는 매우 빠릅니다.

감사합니다. 최선을 다할 수는 없지만 시도해 보겠습니다. 반면에 작은 배열의 경우 해당 차원도 알지 못하며 이 구현에서는 배열을 두 번 늘려야 합니다. 처음에는 작은 배열, 그다음에는 큰 배열로 계산된 값이 축적된다. 그러나 지금은 실험할 시간입니다. 조언 감사합니다.

 

유리크스에게

나는 좋은 오래된 골무를 할 것을 제안합니다. 어떤 전략을 사용하고 어디에서나 볼 수 있습니다. o) 300 카운트에 대한 EURUSD M15 예측(월요일부터 수요일 포함):

옵션 1 :



프로세스 엔트로피: 13.84



옵션 2 :


프로세스 엔트로피: 13.01



옵션 3 :


프로세스 엔트로피: 14.36


어떤 골무를 들고 있습니까? :에 대한)

파일:
process_2.rar  5 kb