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 »

matka pisze:Np. do symulacji MC
wystarczy Ci. a jesli chcesz zaimplementuj ten prosty algorytm:http://en.wikipedia.org/wiki/Mersenne_Twister

Awatar użytkownika
matka
Pasjonat
Pasjonat
Posty: 642
Rejestracja: 17 lis 2008, 15:53

Nieprzeczytany post autor: matka »

f16_rocket pisze:wystarczy Ci. a jesli chcesz zaimplementuj ten prosty algorytm:http://en.wikipedia.org/wiki/Mersenne_Twister
Tego aktualnie używam ale wolę posprawdzać wszystkie opcje, tym bardziej że chyba nie ma uzasadnienia dla tezy przeciwnej do mojej. Spotkałeś się może z jakimś badaniem wpływu różnych randomizerów na wyniki we wrażliwych na to środowiskach?
skco pisze:temat myślę został wyczerpany.
Myślę, że nie został. Dla mnie temat bardzo ciekawy, uważam że nie powinno się go upraszczać i rozmywać w oparciu o spekulacje. Szczególnie w kryptografii mamy wiele przykładów, gdzie "losowy" tak naprawdę był łatwy do przewidzenia, głównie dlatego że ktoś nie zadbał o na pozór zupełnie nieistotny, najmniejszy szczegół.
Obrazek
Unfortunately, more to come

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

Nieprzeczytany post autor: f16_rocket »

matka pisze:Szczególnie w kryptografii mamy wiele przykładów
generator nieprzydatny w kryptografii moze byc nadal doskonaly dla symulacji. (pewnie mowisz o czyms co spotkales. mozesz jakis link dac do tego o czym mowisz? ) jakosc generatora jest oceniana zaleznie od tego do czego ma byc uzywany.

testowanie jakosci generatora jest tak, powiedzmy delkatnym tematem itd, nie ma sensu tu nad tym roztrzasac, bo to wymaga postudiowania tematu i pewnej wiedzy ze statystyki/matematyki. na poczatek proponuje tego pdfa:
http://www.johndcook.com/Beautiful_Testing_ch10.pdf

jak bedziesz chcial to podrzuce potem jeszcze cos wiecej.

Awatar użytkownika
matka
Pasjonat
Pasjonat
Posty: 642
Rejestracja: 17 lis 2008, 15:53

Nieprzeczytany post autor: matka »

f16_rocket pisze:generator nieprzydatny w kryptografii moze byc nadal doskonaly dla symulacji
Zgadza się. Moim celem jest ustalenie na ile dokładnie jest przydatny. Po prostu nie lubię pewnych rzeczy pozostawiać przypadkowi ;)
f16_rocket pisze:mozesz jakis link dac do tego o czym mowisz?
Miałem na myśli ataki na DES'a, MD5, czy choćby DNS cache poisoning autorstwa naszego rodaka, wykorzystujący paradoks urodzinowy.
f16_rocket pisze:jak bedziesz chcial to podrzuce potem jeszcze cos wiecej.
Podrzucaj śmiało ;)
Obrazek
Unfortunately, more to come

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

Nieprzeczytany post autor: f16_rocket »

matka pisze: Moim celem jest ustalenie na ile dokładnie jest przydatny.
robisz testy na rozklad jakiego zadasz, jezeli generator je zdaje to jest przydatny. nikt Ci nie podesle innej, gotowej odpowiedzi. jest nia Mersenne Twister i inne ze znanych bibliotek, ktore zdaly wiele testow pisanych przez specjalistow.

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

Nieprzeczytany post autor: jinx »

Jedna uwaga

funkcja SRand - inicjucjąca ziarno
powinna by użyta 1 raz (np w funkcji init) dla danego przebiegu,
a Rand - pobierająca liczbę
dokładnie raz na liczbę

to trochę w opozycji do tego co wklejano jako kod w tym wątku

inaczej wywołanie dwa razy z tym samym seedem da zawsze tę samą liczbę

