eu bot test od 1000 zł

Miejsce, gdzie każdy może prowadzić swój własny dziennik gry na FX.
Cblondyn
Maniak
Maniak
Posty: 6650
Rejestracja: 03 sty 2011, 12:09

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: Cblondyn »

rookie2 pisze:
06 gru 2020, 04:41
Zjazd z 1,117.65 na 642.28 PLN, czyli 42.52% obsuwy w tym tygodniu. Cztery miesiące jałowego grania i strata na ten moment poczatkowego depozytu 35,8%. No nic. Zakładałem minimum 6 miesięcy działania strategii, więc się odezwę za około 2-3 miesiące, może będzie lepiej. Chyba zbyt naiwnie do tego podszedłem. No ale spróbowałem swoich sił po przerwie od fx, która trwała około 1,5 roku i jeszcze nie jestem gotowy do zarabiania na tym :oops:

Chart_EUR_USD_4 Hours_snapshot_06122020.png
A może zostaw te boty, EA graj w normalny sposób jak wiekszość. Dobry trend i jeden dobry seutp dziennie powinien wystarczyć.

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

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: rookie2 »

@Cblondyn, żebyś wiedział że ostatnio sięgnąłem do postów m.in. pol75 z mojego journala next, coś tam pomierzyłem, popróbowałem, ale nie mam teraz ochoty siedzieć przed wykresami, kasy i celu po co mam to robić. Nie chce mi się po prostu ostatnio :?

Coś jeszcze wrzucę na przyszłość odnośnie opcji binarnych. Bo sobie raczej zrobię przerwę znowu kilka tygodni co najmniej, żeby ogarnąć co nie gra w tej strategii, co poprawić. Żeby się nad tym zastanowić... Tutaj jest taki klikacz, wstępnie zrobiony, podobny do DSWS dadasa, że sobie klikasz na świeczki, i w konsoli wypisuje świece przed i po świecy na którą kliknąłeś. I coś tam jeszcze. Tego nie odpala się na testerze historycznym tylko jako strategie normalnie. Już kiedyś coś podobnego robiłem, ale też zatrzymałem się w podobnym miejscu. Żeby nie zginęło tym razem to sobie tutaj wrzucę. Zacząłem robić kalsyfikację świec w funkcji "szukajPodobnych" ale nie mam ochoty się teraz w tym grzebać. :563: Może za jakiś czas najdzie mnie ochota...

Kod: Zaznacz cały

package jforex;

import java.util.*;

import com.dukascopy.api.*;
import com.dukascopy.api.chart.mouse.*;
import com.dukascopy.api.drawings.*;

public class Strategy_06122020_SantaClausTests implements IStrategy {
    private IEngine engine;
    private IConsole console;
    private IHistory history;
    private IContext context;
    private IIndicators indicators;
    private IUserInterface userInterface;
    private IChart chart;
    private IChartPanelMouseListener listener;
    private IChartObjectFactory factory;
    
    // default
    private Instrument selectedInstrument = Instrument.EURUSD;
    private OfferSide side = OfferSide.BID;
    private int shift = 0;
    
    // temp vars
    private Period selectedPeriod = null;
    private IBar selectedBar = null;
    private int index = 0;
    private int selectedIndex = 0;
    
    // macros - stałe - (settings)
    private final int RANGE = 1000;
    
    // etc
    private int counter = 0;
    
    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();
        
        // add chart
        //this.chart = context.getChart(selectedInstrument);
        for (IChart c : context.getCharts()) {
            if (chart == null) {
                this.chart = c;
                this.factory = chart.getChartObjectFactory();
                break;
            }
        }
        
        print("selected chart is: " + chart);
        
        if(chart == null){
            console.getErr().println("No chart opened!");
            context.stop();
        }
        
