Gerçek Zamanlı Tahmin Sistemlerinin Test Edilmesi - sayfa 19

 
grasn >> :

biraz sonra tahminin olasılığını değerlendirebileceğim. Soru - ne tür bir korelasyondan bahsediyorsunuz, ne demek istiyorsunuz?

Tahmin sisteminin kalitesini bazı noktalarda değerlendirmenizi sağlayan bir şeyi kastediyorum. 2 sistem alıp her birini puan olarak değerlendirip puanları karşılaştırıp "bu şundan XX daha iyi" diyebilmeniz için.

Genel olarak, böyle bir tahmini ne kadar doğru bir şekilde oluşturabileceğinizi bulmak ilginç olurdu.

Korelasyon katsayısı ilk akla gelen şeydir. Örneğin bunun gibi

Birkaç yıl tarihe geçelim

Tarihte her saat sistemi başlatıyoruz, bir tahmin oluşturuyor, tarihle ilişkisini düşünüyoruz.

O zaman korelasyonun ortalama değeri bir tür sistem puanıdır.

Ve bir tahminde bulunma olasılığının bir tahminini hangi yöntemlerle oluşturuyorsunuz?


 

Herkes meraklı bir parametre denemek istedi - her zaman bölümündeki matematiksel beklenti, ancak zaman yoktu. Oldukça basit bir şekilde hesaplanır, karşılık gelen oluşum sıklıklarıyla fiyat seviyelerinin ürünlerinin toplamıdır. Olasılık, sistemin ilk olasılık durumundan alınır.


Hiç test etmedim, o yüzden söyleyemem. Ancak spor ilgisi adına: 15 dakika, EURUSD, şu andan itibaren günlük tahmin

Durum vektörü (Biraz sığmadı)


Zaman bölümlerinde matematiksel beklenti (1 sayı - 15 dakika)




Muhtemel seviyeler (veya çok olası değil):



 

Lord_Shadows'a

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

Tahminler henüz başlamadı, şimdilik ısınmaya başladık :o))) bize katılın :o)


shtoba'ya

Tahmin sisteminin kalitesini bazı noktalarda değerlendirmenizi sağlayan bir şeyi kastediyorum. Böylece 2 sistem alabilir, her birini puan olarak değerlendirebilir, puanları karşılaştırabilir ve "bu şundan XX daha iyi" diyebilirsiniz.

Böyle bir değerlendirme uzun zamandır şampiyonalar için icat edildi - aslında bu kazanılan puanların sayısıdır. Ekleyebilirsiniz - herhangi bir MM kullanmadan - sadece model çalışır. Ana şey neden bu noktalar? Amaç ne?

Korelasyon katsayısı ilk akla gelen şeydir. Örneğin, birkaç yıllığına tarihe gidiyoruz, tarihte her saat sistemi başlatıyoruz, bir tahmin oluşturuyor, tarihle ilişkisini düşünüyoruz. O zaman korelasyonun ortalama değeri bir tür sistem puanıdır.

Piyasa kendini asla tekrar etmez ve tahminin korelasyonunu 3 sayı ile hesaplarsanız, pek çok "benzer" durum bulacaksınız. Bu sadece katsayı hiçbir şey söylemeyecek.

Ve bir tahminde bulunma olasılığının bir tahminini hangi yöntemlerle oluşturuyorsunuz?

İki yol:

(1) Her numune için tahmin yapılır ve performansı değerlendirilir. Daha sonra, modelden bağımsız olarak frekansı mevcut durumla tahmin ile ilişkilendirmek için daha karmaşık bir analiz yapılırsa, frekanslar hesaplanır.

(2) Daha teorik olan ikinci yöntem, modelin kendisinde bulunur.

 

MUTLU ZAFER GÜNÜ!!!! ZAFERİMİZİN MUTLU GÜNÜ!!! :hakkında)))

Kelimenin tam anlamıyla, 1.3331 seviyesine biraz ulaşmadı, geri kalanıyla her şey yolunda. Şimdi EURUSD ile ilgili merak edilen bir durum var. Aşağıda bilgi entropisinin "haritasının" hesaplanması yer almaktadır:

Maksimum entropi ilkesini göze alırsak, o zaman yaklaşık 1.3445 seviyesine bir geri dönüş beklemeliyiz, ancak diğer yandan dinamik model, 1.3756 seviyesine yükselmek için önemli bir olasılık gösteriyor (hatırlatmama izin verin). fiyat seviyesini istatistiksel bir seviye olarak görüyorum, hangi fiyat civarında). O yüzden Pazartesiye alım satım işlemleri ile başlamak değil, her biri 15'er dakikalık 10-20 sayım kadar beklemek en mantıklısı :o)


Ne düşünüyorsunuz meslektaşlarım? Pazartesi için kimin planları/hedefleri var?


SORULARIM VAR:

( 1 ) MQL öğrenmeye başladı ve MathCAD için en havalı :o) “data fetch” scriptini yaptı:

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);
}


İlk başta, tahminlerin neden hiç gerçekleşmediğini uzun süre anlayamadım, sonra fark ettim - verileri “döndürmeyi” unuttum: o). Başlatma sırasında derleme yapmadan istenen tarihsel aralığa girebileceğim (o da değişir) bir arayüz olacağını düşünerek extern 'u tanıttım. Yani arayüz yok. Scriptler için çalışıyor mu? Bazı uzmanları örnek aldım, orada çalışıyorlar.


