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

 
grasn >> :

조금 후에 나는 그 예측의 확률을 평가할 수 있을 것입니다. 질문 - 어떤 종류의 상관 관계를 말하는 것입니까? 무엇을 의미합니까?

어떤 점에서 예측 시스템의 품질을 평가할 수 있는 것을 의미합니다. 2개의 시스템을 선택하고 각각을 점수로 평가하고 점수를 비교하고 "이 시스템이 저 시스템보다 XX 더 좋습니다"라고 말할 수 있도록

일반적으로 그러한 추정치를 얼마나 더 정확하게 만들 수 있는지 알아내는 것이 흥미로울 것입니다.

상관 계수가 가장 먼저 떠오른 것입니다. 예를 들어 다음과 같이

몇 년 동안 역사 속으로 들어가자

역사의 매시간 우리는 시스템을 시작하고 예측을 구축하고 역사와의 상관 관계를 고려합니다

그러면 상관관계의 평균값은 일종의 시스템 점수입니다.

그리고 어떤 방법으로 예측 확률을 추정합니까?


 

모든 사람들은 흥미로운 매개변수인 각 시간 섹션의 수학적 기대치를 시험해보고 싶었지만 시간이 없었습니다. 그것은 매우 간단하게 계산되며 해당 발생 빈도에 따른 가격 수준의 곱의 합계입니다. 확률은 시스템의 초기 확률 상태에서 가져옵니다.


제가 테스트를 전혀 해보지 않아서 말씀드릴 수는 없습니다. 하지만 스포츠 관심을 위해: 15분, EURUSD, 지금부터 일일 예보

상태 벡터(약간 맞지 않음)


시간 섹션에 대한 수학적 기대치(1 카운트 - 15분)




가능성이 있는 수준(또는 가능성이 거의 없음):



 

Lord_Shadows에게

Переименовали ветку. Теперь уже не игра, а тестирование, и кончились прогнозы.

우리가 지금 워밍업이라는 의미에서 예측은 아직 시작되지 않았습니다 :o))) 우리와 함께하십시오 :o)


쉬토바

어떤 점에서 예측 시스템의 품질을 평가할 수 있는 것을 의미합니다. 2개의 시스템을 가지고 각각을 점수로 평가하고 점수를 비교하고 "이것이 저것보다 XX 더 낫다"라고 말할 수 있도록 일반적으로 그러한 평가가 얼마나 더 정확하게 구축 될 수 있는지 알아내는 것이 흥미로울 것입니다.

이러한 평가는 챔피언십을 위해 오랫동안 발명되었습니다. 실제로 이것은 획득한 점수입니다. MM을 사용하지 않고 모델만 작동하도록 추가할 수 있습니다. 가장 중요한 것은 왜 이러한 점입니까? 점은 무엇인가?

상관 계수가 가장 먼저 떠오른 것입니다. 예를 들어, 우리는 몇 년 동안 역사 속으로 들어가고 역사의 매시간 우리는 시스템을 시작하고 예측을 구축하고 역사와의 상관 관계를 고려합니다. 그러면 상관관계의 평균값은 일종의 시스템 점수입니다.

시장은 결코 반복되지 않으며, 예측의 상관관계를 3개로 계산하면 "유사한" 상황을 많이 찾을 수 있습니다. 그것은 단지 계수가 아무 말도하지 않을 것입니다.

그리고 어떤 방법으로 예측 확률을 추정합니까?

두 가지 방법:

(1) 각 샘플에 대해 예측하고 성능을 평가합니다. 다음으로, 모델에 관계없이 빈도와 현재 상황을 예측과 연관시키기 위해 더 복잡한 분석이 수행되는 경우 빈도가 계산됩니다.

(2) 더 이론적인 두 번째 방법은 모델 자체에 있습니다.

 

행복한 승리의 날!!!! 우리 승리의 행복한 날!!! :에 대한)))

말 그대로 1.3331의 수준에 조금 도달하지 않았으며 나머지는 모든 것이 정상입니다. 이제 EURUSD에 이상한 상황이 있습니다. 다음은 정보 엔트로피의 "지도" 계산입니다.