        chart.addMouseListener(false, listener = new IChartPanelMouseListener(){
            public void mouseClicked(IChartPanelMouseEvent e) { 
                
                // start routine              
                selectedPeriod = chart.getSelectedPeriod();
                selectedInstrument = chart.getInstrument();
                selectedIndex = 0;
                index = 0;
                //print( " x " + chart.getBarsCount());
                
                // do sth
                try {
                    long from = history.getBar(selectedInstrument, selectedPeriod, side, RANGE).getTime();
                    long to = history.getBar(selectedInstrument, selectedPeriod, side, 0).getTime();
                    List<IBar> bars = history.getBars(selectedInstrument, selectedPeriod, side, from, to);
                    
                    // szukanie liniowe, bardzo wolne i niewydajne
                    // przeszukuje wszystko za jakiegoś zakresu (stała RANGE)
                    for (IBar bar : bars) {
                        if (e.getBarTime() == (long)bar.getTime()) {
                            selectedBar = bar;
                            selectedIndex = index - 1;
                            print(bar);
                            break;
                        } else {
                            selectedBar = null;            
                        }
                        // inc index
                        index++;
                    }                    
                } catch (JFException jfx) {
                    /* do nth */ 
                }
                         
                //print(e.getBarTime() );
                print(" selected bar: " + selectedBar);
                print(chart);
                
                try {
                if (selectedBar != null) {

                    console.getNotif().format("%s %s %s \n", isBullBar(selectedBar), selectedBar, selectedIndex).println();
                    
                    IBar prev = null;
                    IBar next = null;
                    long from = history.getBar(selectedInstrument, selectedPeriod, side, RANGE).getTime();
                    long to = history.getBar(selectedInstrument, selectedPeriod, side, 0).getTime();
                    List<IBar> bars = history.getBars(selectedInstrument, selectedPeriod, side, from, to);
                    for (int i = 0; i < bars.size(); i++) {
                        IBar bar = bars.get(i);
                        if (bar.getTime() == selectedBar.getTime()) {
                            prev = bars.get(i - 1);
                            next = bars.get(i + 1);
                            break;
                        }
                    }
                    
                    print("selected index: " + selectedIndex + " | selected bar time: " + new Date(selectedBar.getTime()));
                    print("prev : " + prev);
                    print("next : " + next);
                }
                } catch (JFException jfx) {};
                
                // drawing on the chart
                IVerticalLineChartObject line = factory.createVerticalLine("vLine", selectedBar.getTime());
                chart.add(line);
                
                // end
                /*
                try { 
                    szukajPodobnych(selectedBar);
                } catch (JFException jfx) {}
                */
               
            }
            public void mousePressed(IChartPanelMouseEvent e) {}
            public void mouseReleased(IChartPanelMouseEvent e) {}
            public void mouseEntered(IChartPanelMouseEvent e) {}
            public void mouseExited(IChartPanelMouseEvent e) {}
            public void mouseDragged(IChartPanelMouseEvent e) {}
            public void mouseMoved(IChartPanelMouseEvent e) {}
        });
        
    }

    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 void szukajPodobnych(IBar bar) throws JFException {
        // clear chart
        chart.removeAll();
        
        // features 32 bits
        // 1 - bull or bear
        // 2 - inside bar 
        // 3 - reversal bar
        // 4 - doji
        int features = 0;
        int f2 = 0;
        
        //print(isDoji(selectedBar));
        if (isDoji(bar)) {
            features |= (1 << 4);
            print("x");
        } else {
            //features = (features & (1<<4)) == 0 ? features ^ (1<<4) : features;
        }
        
        print(features + " " + (features & (1<<4)));
        
        // search        
        long from = history.getBar(selectedInstrument, selectedPeriod, side, RANGE).getTime();
        long to = history.getBar(selectedInstrument, selectedPeriod, side, 0).getTime();
        List<IBar> bars = history.getBars(selectedInstrument, selectedPeriod, side, from, to);
        for (IBar b : bars) {
            
            if (isDoji(b)) {
                f2 |= (1 << 4);
            } else {
                f2 = (f2 & (1 << 4)) != 0 ? f2 ^ (1 << 4) : f2;
                f2 = ~f2;
            }
                 
            if (features == f2 && b.getVolume() != 0) {
                IVerticalLineChartObject line = factory.createVerticalLine(getLabel(selectedInstrument), b.getTime());
                chart.add(line);
                print(features + " " + f2);
                //print(b + " " + selectedBar);
                //print(b);
            }
            
            // test 
            //if (isBullBar(b) == isBullBar(bar)) {
            //    IVerticalLineChartObject line = factory.createVerticalLine(getLabel(selectedInstrument), b.getTime());
            //    chart.add(line);
            //}
            
            
        }
        
    }
    */
    
    
    public boolean isDoji(IBar bar) {
         return (bar.getOpen() == bar.getClose()) ? true : false;
    }
    
    protected String getLabel(Instrument instrument) {
        String label = instrument.name();
        label = label + System.currentTimeMillis() + (counter++);
        return label; 
    }
    
    public boolean isBullBar(IBar bar) {
        return (bar.getOpen() > bar.getClose()) ? false : true;
    }
    
    public void print(Object o) {
        console.getOut().println(o);
    }
    
}
pozdro.
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 »

