Göstergeler: Price prediction by Nearest Neighbor found by a weighted correlation coefficient - sayfa 2

 
tolga gogebakan:

Bir uyarı var. Lütfen bana yardımcı olabilir misiniz? Şimdiden teşekkür ederim.

İyi huyludur - göstergenin çalışmasını etkilemediği için olduğu gibi kullanmaya devam edin
 
Merhaba Vladimir, güzel, harika, şaşırtıcı ve inanılmaz fütüristik ve ileri düşünce ve fikirlerinizi paylaşma nezaketiniz için çok teşekkürler. Ben senin mql4 veya 5 kodlama hayranınım. Bu şekilde devam edelim. McLaden'in kısa açıklamalı ama çok faydalı yardımı için de çok teşekkür ederim. Tanrı hepinizi korusun.
 

Yazara tebrikler!

Her şey akıllıca ve derli toplu yazılmış. Teşekkür ederim.

Hala yapıyorsanız, iyileştirme dilekleri var.

1. Geçmişte bir komşu değil, uzunluğuna (Nfut) göre geriye kaydırılmış tahminin son noktasını çizmek gerekir. Yani, geçmişteki bazı aralıklar için tahmini hesaplayın ve çizin. O zaman tahminin kalitesi açık olacaktır. Ancak göstergenin başlangıçta düşünmesi uzun zaman alacaktır.....

2. Bir komşu çok azdır! Sonuç kararsızdır.

Teorik olarak, komşu sayısını = başlangıç vektörünün (yani modelin) 3 uzunluğunu almak ve ardından tüm tahminlerin ortalamasını almak gerekir (ve daha iyisi, korelasyon katsayılarıyla orantılı ağırlıklarla).

 

Hey Vladimir,

Bir özelleştirme işi için sizinle bu gösterge hakkında konuşmak istedim.

Mümkünse benimle iletişime geçin: najnudel@gmail.com.

tks

 
Doğru oranın biraz 50:50 olduğunu düşünüyorum, ancak tahmin edilen sonuçlar manuel ticaret için yararlıdır.
 

Benim amaçlarım için kullandığım geliştirilmiş bir en yakın komşu algoritmam var. Bahsedilen dezavantajların üstesinden geliyor. Fikir basit. Geçmiş örüntülerde en yakın komşuyu ararken, tüm geçmiş örüntüleri, bunların bilinen gelecek örüntülerini ve bu geçmiş örüntüler ile mevcut örüntü arasındaki korelasyon katsayılarını saklayın. Bu korelasyon katsayılarına, tüm geçmiş korelasyonların vektörü olan r diyelim. En yüksek abs (r) değerine sahip geçmiş deseni en yakın komşu olarak seçmek yerine, TÜM geçmiş desenleri "en yakın komşu" olarak kullanın, ancak katkıları exp(sw*abs(r)) olarak ağırlıklandırılır; burada sw, en yüksek korelasyon katsayılarına sahip geçmiş desenleri tahmin etme seçiciliğini kontrol eden, kullanıcı tarafından seçilen bir üsteldir. Çok büyük bir sw değeri, tahminin yalnızca en güçlü korelasyona sahip komşudan ("en yakın komşu") etkilenmesine neden olacaktır. Çok küçük bir sw değeri ise tüm geçmiş örüntüleri eşit derecede önemli kılacaktır. Fikri anlayanlar yukarıdaki kodu yeniden yazabilir ve yeni bir gösterge yayınlayabilir. Matlab'daki uygulama aşağıdadır. Yalnızca pozitif korelasyona sahip geçmiş desenleri dahil etmeniz gerekiyorsa, r = abs (...) içindeki abs () işlevini kaldırın. Daha sonra negatif korelasyonlu geçmiş modeller otomatik olarak en düşük ağırlığa sahip olacaktır.

% Inputs
% sp is a time series to be predicted as a column vector
np=100;             	% past pattern length
nf=np;              	% future pattern length
sw=100;             	% weighting exponent in kNN

