Liczby losowe

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
f16_rocket
Stały bywalec
Stały bywalec
Posty: 56
Rejestracja: 09 wrz 2011, 01:54

Nieprzeczytany post autor: f16_rocket »

no czekamy słońce

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Nieprzeczytany post autor: Esco »

Najpierw wrzuciłem dll ze standardowym generatorem wbudowanym w Delphi jednak ciągle widziałem na wykresie patterny w stylu potrójnego szczytu\ dnia, linie SR wybicia z konsolidacji.

Myślę sobie tak być nie może...

Ściągnąłem dane z random.org generowane na podstawie pomiarów szumu atmosferycznego. (256 kb)

Skopiowałem ta próbkę 8 razy generując plik o wielkości 2048 kb.
Przejechałem po tych danych 256 bitowym AES'em.

http://pl.wikipedia.org/wiki/Advanced_E ... n_Standard

Wrzuciłem to do testera ze strony:
http://www.fourmilab.ch/random/

otrzymując poniższe wyniki


Entropy = 7.999909 bits per byte.

Optimum compression would reduce the size
of this 2097152 byte file by 0 percent.

Chi square distribution for 2097152 samples is 264.73, and randomly
would exceed this value 32.46 percent of the times.

Arithmetic mean value of data bytes is 127.4840 (127.5 = random).
Monte Carlo value for Pi is 3.145491739 (error 0.12 percent).
Serial correlation coefficient is 0.000356 (totally uncorrelated = 0.0).
Przerobiłem kod w mql tak żeby mógł pobierać dane z tego pliku uwzględniając każdy bit wczytanej liczby. (nie tylko ostatni z każdej losowanej liczby jak to było poprzednio)

Dane:
http://chomikuj.pl/skco/random

Kanał juz zdecydowanie trudniej narysować. Fibo czasami się trafi. Podobnie jak różne formacje.

Kod: Zaznacz cały

---------------------//+------------------------------------------------------------------+
#property copyright "reptile"
#property link      "http://www.reptile.pl"
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
 //+------------------------------------------------------------------+
extern string Instrument = "RandomChart";
extern double digit = 0.0001;
extern bool Invert=false;
//+------------------------------------------------------------------+
//---- buffers
double ExtMapBuffer1[];
//--- other
double quote;
int handle=0;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorShortName(Instrument);
   handle = FileOpen("random.bin",FILE_BIN | FILE_READ); // otwarcie pliku z  losowymi danymi
   FileSeek(handle,10240,SEEK_CUR); // przesunięcie można dobrać według uznania mając na uwadze oczywiście wielkość pliku 
   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{   
   int limit;
   int counted_bars=IndicatorCounted();
   //---- check for possible errors
   if(counted_bars<0) return(-1);
   //---- the last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   //---- main loop
double tick = quote;    
   for(int i=0; i<limit; i++)
   {
//+------------------------------------------------------------------+
//---StartPrice
if (i==0){
quote=1+digit;
}

//---TimeFrame
int M1 = 60;
int M5 = 5*M1;
int TF = M1;

//---ChartGenerator

int BitCount=8;
int BitBuf=0;

for(int t=0; t<TF; t++)
   {
      if(BitCount==8) // jeżeli wszystko wykorzystane wczytuj nowy.
         {
            BitBuf=FileReadInteger(handle,1);
            BitCount=0;
         }
      int u= (BitBuf >> BitCount) &1 ; // wykorzystanie wszystkich bitów.
      BitCount=BitCount+1;
      if (u==1) {tick =tick+digit;} else {tick =tick-digit;}   
   }
   
double index = tick;

//double index = iClose(Instrument,0,i);
//+------------------------------------------------------------------+
if (Invert==false){     ExtMapBuffer1[i] = index ;}
if (Invert==true){      ExtMapBuffer1[i] = 1/index ;}
}
//+------------------------------------------------------------------+   
//---end     
return(0);
}
//+---------------------------------------------+  
Dodano po 1 minutach:

reptile

Tak mi przyszło do głowy ze czasami ticki maja wartość większa niż 1.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
reptile
Maniak
Maniak
Posty: 2799
Rejestracja: 13 gru 2008, 13:48

Nieprzeczytany post autor: reptile »

skco pisze:Tak mi przyszło do głowy ze czasami ticki maja wartość większa niż 1.
Już mi zwracano uwagę na to.. nie wiem jak to rozwiązać w mt4
Rozkład P mi nie pasuje