@krab29, spóbuj dodać do tego (post998875.html#p998875) testu modyfikację żeby liczyło LONG na M15 JEŚLI przed wystąpiła też wzrostowa. Skuteczność jest lepsza. Czyli funkcja onBar ma wyglądać tak. Dodajesz tylko sprawdzanie świecy przed i niżej jest sprawdzanie warunku że świeca też jest bycza. Czyli jakby pominąć świece z 12:30 które są BEAR, i grać tylko te które są BULL wtedy chyba uzyskujesz lepszą skuteczność. :think: M.in. tak można to trochę zoptymalizować. Dodalem 4 typy, 4 kombinacje. I różne kolorki kresek.
bull bull - red
bull bear - blue
bear bear - magenta
bear bull - pink
Można to przejrzeć na wykresie lepiej. btw. przy 2 bitach jest 4 warianty j/w, przy sprawdzaniu 3 świec jak ten klikacz wyżej tak prosto np bear bull bear już jest 3 bity, i 8 kombinacji, bo maksymalna liczba binarnie to 111, wszystkie bity zapalone, albo przekładając to na świeczki kombinacja bull bull bull czyli ((1<<3)-1), czyli 000 (0) 001 (1) 010 (2) 011 (3) 100 (4) 101 (5) 110 (6) i 111 (7) .

Kod: Zaznacz cały

public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {
        
        Date date = new Date(bidBar.getTime());
        
        IBar prev = history.getBar(instrument, Period.FIFTEEN_MINS, side, 2); // sprawdzanie świecy przed
        IBar bar = history.getBar(instrument, Period.FIFTEEN_MINS, side, 1);
        
        if (date.getDay() != 6 && date.getDay() != 7 && bar.getVolume() != 0) { 
        if (period.equals(Period.FIFTEEN_MINS)) { // bo szukamy na M15
            if (date.getHours() == 12 && date.getMinutes() == 45) {
            if (isBullBar(bar) && isBullBar(prev)) {  // dodatkowy warunek że świeca przed też jest bycza
                up++;   
                // dodaj linie na wykres
                IVerticalLineChartObject line = factory.createVerticalLine(getLabel(instrument), bar.getTime());
                line.setColor(Color.RED);
                chart.add(line);
            } else if (isBullBar(bar) && !isBullBar(prev)) {
                IVerticalLineChartObject line = factory.createVerticalLine(getLabel(instrument), bar.getTime());
                line.setColor(Color.BLUE);
                chart.add(line);
                //down++;
            }  else if (!isBullBar(bar) && !isBullBar(prev)) {
                IVerticalLineChartObject line = factory.createVerticalLine(getLabel(instrument), bar.getTime());
                line.setColor(Color.magenta);
                chart.add(line);
                //down++;
            }   else if (!isBullBar(bar) && isBullBar(prev)) {
                IVerticalLineChartObject line = factory.createVerticalLine(getLabel(instrument), bar.getTime());
                line.setColor(Color.pink);
                chart.add(line);
                down++;
            }
            
            print("up : " + up + " down: " + down + " " + bar);
            //context.pause();
        }
        }
        }
        
    }
To tak btw. :twisted:
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 »

rookie2 - nie mam kiedy testować twoich. Ogromne problemy czasowe u mnie. Ale dziękuję. Jak chcesz zrobić przerwę na trochę to wrzuć sobie swoje ea na demona i pozwól im chodzić na żywym wykresie. Jak ja robię testy to nawet przez killka miesięcy chodzi to pod kreską. Normalna rzecz.
Po głowie chodzą mi Igrzyska i stres czy przetrwam z kontem. W tym tygodniu chcę założyć w mforex, ale w mojej mieścinie nie ma punktu maklerskiego,a skanu dowodu nie wyślę. Kombinuję założyć zwyczajne konto, z tego fx, i skasować zwyczajne konto.
Na koniec roku u mnie jest zawsze ciężko z czasem.
3maj się i uciekam
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!

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

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: rookie2 »

Zrobiłem jeszcze raz test. Chciałem zobaczyć jak procentowo wygląda zmiana kapitału na koniec tygodnia od początku roku. Czerwone okręgi to i minusowe wartości to straty w procentach za horyzont czasu (spekulacyjne okno czasu :) ) od wt 8:00 do czw. 13:00 GMT. Pytanie, czy taki model przewidywania kierunku w tym okresie jest skuteczny? Według takiego podejścia do otwierania i zamykania pozycji wygląda na to że tak. W testach strategia kiedy miała okres zarabiania "lewelowała" konto, potem zjazd i od nowa. Teraz też jest taki okres gdzie był zjazd, może odbije. Patrzę na wykres w mniejszym TF, czy nie da się potraktować sygnału z wtorku o 8:00 GMT jako kierunku gry, a samo otwieranie pozycji i zarządzanie zrobić inaczej. Albo jakoś próbować zniwelować starty kiedy pozycja wychodzi na minus. Ale nic ciekawe nie mam. Więc trzeba zostawić tak jak jest i liczyć na farta, że znowu nadejdzie okres że będzie działać.
Screenshot from 2020-12-12.png
Tutaj jeszcze wykres z testu, żeby zobaczyć że pozycje są zawarte tak samo jak na realnym (post999309.html#p999309), i podobieństwo na krzywej equity.
Chart_EUR_USD_4 Hours_snapshot_test-11122020.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
https://www.myfxbook.com/members/rookie_t/pycha-kroczy-przed-upadkiem/7931743

1to1
Gaduła
Gaduła
Posty: 156
Rejestracja: 21 sie 2014, 20:02

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: 1to1 »

W tydzień straciłeś 50% konta.
W każdej chwili może być bankrut.

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

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: rookie2 »

1to1 pisze:
13 gru 2020, 13:13
W tydzień straciłeś 50% konta.
W każdej chwili może być bankrut.
Tak to działa, to jest oparte na runach tjs, 50% SLK itd. Tyle że tutaj nie stosuję SLK, tylko liczę że uda się zaliczyć dobrą serię i potem nastąpi obsuwa właśnie nie przekraczająca 50% i bym wtedy wypłacił. Jasne że może być bankrut ale musiałoby ATR nagle wzrosnąć, jakieś niespodziewane mocne ruchy na EURUSD i byłbym wtedy po złej stronie, to tak, wtedy by mnie wyzerowało bo nie ma żadnego SL, tylko liczę że ten zasięg ruchu zamknie się na DD w okoliczach 50%, bo przynajmniej tak wynika z testów, ale potem może być coś innego. 1000 zeta to też nie jest kto wie jaka suma, żeby tak nie zaryzykwać. Może się uda. Jak widac po testach strategia ma potencjał do zarabiania. Wielkość pozycji zależy od kapitału, cały czas all-in, czyli lewar wykorzystany jest w 100%, ale tylko 1 pozycje otwiera, żadnego piramidowania, uśredniania, hedge, itp. 1 pozycja i koniec. Wyjdzie w praniu czy to jeszcze działa. Ale nawet ten tydzień pokazuje że choć trochę ma sens, bo odrobiłem trochę strat i znów mam nieco ponad 800 zł na rachunku. Pojawił się trend na EU i jak jest trend wtedy to działa, kiedy są dłuższe swingi trenodowe, w konsoli traci.
https://www.myfxbook.com/members/rookie_t/pycha-kroczy-przed-upadkiem/7931743

Awatar użytkownika
MarioDM
Maniak
Maniak
Posty: 2492
Rejestracja: 20 lis 2010, 20:24

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: MarioDM »

Nie zagłębiałem się w to jak działa ta EA, ale mogę Ci podpowiedzieć co należy wykonać w sensie ogólnym aby EA była choć trochę skuteczna. Jest to banalnie proste.
W pierwszej kolejności musisz ustalić zasady, w których EA otwiera pozycje oraz je zamyka z TP. Te zasady na początek muszą być dostatecznie luźne, aby otwieranych pozycji było odpowiednio dużo.
Jeśli już to masz to zerknij na to ile tych pozycji jest zyskownych, a ile stratnych (w testerze oczywiście, bo EA najpierw sprawdza się w testerze, a nie on-line). Jeśli zyskownych jest co najmniej 25-30% to system jest OK. Jeśli mniej, to zasady są do kitu.
I teraz trzeba się wykazać inwencją. Wizualnie sprawdzaj, co powoduje, że pozycje są stratne. Jeśli zasady dla EA nie są z dupy wzięte, to takie ustalenie jest dosyć proste. 75% otwieranych pozycji (max) przynosi straty. Twoją robotą jest takie dopracowanie modyfikacji, aby wykluczyć otwieranie się tych stratnych pozycji.
Staraj się opracowywać obiektywne obostrzenia. Weź też pod uwagę, że KAŻDY instrument może wymagać własnego, indywidualnego presetu. Każdy preset musi być oparty na tych samych zasadach, ale detale powinny być dedykowane osobno pod każdy instrument.
No i oczywiście sprawdzaj w testach na różnych interwałach. Nie warto się upierać przy jednym interwale, bo może się okazać, że Twój zestaw lepiej się sprawdza na innym interwale czasowym.
I na koniec, postaraj się dopracować alternatywne zamknięcia pozycji, czyli SL, oraz przestawianie SL na BE, gdy jest to możliwe.
Sprawdzaj również zakres godzin, w jakich EA operuje. Może się okazać, że nocą gorzej sobie radzi. Przez cały dzień również może nie być skuteczna. W przypadku DT, z moich doświadczeń wynika, że najlepiej trejdować w godzinach 9-17 naszego czasu. I najlepiej wykluczać piątek z tradowania, bo w piątek zdarza się wiele anomalii, które zakłócają harmonię i powodują wiele błędów i stratnych pozycji.
Dodatkowo przyjrzyj się historycznie, czy stratne pozycje nie przydarzają się w czasie istotnych danych, które powodują rozchwianie rynku.
Stworzenie skutecznego EA wymaga długiej i ciężkiej pracy. W miesiąc tego nie zrobisz.
Trust no bit**es.
Należy tępić ludzi o mentalności niewolników, okutych w powiciu.

1to1
Gaduła
Gaduła
Posty: 156
Rejestracja: 21 sie 2014, 20:02

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: 1to1 »

rookie2 pisze:
17 gru 2020, 19:27
1to1 pisze:
13 gru 2020, 13:13
W tydzień straciłeś 50% konta.
W każdej chwili może być bankrut.
Tak to działa, to jest oparte na runach tjs, 50% SLK itd. Tyle że tutaj nie stosuję SLK, tylko liczę że uda się zaliczyć dobrą serię i potem nastąpi obsuwa właśnie nie przekraczająca 50% i bym wtedy wypłacił. Jasne że może być bankrut ale musiałoby ATR nagle wzrosnąć, jakieś niespodziewane mocne ruchy na EURUSD i byłbym wtedy po złej stronie, to tak, wtedy by mnie wyzerowało bo nie ma żadnego SL, tylko liczę że ten zasięg ruchu zamknie się na DD w okoliczach 50%, bo przynajmniej tak wynika z testów, ale potem może być coś innego. 1000 zeta to też nie jest kto wie jaka suma, żeby tak nie zaryzykwać. Może się uda. Jak widac po testach strategia ma potencjał do zarabiania. Wielkość pozycji zależy od kapitału, cały czas all-in, czyli lewar wykorzystany jest w 100%, ale tylko 1 pozycje otwiera, żadnego piramidowania, uśredniania, hedge, itp. 1 pozycja i koniec. Wyjdzie w praniu czy to jeszcze działa. Ale nawet ten tydzień pokazuje że choć trochę ma sens, bo odrobiłem trochę strat i znów mam nieco ponad 800 zł na rachunku. Pojawił się trend na EU i jak jest trend wtedy to działa, kiedy są dłuższe swingi trenodowe, w konsoli traci.
System całkiem fajny ale stratny w dłuższym okresie.
Kiedyś skończy się kasa na otwieranie pozycji.

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

Re: eu bot test od 1000 zł

Nieprzeczytany post autor: rookie2 »

MarioDM pisze:
18 gru 2020, 11:37
Nie zagłębiałem się w to jak działa ta EA
Zasady proste. Otwórz 1 pozycje za 100% depo i trzymaj. Otwórz o 8 czasu GMT we wtorek i zamknij w czwartek o 13 GMT. Bez SL. Zysk i strata zależy od zasięgu ruchu. Otwórz long jeśli cena bid jest większa od ceny open świecy weekly GMT z bieżacego tygidnia, krótką jesli jest pod ceną otwarcia z początku tygodnia o 8 we wtorek.
1to1 pisze:
18 gru 2020, 13:42
System całkiem fajny ale stratny w dłuższym okresie.
Kiedyś skończy się kasa na otwieranie pozycji.
Zależy dla kogo. Jakbym miał 100k i to była by cała kasa na fx to nie stawiałby na taką strategię. Ale jak to jest jakiś kawałek większej sumy do gry to ok. Można się pobawić skoro to działa na historii.

"pobawić", tak, raczej bardziej edukacyjnie podchodzę do tego niż na serio, ale jak widac ma to sens. Może jeszcze zadziała... :pray::pray::pray::pray:
https://www.myfxbook.com/members/rookie_t/pycha-kroczy-przed-upadkiem/7931743

ODPOWIEDZ