po za tym jakość generatora jest określana poprzez losowość kolejnych wartości wygenerowanych za pomocą danego seeda a nie pierwszych wartości dla różnych seedów.

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

Nieprzeczytany post autor: LowcaG »

jinx pisze:Jedna uwaga

funkcja SRand - inicjucjąca ziarno
powinna by użyta 1 raz (np w funkcji init) dla danego przebiegu,
a Rand - pobierająca liczbę
dokładnie raz na liczbę

to trochę w opozycji do tego co wklejano jako kod w tym wątku
W zasadzie to już jesteś trzeci który na to zwrócił uwagę ;) no ale przypominiania nigdy za dużo.

po za tym jakość generatora jest określana poprzez losowość kolejnych wartości wygenerowanych za pomocą danego seeda a nie pierwszych wartości dla różnych seedów.
To chyba oczywiste i wynika z pierwszego ;)

A nawiązując do tematu MC (nie margin call ;) )

Gdyby to były analizy (jak zauważono) kryptograficzne, albo gdyby MC używano do jakiś super precyzyjnych (chociaż w przypadku MC cięzko mówić o precyzyjności ;) ) danych powtarzanych w setkach milionach symulacji to ok, trzeba by było się przyjrzeć.

Ale jaka jest prawda (mówie o świecie MT4), dane różnią się między brokerami, quality mamy powiedzmy na poziomie 99%, operacji które symulujemy jest naprawdę mało porównując z "wielkimi eksperymentami". Nawet gdyby rozkład nie był zbyt losowy, jak to wpłynie na cała symulację (mówię o seriach symulacji, gdzie będą różne seedy) myślę, że ułamkowo, patrząc na inne odchylenia, modelu.
Ostatecznie nie jest problemem zaimplementowanie 2-3 różnych algorytmów liczb losowych i porównanie wyników.

Dla mnie temat BUSTED ;)

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

Nieprzeczytany post autor: jinx »

@up
dzięki za przyprowadzenie do porządku, przyznaje się bez bicia nie przeczytałem całego wątku, tylko jak zobaczyłem takie babole w sekcji code to od razu pisałem ;).

co do testu czy generator jest dobry
http://statystyka.rezolwenta.eu.org/Mat ... st-chi.pdf

test chi-kwadrat

uczyli mnie na studiach kiedyś, że jest najbardziej miodny ze wszystkich
może poza czymś co się nazywa podwójny test chi-kwadrat (sprawdza się, czy wyniki testu chi-kwadrat są zgodne z rozkładem chi kwadrat ;) ) a tak po ludzku to dobry generator losowy powinien test losowości od czasu do czasu oblać np generując 10 jedynek pod rząd (ale nie za często)

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

Nieprzeczytany post autor: f16_rocket »

nie mozna nie przeczytac watku i o czyms bredzic. to jest dopiero babol.
zebys wiedzial jak to smiesznie wyglada, jak klepiesz setny raz cos tak oczywistego i tlumaczysz rzeczy, ktore sa objasnione strone wczesniej.

zawsze mnie zniecheca to forum takim lamerstwem. ach

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

Nieprzeczytany post autor: reptile »

Kiedyś byłem mniej zaangażowany w kodowanie.. (wszystko było pod górke..heh)
http://www.forex.nawigator.biz/dyskusje ... 839#210839

Ale testuje różne koncepcje i.. słabo mi wychodzi ten RandomChart

Dajcie mi tendy.. 8)

Obrazek

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;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorShortName(Instrument);
   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
   for(int i=0; i<limit; i++)
   {
//+------------------------------------------------------------------+  
//---StartPrice
if (i==0){
//quote=MathRand();
quote=digit;
}
double tick = quote; 


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

//---ChartGenerator
for(int t=0; t<TF; t++)
   {
int u=MathRand()&1;
int d=MathRand()&1;
  
if (u==d) tick =tick; 

if (u==1 && d==0) tick =tick+digit;
if (u==0 && d==1) 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);
}  
//+------------------------------------------------------------------+  
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)

ODPOWIEDZ