eu bot test od 1000 zł

Miejsce, gdzie każdy może prowadzić swój własny dziennik gry na FX.
krab29
Maniak
Maniak
Posty: 2349
Rejestracja: 22 cze 2011, 19:56

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: krab29 »

Jeszcze się zastanowiłem nad tym co napisałeś. Piszesz 10k świec. Na rok mamy 250 świec, na 4 lata 1k, na 40 lat 10k. Nie było wtedy euro. Ja robię najpierw testy krótkie, np od początku roku, a potem je potwierdzam długimi z 10 czy 20 lat do 31 12 2019r. Nie umiem napisać EA z uwzględnieniem z automatu czasów letnich/zimowych z 10 czy 20 lat. Próbowałem jak piszesz. Mieć ea w którym wprowadzam ręcznie zakres dat i godzinę świecy, ale to nie skończyłem.
Jak chcesz się podzielić takim kodem to będę wdzięczny. Jest jeszcze ktoś kto to umie, ale ostatnio nie chce dzielić się wiedzą.
Zdradzę jeszcze jedno moje spostrzeżenie: Jak zmienia się czas w EU i USA to jest trochę różnicy w dniach. Świece te należy odrzucić bo jest namieszane. Trzeba uwzględnić dni gdzie w EU i USA są takie same czasy: letni tu i tu, zimowy tu i tu. Czyli trochę ponad 200 świec w roku.
Pozdrawiam
Podejmowanie decyzji inwestycyjnych na podstawie mojej subiektywnej oceny rynku , odbywa się na własną odpowiedzialność inwestora.
Osoby, którym nie podoba się moja metoda tradingowa informuję, że wiem jak się korzysta z funkcji zasil rachunek!

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: ninjaproject »

Euro nie było, ale wykresy są - przeliczane z niemieckiej Marki.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

grzegrzyw
Gaduła
Gaduła
Posty: 334
Rejestracja: 11 mar 2012, 19:43

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: grzegrzyw »

krab29 pisze:
27 lis 2020, 09:42
Nie umiem napisać EA z uwzględnieniem z automatu czasów letnich/zimowych z 10 czy 20 lat. Próbowałem jak piszesz. Mieć ea w którym wprowadzam ręcznie zakres dat i godzinę świecy, ale to nie skończyłem.
W EA zamiast ręcznie wprowadzać daty, dodaj do warunków zawierania transakcji: if (Day()==5 && Hour()==14) a później z wyników testera usuń sporne dni w których czasy letnie/zimowe nie pokrywały się.

rookie2
Pasjonat
Pasjonat
Posty: 399
Rejestracja: 29 wrz 2020, 00:10

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: rookie2 »

10k świec, to jest zakres szukania z danego interwału, czyli jak zaczynam od ostatniej świecy z piątku na H1 (to jest ważne, H1) to 10.000 świec do tyłu daje 10000/24 = ~416 dni. Czyli nieco ponad rok do tyłu. Źle zrobiłem ten test, bo nie uwzględniłem właśnie dni gdzie są dane, tylko tak na szybko sprawdziłem wszystkie H1 ;/

Co do zamiany czasowej... Nie mam pomysłu żeby na szybko jakiś algorytm napisać, to pokażę toporny sposób jak można do tego podejść na przykładzie tego kodu (post998506.html#p998506). Załóżmy że chcesz sprawdzić 2 lata do tył. Robisz tablicę, akurat tutaj będzie to ArrayList o nazwach "letni" i "zimowy", jako globalne zmienne. Do tego zmienna globalna "step". Następnie w funkcji onStart dodajesz do tych tablic elementy, czyli to są te 4 linijki "letni.add(Arrays.asList(29,3,120));". Czyli dzień, miesiąc, rok. Tylko rok wpisujesz nie 2020, tylko 120, nie 2019 tylko 119, żeby dostosować się do danych z jforex, bo on jak wpiszesz w pętli tam niżej "print(date.getYear())" to własnie pokazuje tak rok. Tutaj jest początek głównej pętli "for (IBar bar : history.getBars(instrument, period, side, from, to)) {" i w każdym obrocie, w każdej iteracji pętli na początku sprawdzasz czy data się pokrywa z tym czego szukasz w tablicach zimowy i letni i zmieniasz tylko globalną "state" na -1 albo 0, czy jak tam chcesz. Następnie niżej, gdzie jest warunek "if (date.getHours() == HOUR + step) {" dodajesz właśnie to step do HOUR. I to wszystko. Mniej więcej tak można do tego na szybko podejść... Tutaj jest wiki z datami kiedy są zmiany czasu do wypełnienia tablic, stąd wziąłem te daty https://pl.wikipedia.org/wiki/Czas_letni

I w ten sam sposób można zrobić tablice z danymi i tak samo wyszukiwać wg daty, i jak się zgadza to wykonywać główną część kodu. Naiwne, i toporne podejście, ale.... powinno działać.

Kod: Zaznacz cały

package jforex;

import java.util.*;

import com.dukascopy.api.*;

public class Strategy_h1o14testAlfa implements IStrategy {
    private IEngine engine;
    private IConsole console;
    private IHistory history;
    private IContext context;
    private IIndicators indicators;
    private IUserInterface userInterface;
    
    /// some stats
    private int a1 = 0;
    private int a2 = 0;
    private double b1 = 0;
    private double b2 = 0;
    
    private int counter = 0;
    
    private int step = 0;
    
    private List<List> letni = new ArrayList<>();
    private List<List> zimowy = new ArrayList<>();
    
    public void onStart(IContext context) throws JFException {
        this.engine = context.getEngine();
        this.console = context.getConsole();
        this.history = context.getHistory();
        this.context = context;
        this.indicators = context.getIndicators();
        this.userInterface = context.getUserInterface();
        
        
        // letni
        letni.add(Arrays.asList(29,3,120));
        letni.add(Arrays.asList(31,3,119));
        // zimowy
        zimowy.add(Arrays.asList(25,10,120));
        zimowy.add(Arrays.asList(27,10,119));
        
        /*
        for (List l : letni) {
            print(l.get(0));
            print(l);
        }
        
        //context.stop();
        */
        
        final Instrument instrument = Instrument.EURUSD;
        final Period period = Period.ONE_HOUR;
        final OfferSide side = OfferSide.BID;
        final int shift = 0;
        
        final int RANGE = 10000; // zakres szukania, ilość świec wg period (h1)
        
        final int HOUR = 14;
        
        final long from = history.getBar(instrument, period, side, RANGE).getTime();
        final long to = history.getBar(instrument, period, side, 0).getTime();
        
        // pętla główna
        for (IBar bar : history.getBars(instrument, period, side, from, to)) {
            Date date = new Date(bar.getTime());
            
            for (List l1 : letni) {
                    if (date.getDate() == Integer.parseInt(l1.get(0).toString())
                    && date.getMonth() == Integer.parseInt(l1.get(1).toString()) 
                    && date.getYear() == Integer.parseInt(l1.get(2).toString())) 
                    {
                        //print(date);
                        step = -1;
                        break; // wyjście z tej pętli, z tego zagnieżdżenia do pętli wyżej
                    }
                }
                
              for (List l2 : zimowy) {
                    if (date.getDate() == Integer.parseInt(l2.get(0).toString())
                    && date.getMonth() == Integer.parseInt(l2.get(1).toString()) 
                    && date.getYear() == Integer.parseInt(l2.get(2).toString())) 
                    {
                        //print(date);
                        step = 0;
                        break; // wyjście z tej pętli, z tego zagnieżdżenia do pętli wyżej
                    }
                }
            
            if (date.getDay() != 6 && date.getDay() != 7) {
                //print(date.getDate() + " " +  date.getMonth());
                //print(date.getYear());
                
                if (date.getHours() == HOUR + step) {
                    print(isBullBar(bar) + " " + bar + " " + step); 
                    if (isBullBar(bar)) {
                        a1++;
                        b1 += getBodySize(bar);
                    } else {
                        a2++;
                        b2 += getBodySize(bar);
                    }
                    counter++; // ile  ogólnie świec
                }
            }    
        }
        
        print(" step " + step);
        
        print(" ilość wzrostowych: " + a1 + "  spadkowe: " + a2);
        print(" suma pipsów wzrostowe : " + b1 + " spadkowe " + b2);
        print(" counter " + counter);
        
        context.stop(); // strategia stop
        
    }

    public void onAccount(IAccount account) throws JFException {}

    public void onMessage(IMessage message) throws JFException {}

    public void onStop() throws JFException {}

    public void onTick(Instrument instrument, ITick tick) throws JFException {}
    
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {}
    
    public boolean isBullBar(IBar bar) {
        return (bar.getOpen() > bar.getClose()) ? false : true;
    }
    
    public double getBodySize(IBar bar) {
        double res = 0;
        if (isBullBar(bar)) {
            res = bar.getClose() - bar.getOpen();
        } else {
            res = bar.getOpen() - bar.getClose();
        }
        return res;
    }
    
    public void print(Object o) {
        console.getOut().println(o);
    }
}
https://www.myfxbook.com/members/rookie_t/pycha-kroczy-przed-upadkiem/7931743

rookie2
Pasjonat
Pasjonat
Posty: 399
Rejestracja: 29 wrz 2020, 00:10

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: rookie2 »

Ogólnie teraz nie mam czasu na takie rzeczy bo rozkminiam jak grać na opcjach binarnych w dukasie :wink:

// edit - A odnośnie EA, jak zobaczyłem że mi w tym tygodniu otworzyło SELL to się złapałem za głowę ( :doh: ), bo intuicja podpowiadała żeby grać na wzrosty, ale statystyka, może głupie podejście, nieefektywne jest to EA, ale trzeba trzymać się planu i liczyć że statystycznie w końcu to zacznie działać... albo nie. Więc nie ingerowałem, i nie będę tego robił, tylko cały czas według planu z pierwszego postu ma grać.
https://www.myfxbook.com/members/rookie_t/pycha-kroczy-przed-upadkiem/7931743

Cblondyn
Maniak
Maniak
Posty: 6615
Rejestracja: 03 sty 2011, 12:09

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: Cblondyn »

rookie2 pisze:
28 lis 2020, 10:44
Ogólnie teraz nie mam czasu na takie rzeczy bo rozkminiam jak grać na opcjach binarnych w dukasie :wink:

Juz z matematycznego punktu widzenia nie masz szans by w dłuższym terminie osiągać regularne zyski. No chyba, że ktos ma przez jakis czas szczęście/farta. Ale nic nie trwa wiecznie. Szkoda na to czasu i pieniędzy

rookie2
Pasjonat
Pasjonat
Posty: 399
Rejestracja: 29 wrz 2020, 00:10

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: rookie2 »

Cblondyn pisze:
28 lis 2020, 22:56
rookie2 pisze:
28 lis 2020, 10:44
Ogólnie teraz nie mam czasu na takie rzeczy bo rozkminiam jak grać na opcjach binarnych w dukasie :wink:

Juz z matematycznego punktu widzenia nie masz szans by w dłuższym terminie osiągać regularne zyski. No chyba, że ktos ma przez jakis czas szczęście/farta. Ale nic nie trwa wiecznie. Szkoda na to czasu i pieniędzy
Znasz jakąś w miarę skuteczną jednoświecową formację odwrócenia albo kontynuacji trendu?
btw. wiadomo pinybary, reversal bary, OB, itp, ale masz coś co możesz pokazać na wykresie, coś czym się sam sugerujesz, jednoświecowa formacja?
https://www.myfxbook.com/members/rookie_t/pycha-kroczy-przed-upadkiem/7931743

krab29
Maniak
Maniak
Posty: 2349
Rejestracja: 22 cze 2011, 19:56

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: krab29 »

Dziękuję, jak będzie wolna chwila to zajmę się tematem, ale łatwo to nie wygląda.
Pozdrawiam
Podejmowanie decyzji inwestycyjnych na podstawie mojej subiektywnej oceny rynku , odbywa się na własną odpowiedzialność inwestora.
Osoby, którym nie podoba się moja metoda tradingowa informuję, że wiem jak się korzysta z funkcji zasil rachunek!

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: ninjaproject »

rookie2 pisze:
29 lis 2020, 01:09
Cblondyn pisze:
28 lis 2020, 22:56
rookie2 pisze:
28 lis 2020, 10:44
Ogólnie teraz nie mam czasu na takie rzeczy bo rozkminiam jak grać na opcjach binarnych w dukasie :wink:

Juz z matematycznego punktu widzenia nie masz szans by w dłuższym terminie osiągać regularne zyski. No chyba, że ktos ma przez jakis czas szczęście/farta. Ale nic nie trwa wiecznie. Szkoda na to czasu i pieniędzy
Znasz jakąś w miarę skuteczną jednoświecową formację odwrócenia albo kontynuacji trendu?
btw. wiadomo pinybary, reversal bary, OB, itp, ale masz coś co możesz pokazać na wykresie, coś czym się sam sugerujesz, jednoświecowa formacja?
O ile dobrze rozumiem zasadę opcji binarnych, to trading polega na zakładzie, że kontrakt na opcje zrealizuje/zamknie się Byczo, albo Niedźwiedzio w stosunku do ceny otwarcia kontraktu, czyli, że praktycznie prawdopodobieństwo sukcesu wynosi 50%.

Gorzej jest na Touch Binaries dla par Fx, gdzie występują dwie ceny strike, czyli praktycznie SL = 1:1.

Jeżeli prawdopodobieństwo zdarzenia jest znane (możliwe do obliczenia) oraz znana jest proporcja wygranej, to możemy obliczyć optymalny procent ryzyka na kapitale dla jednego zakładu, który gwarantuje nam sukces.
Przy prawdopodobieństwie 50% i zwrocie 0,9 wychodzi matematycznie, że optymalnym ryzykiem jest -5,56% kapitału.
Haczyk w tym systemie polega na tym, że (o ile dobrze widzę) zakład w Dukascopy kosztuje $100, a wygrana jest tylko $90, co niestety jest grą nieuczciwą.
Wartość ujemna oznacza, że system musi przegrywać.

Chociaż, nie!
Tak myślę, i wychodzi, że przy PP = 50% 3 straty = $300 a 3 zyski = $570, czyli że PF = 1.9.
Wtedy OptRisk = 23,68% i minimalny kapitał = $422,23.

Pytania:
1. Czy te opcje binarne gwarantują PP=50%?
2. Co się dzieje, jeżeli opcja wygasa na 0, czyli Open = Close?
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

rookie2
Pasjonat
Pasjonat
Posty: 399
Rejestracja: 29 wrz 2020, 00:10

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: rookie2 »

@ninjaproject, Tak jak piszesz, obstawia się czy coś pójdzie UP czy DOWN w określonym czasie, minimum 3 minuty, maksimum 24h. Czyli nie jest możliwe obstawianie na dłużej niż DT. I tak jak piszesz, zysk przy ryzyku 100$ to 90%, czyli 90$, a strata to 100$. Co się dzieje przu wyniku 0? pewnie strata ;p Martwi mnie płynność i szybkość realizacji zlecenia. Do tego tylko majorsy, nie ma daxa itd, tylko pary walutowe majors. I platforma webowa bez API chyba na które możesz napisać EA. Na razie nie mam nic konkretnego.
https://www.myfxbook.com/members/rookie_t/pycha-kroczy-przed-upadkiem/7931743

ODPOWIEDZ