% Compute correlations to past patterns in sp
m  =numel(sp);		% number of bars in sp
x  =sp(1:m-np-nf);      % past patterns
y  =sp(m-np-nf+1:m-nf); % current past pattern
f  =sp(np+1:m-nf);      % future patterns
yf =sp(m-nf:m);         % current future pattern
Sx =movsum(x,np,'Endpoints','discard');
Sxx=movsum(x.^2,np,'Endpoints','discard');
Sy =sum(y);
Syy=sum(y.^2);
Sxy=conv(x,flip(y),'valid');
num=Sxy*np-Sx*Sy;
den=Sxx*np-Sx.*Sx;
r  =abs(real(num./sqrt(den)/sqrt(Syy*np-Sy*Sy)));

% Find nearest neighbor and extrapolate
w=exp(sw*r);
wsum=sum(w);
w=w/wsum;		% weighting coefficients of past patterns
a1=num./den;
a0=(Sxx.*Sy-Sx.*Sxy)./den;
a1=w.*a1;
a0=w.*a0;
a0_sum=sum(a0);
xp=conv(x,flip(a1),'valid')+a0_sum; % composite matched past pattern
xf=conv(f,flip(a1),'valid')+a0_sum; % predicted future pattern
xf=[xp(end);xf];

% Plot
figure
plot(1:np,y,'-k'); hold on;
plot(1:np,xp,'-b'); hold on;
plot(np:np+nf,yf,':k'); hold on;
plot(np:np+nf,xf,'-r');
 
Vladimir kullanıcı tarafından seçilen bir üsteldir. Çok büyük bir sw değeri, tahminin yalnızca en güçlü korelasyona sahip komşudan ("en yakın komşu") etkilenmesine neden olacaktır. Çok küçük bir sw değeri ise tüm geçmiş örüntüleri eşit derecede önemli kılacaktır. Fikri anlayanlar yukarıdaki kodu yeniden yazabilir ve yeni bir gösterge yayınlayabilir. Aşağıda Matlab'daki uygulama yer almaktadır. Yalnızca pozitif korelasyona sahip geçmiş desenleri dahil etmeniz gerekiyorsa, r = abs (...) içindeki abs () işlevini kaldırın. Bu durumda negatif korelasyona sahip geçmiş modeller otomatik olarak en düşük ağırlığa sahip olacaktır.

Vladimir, fikri anlıyorum.
Ama yine de rastgele bir tahmin olacak.

Yaklaşık 10 yıl önce desen bulma konusunda çok deney yaptım. Yansıtma, ters çevirme, paternlerin toplamı ile. Sonuç - bir paternin geleceğe devam etmesinde tam bir rastgelelik. Tüm tesadüfler rastgeledir.

 
Nikolai Semko #:

Vladimir, anladım.
Ama yine de rastgele bir tahmin olacak.

Yaklaşık 10 yıl önce paternos arama ile çok fazla deney yaptım. Yansıtma, ters çevirme, paternlerin toplamı ile. Sonuç - bir paterni geleceğe doğru devam ettirmede tam bir rastgelelik. Tüm tesadüfler rastlantısaldır.

Katılıyorum.

 
Nikolai Semko #:

Vladimir, anladım.
Ama yine de rastgele bir tahmin olacak.

Yaklaşık 10 yıl önce paternos arama ile çok fazla deney yaptım. Yansıtma, ters çevirme, paternlerin toplamı ile. Sonuç - bir paterni geleceğe doğru devam ettirmede tam bir rastgelelik. Tüm tesadüfler rastlantısaldır.

Gerçek zamanı düşünürseniz, hiç de değil. Benzer anlarda benzer hareketler. Zaman faktörünü sistemden çıkarırsanız rastgelelik elde edersiniz.

 
okayjustask manuel ticaret için kullanışlıdır.

bu kodun küçük iyileştirmelere ihtiyacı var ama tamamjustask fikriniz mantıklı