if (u==1 && d==0) tick =tick+digit; //up
if (u==0 && d==1) tick =tick-digit; //down
if (u==1 && d==1) tick =tick; //right
if (u==0 && d==0) tick = ? ; // pomnóż up lub down lub right
skco pisze:Kanał juz zdecydowanie trudniej narysować. Fibo czasami się trafi. Podobnie jak różne formacje.
Może jesteś kiepski z AT i fibo :mrgreen: hehe :D
Nie no.. na zwykłej close price na rynku też mniej fibo widać, ale na OHLC myślę rozdzielczość PP dla fibo rośnie 3 razy na jednostkę min (zaleznie od techniki). Nie dotyczy to też pewnie Fibo.. ale pozostałej ATwynalazczości.
Mam jakieś candle pod mt4, ale to z obiektów i raczej ich za dużo by było.. w mt5 byłoby pewnie łatwiej z tym..
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
R.E.P.T.I.L.E. - Robotic Electronic Person Trained for Infiltration and Logical Exploration (off-line,only e-mail)

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Nieprzeczytany post autor: Esco »

Takich podwójnych ticków raczej jest zdecydowanie mniej.

Tutaj rodzi się pytanie o proporcje. Trzeba by badać częstość występowania w danych rzeczywistych.
Ostatnio zmieniony 05 gru 2011, 17:24 przez Esco, łącznie zmieniany 1 raz.

Awatar użytkownika
f16_rocket
Stały bywalec
Stały bywalec
Posty: 56
Rejestracja: 09 wrz 2011, 01:54

Nieprzeczytany post autor: f16_rocket »

czerstwosc? do you mean czestotliwosc
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Nieprzeczytany post autor: Esco »

częstość - już poprawione.

Awatar użytkownika
f16_rocket
Stały bywalec
Stały bywalec
Posty: 56
Rejestracja: 09 wrz 2011, 01:54

Nieprzeczytany post autor: f16_rocket »

o teraz. nie moglem darowac tej legendzie
+ perform_simulations
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

jinx
Stały bywalec
Stały bywalec
Posty: 23
Rejestracja: 04 sty 2011, 21:02

Nieprzeczytany post autor: jinx »

A ja zamieszam :P

Moim zdanie to co robicie wcale nie udawadnia, że Fibo to złudzenie.
Raczej udawadniacie, że jest super uniwersalne (sprawdza się nawet dla wykresów losowych ;) - bo czemu nie, to trzeba uzasadnić! ) moim zdaniem udowodnilibyście, że Fibo jest bezwartościowe, gdybyście na rzeczywistym odpowiednio długim wykresie dla 5 wybranych losowo liczb
z zakresu powiedzmy od 0 do 1,6 znaleźli podobną liczbę punktów stycznych co dla poziomów Fibo

Powodzenia ;)


A i jeszcze jedno

odkryłem, że

Kod: Zaznacz cały

     MathSrand(GetTickCount());
jest lepsze niż

Kod: Zaznacz cały

     MathSrand(TimeLocal());
bo TimeLocal w symulecji zwraca czas ticku (symulowany) a nie czas zegara systemowego, a GetTickCount() zwraca liczbę milisekund od startu systemu.

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

jinx pisze:A ja zamieszam
Nie sądzę ;)

jinx pisze:Raczej udawadniacie, że jest super uniwersalne (sprawdza się nawet dla wykresów losowych Wink - bo czemu nie, to trzeba uzasadnić! )
Bez sesnu, i nie uzasadniłeś dlaczego tak sądzisz ;)

jinx pisze:A i jeszcze jedno

odkryłem, że
Pierwsza strona tego wątku ;) (mój post)

jinx
Stały bywalec
Stały bywalec
Posty: 23
Rejestracja: 04 sty 2011, 21:02

Nieprzeczytany post autor: jinx »

jinx pisze:Raczej udawadniacie, że jest super uniwersalne (sprawdza się nawet dla wykresów losowych Wink - bo czemu nie, to trzeba uzasadnić! )
Bez sesnu, i nie uzasadniłeś dlaczego tak sądzisz ;)
Nie takie bez sensu. Dlaczego uważacie, że z faktu, że jakiś system sprawdza się dla liczb losowych nie ma sprawdzić się dla wykresów giełdowych ?
to wymaga dowodu, nie jest oczywiste samo przez się.

Przedstawie to tak:

Teza:

Strzelba jest dobrą bronią na słonie, bo na się z niej od czasu do czasu ustrzelić słonia

Wasz dowód przeciw.

Strzelaliśmy do żyraf i równie łatwo (choć tego ściśle nie wykazaliście) można ze strzelby ustrzelić żyrafę, więc strzelba jest jako broń na słonie do d..y.

teraz powiedz mi, że to jest poprawny dowód ;)


Poprawny powinien wyglądać tak

Strzelaliśmy do słonia z Wiatrówki, armaty, procy, łuku i na podstawie skuteczności tych broni stwierdzamy, że strzelba nie jest (lub jest) dobrą bronią na słonie

O i to jest dowód ;]


(Jakbym się czepiał to bym powiedział, że najpierw trzeba zdefiniować kryterium dobroci ;) )
jinx pisze:A i jeszcze jedno

odkryłem, że
Pierwsza strona tego wątku ;) (mój post)
[/quote]
Znowu byłem ślepy (ten typ tak ma ;) )

ODPOWIEDZ