최대 엔트로피의 원칙을 유념하면 약 1.3445 수준으로 롤백을 예상해야 하지만, 반면에 동적 모델은 1.3756 수준까지 올라갈 가능성이 크다(상기시켜드리자면 나는 가격 수준을 통계적 수준으로 간주하며 그 주변의 가격). 그래서 가장 합리적인 방법은 월요일부터 거래를 시작하지 않고 15분씩 10~20카운트 정도 기다리는 것입니다:o)


동료 여러분은 어떻게 생각하십니까? 월요일에 계획/목표가 있는 사람은 누구인가요?


질문이 있습니다:

( 1 ) MQL 학습을 시작하고 MathCAD를 위한 가장 멋진 :o) "데이터 가져오기" 스크립트를 만들었습니다.

extern int diapason = 7000;


int start()
{
double process[];

GetHistoryProcess(process, diapason);
CreateFlowData(process);

return(0);
}


void GetHistoryProcess(double signal[], int window)
{
int n;
int i;

double y[];

ArrayResize(y, window);
ArrayInitialize(y, 0.0);

ArrayResize(signal, window);
ArrayInitialize(signal, 0.0);

i=0;

for(n=0; n<=window-1; n++)
{
y[i]=(High[window-n-1]+Low[window-n-1])/2.0;
i=i+1;
}

ArrayCopy(signal, y, 0, 0, WHOLE_ARRAY);

return(0);
}


void CreateFlowData(double process[])
{
int i;
int N;
int Handle;

string FILE="data.csv";

N=ArraySize(process);
Handle=FileOpen(FILE, FILE_CSV|FILE_WRITE,";");

if(Handle<0)
{
if(GetLastError()==4103)
{
Alert("Нет файла с именем ",FILE);
}
else
{
Alert("Ошибка при открытии файла ",FILE);
}

return;
}

for(i=0; i<=N-1; i++)
{
FileWrite(Handle, process[i]);
}

FileClose(Handle);

return(0);
}


처음에는 예측이 전혀 이루어지지 않은 이유를 오랫동안 이해할 수 없었습니다. 그런 다음 깨달았습니다. 데이터를 "인계"하는 것을 잊었습니다. o). 초기화하는 동안 컴파일하지 않고 원하는 기록 범위(또한 변경됨)를 입력할 수 있는 인터페이스가 있을 것이라고 생각하여 extern 을 도입했습니다. 그래서 인터페이스가 없습니다. 스크립트에서 작동합니까? 일부 전문가를 예로 들었습니다. 그들은 그곳에서 일합니다.


( 2 ) 나는 무언가를 알아낼 수 없습니다. (예를 들어) 어떻게 예측 시계열을 "미래에 쓸" 수 있습니까? 동시에 데이터 처리 및 분석을 고려하고 시간을 여러 번 읽는 동안 시간이 이동했다는 점을 고려하십시오. 대략적으로 말하자면, 과거 날짜(또는 0)에서 미래로 100개의 판독값을 로드해야 합니다. 첫 번째 일부 데이터는 현재 막대 이전에 히스토리에 로드해야 하고 일부는 더 로드해야 합니다. 어떻게 든 작동하지 않습니다.

 
grasn >> :

처음에는 예측이 전혀 이루어지지 않은 이유를 오랫동안 이해할 수 없었습니다. 그런 다음 깨달았습니다. 데이터를 "인계"하는 것을 잊었습니다. o). 초기화하는 동안 컴파일하지 않고 원하는 이력 범위(또한 변경됨)를 입력할 수 있는 인터페이스가 있을 것이라고 생각하여 extern을 도입했습니다. 그래서 인터페이스가 없습니다. 스크립트에서 작동합니까? 일부 전문가를 예로 들었습니다. 그들은 그곳에서 일합니다.

스크립트에서는 작동하지 않으며 지표 및 전문가용으로만 작동합니다. 외부 변수를 관리하려면 내보내기를 지표로 설계하십시오.


(2) 나는 무언가를 알아낼 수 없습니다. (예를 들어) 어떻게 예측 시계열을 "미래에 쓸" 수 있습니까? 동시에 데이터 처리 및 분석을 고려하고 시간을 여러 번 읽는 동안 시간이 이동했다는 점을 고려하십시오. 대략적으로 말하자면, 과거 날짜(또는 0)에서 미래로 100개의 판독값을 로드해야 합니다. 첫 번째 일부 데이터는 현재 막대 이전에 히스토리에 로드해야 하고 일부는 더 로드해야 합니다. 어떻게 든 작동하지 않습니다.

MT에는 미래가 없습니다. 모든 시리즈는 배열에 배치되며 그 반대의 경우도 마찬가지입니다. 인덱스 0은 현재(또는 사용 가능한 가장 최근) 시간에 해당하고, 인덱스 1은 한 바 뒤로 이동하는 식입니다. 그런 다음 인덱스 -1, -2 등이 미래에 필요하지만 mql에는 그러한 음수 인덱스가 없습니다.

그러나 다른 퍼지가 있습니다. 지표 SetIndexShift(차트 시작을 기준으로 지표 라인의 오프셋 설정)에 대한 기능을 살펴보십시오. 이것은 단지 시각적인 변화입니다. 인덱스는 그대로 유지됩니다.


또한 SetIndexDrawBegin(지정된 표시기 라인의 그리기가 시작되어야 하는 데이터의 시작 부분에서 막대의 서수 설정)을 사용하여 왼쪽의 도면을 지정된 막대로 트리밍할 수 있습니다.

 

그리고 모든 것이 시간적으로 동기화되도록 - 인덱스가 아닌 시간으로 시리즈의 값을 표시하고 시간[막대]으로 MT 차트와 동기화합니다.

그러나 매복이 있습니다. 차트의 시간 축이 고르지 않을 수 있습니다. 초기 시리즈에서 차트에 일부 막대가 누락된 경우(서버와 연결되지 않았거나 다른 이유로 구멍이 있는 경우) 막대가 시간에 따라 계속 그려지고 이 구멍을 건너뛸 수 있습니다. 글쎄, 이것은 "과거"에 대해서만 자연 스럽습니다.

 
grasn >> :

..초기화 중에 컴파일하지 않고 원하는 기록 범위(또한 변경됨)를 입력할 수 있는 인터페이스가 있을 것이라고 생각하여 extern을 도입했습니다. 그래서 인터페이스가 없습니다. 스크립트에서 작동합니까? 나는 일부 전문가를 예로 들었습니다. 그들은 거기에서 일합니다 ....

#property show_inputs 를 스크립트에 붙여넣으면 스크립트를 실행할 때 extern이 나타납니다.

 

Shtoba 에 , granit77

동료 여러분, 도와주셔서 감사합니다. :o) 이 지표들에 뭔가 불만이 있습니다. :o) 일반적으로, 그리고 무화과입니다. 거래의 경우 시장 모델링의 개념에 따라 이러한 지역 조각상 수준을 계산합니다. 가격은 주변에 "집중"되어 있으며 그림에서 빨간색으로 표시됩니다(아니면 아직 계산하지 않았으므로 준비 중입니다. astrolabe: o)):

이론적으로 MT에서는 라인으로 표시될 수 있습니다(예: 유형이 OBJ_TREND인 것처럼 "추세"). 그것은 "미래" 시간에 대한 시간 카운트(0, 1, 2, ....(각각 15분))를 다시 계산하는 방법에 대한 매우 간단한 질문입니다. 그런 경로를 찾는 동안 TimeCurrent ( )를 초 단위로 가져와 여기에 예측 값을 추가하고 어떻게든 이 수치를 시간으로 변환해야 합니다. 그러나 ~함에 따라?

추신: 하지만 이 엔트로피에는 여전히 무언가가 있습니다. 가격은 도달하지 않았지만 움직이기 시작했고, 우리가 거래를 한다면 여전히 플러스가 될 것입니다 :o)

 

 
grasn >> :
... "미래" 시간에 대한 시간 카운트(0, 1, 2, ....(각각 15분))를 다시 계산하는 방법은 매우 간단한 질문입니다...
FutureTime=Time[0]+N*Period()*60;
где N - номер бара в будущее от нулевого.