( 2 ) Bir şey çözemiyorum, nasıl (örneğin) "geleceğe yazabilirim", tahmine dayalı bir zaman serisi. Aynı zamanda, dikkate alınırken ve verilerin işlenmesi ve analizi ile uğraşırken, örneğin birkaç okuma ile zamanın değiştiğini dikkate alın. Kabaca söylemek gerekirse, bazı tarihsel tarihlerden (veya sıfırdan), yani geleceğe 100 okuma yüklemeniz gerekir. ilk olarak bazı verilerin geçmişe, mevcut çubuktan önce ve bazılarının daha fazla yüklenmesi gerekir. Nedense çalışmıyor.

 
grasn >> :

İlk başta, tahminlerin neden hiç gerçekleşmediğini uzun süre anlayamadım, sonra fark ettim - verileri “döndürmeyi” unuttum: o). Başlatma sırasında, derleme yapmadan istenen tarihsel aralığa girebileceğim (o da değişir) bir arayüz olacağını düşünerek extern'i tanıttım. Yani arayüz yok. Scriptler için çalışıyor mu? Bazı uzmanları örnek aldım, orada çalışıyorlar.

komut dosyaları için çalışmıyor, yalnızca göstergeler ve uzmanlar için. Dış değişkenleri yönetmek istiyorsanız, ihracatçınızı bir gösterge olarak tasarlayın


(2) Bir şey çözemiyorum, nasıl (örneğin) "geleceğe yazabilirim", tahmine dayalı bir zaman serisi. Aynı zamanda, dikkate alınırken ve verilerin işlenmesi ve analizi ile uğraşırken, örneğin birkaç okuma ile zamanın değiştiğini dikkate alın. Kabaca söylemek gerekirse, bazı tarihsel tarihlerden (veya sıfırdan), yani geleceğe 100 okuma yüklemeniz gerekir. ilk olarak, bazı verilerin geçmişe, geçerli çubuktan önce ve bazılarının daha fazla yüklenmesi gerekir. Nedense çalışmıyor.

MT'de gelecek yok. Tüm seriler dizilere yerleştirilir ve bunun tersi de geçerlidir. Dizin 0, geçerli (veya mevcut en son) zamana karşılık gelir, dizin 1 - bir çubuk geri vb. Daha sonra gelecek için -1, -2 vb. dizinlere ihtiyaç duyulur, ancak mql'de böyle olumsuz dizinler yoktur.

Ama başka tüyler de var. SetIndexShift göstergeleri için fonksiyona bakın (Grafiğin başlangıcına göre gösterge çizgisinin ofsetini ayarlama). Bu sadece görsel bir değişim. İndeksler olduğu gibi ve kalır.


Soldaki çizimi belirtilen çubuğa kırpmak için SetIndexDrawBegin (Belirtilen gösterge çizgisinin çiziminin başlaması gereken verilerin başlangıcından itibaren çubuğun sıra numarasının ayarlanması) da vardır.

 

Ve böylece her şey zamanla senkronize olur - dizinizin değerlerini endekslerle değil zamanla işaretleyin ve MT grafiği ile Zaman[bar] ile senkronize edin.

Ancak bir pusu var - grafikteki zaman ekseni düzensiz olabilir. İlk seride grafikte bazı çubuklar eksikse (sunucuyla bağlantı yoktu veya başka bir nedenden dolayı bir delik varsa), o zaman çubuklar bu deliklerin üzerinden atlamak için tam zamanında çizilecektir. Eh, bu sadece "geçmiş" için doğaldır.

 
grasn >> :

..Başlatma sırasında derleme yapmadan istenilen tarihsel aralığa girebileceğim (o da değişir) bir arayüz olacağını düşünerek extern tanıtıldı. Yani arayüz yok. Scriptler için çalışıyor mu? Örnek olarak bazı uzmanları aldım, orada çalışıyorlar ....

#property show_inputs dosyasını komut dosyasına yapıştırın ve komut dosyasını çalıştırdığınızda extern'iniz görünecektir.

 

Shtoba'ya , granit77

Meslektaşlarım, yardımlarınız için teşekkürler. :o) Bu göstergelerden bir şekilde memnun olmayan bir şey :o) Genel olarak ve onlarla birlikte incir. Ticaret için, bu yerel heykel seviyelerini piyasa modelleme kavramına göre hesaplıyorum - fiyat onların etrafında “yoğunlaşmış”, resimde kırmızılar (ya da daha doğrusu, henüz hesaplamadım, sadece hazırlanıyorum) bir usturlap: o))):

Teorik olarak, MT'de çizgiler olarak gösterilebilirler (“trendler”, örneğin, tür OBJ_TREND gibi görünüyor). Bu sadece çok basit bir soru ortaya çıkıyor, "gelecek" zaman için zaman sayımlarının (0, 1, 2, .... (Her biri 15 dakika için)) nasıl yeniden hesaplanacağı. Ben böyle bir yol bulmuşken, TimeCurrent ( ) saniye sayısını alıyoruz, ona bir tahmin değeri ekliyoruz ve bir şekilde bu rakamın zamana dönüştürülmesi gerekiyor. Ancak?

Not: ama yine de bu entropide bir şeyler var. Fiyat mertebesine ulaşmadı ama hareketlenmeye başladı, anlaşsak yine artı olur :o)

 

 
grasn >> :
... Bu sadece çok basit bir soru ortaya çıkıyor, "gelecek" zaman için zaman sayıları (0, 1, 2, .... (her biri 15 dakika için)) nasıl yeniden hesaplanır...
FutureTime=Time[0]+N*Period()*60;
где N - номер бара в будущее от нулевого.
Neden: