JForex

Sprawy techniczne dotyczące poszczególnych platform handlowych.
FXpleyer

Re: JForex

Nieprzeczytany post autor: FXpleyer »

Przydać by się przydało, tyle że jak napisał Raposo są w Jstore takie dodatki warto by je przetestowac najpierw bo po co miałbyś tracić nie wiadomo ile czasu na coś co już jest , no chyba że moment z tym schodzi :D w poniedziałek postaram się na demo potestować

-- Dodano: 04 lis 2017, 23:32 --

Pobrałem pierwszą z brzegu aplikacje z Jstore z wyszukiwarki "trailing" , działa to na testerze (jest widoczne w strategiach testera) i tam działa tyle że nie wiem jak to odpalić na koncie live (bez uruchamiania testera) dodać do otwartej pozycji ? , skrypt/kod który napisałeś ma działać podobnie?

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: JForex

Nieprzeczytany post autor: -rookie- »

Ten pierwszy autorstwa fxdiler jest bardzo dobry. Ten kod który napisałem działa prawie tak samo. Ale tutaj jest wszystko tip top. Fajnie to chodzi i nie ma błędów jak w moim prototypie heh. Włączasz to tutaj https://images84.fotosik.pl/887/ad0549946bed5ecb.png w oknie strategies i nie prawym tylko lewym przyciskiem myszy, źle napisałem na obrazku, wybierasz strategie i potem play, potem otwiera się to okienko gdzie wpisujesz wartość TS i wybierasz instrument. Ogólnie ten TS od fxdiler jest bardzo dobry. Nie wiem czy nie będzie trzeba zmienić nazwy pliku i zrobić kilku kopii dla kilku instrumentów ale to się okaże dopiero w poniedziałek.

Awatar użytkownika
raposo
Moderator
Moderator
Posty: 9994
Rejestracja: 22 wrz 2006, 22:10

Re: JForex

Nieprzeczytany post autor: raposo »

-rookie- pisze:Nie wiem czy nie będzie trzeba zmienić nazwy pliku i zrobić kilku kopii dla kilku instrumentów ale to się okaże dopiero w poniedziałek.
Na 98% tak właśnie będzie... ;) No ale też jestem ciekaw i sprawdzę to jutro.
ForexClub.pl
- Forex Club Tools
- Program Podatek 7.0
- RABATY PROWIZJI
| IC Markets (-21%) | Tickmill (-10%) | XTB (Pakiet książek) | Dukascopy (narzędzia do JForex) | LMAX (-20%) | FxPro (do -15%)

Zapraszamy do kontaktu

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: JForex

Nieprzeczytany post autor: -rookie- »

Próbowałem przerobić ten plik żeby nie odpalać strategii dla każdego instrumentu, tylko żeby odpalić jedną i ona zarządzała wszystkim ale znowu coś nie działa. Więc FXpleyer jeśli chcesz używać tego na kilku instrumentach to musisz zrobić kopie pliku wg opisu z tego obrazka https://images83.fotosik.pl/888/ac2f5c4b3d87d743.png

FXpleyer

Re: JForex

Nieprzeczytany post autor: FXpleyer »

Zrobiłem tak jak opisał to rookie , fajnie wyjaśniłeś . Czy to działa również jak mam wyłonczoną platformę ? bo głownie o to mi chodzi max czasu który mam na trading to 1h dziennie :? ?

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: JForex

Nieprzeczytany post autor: -rookie- »

Nie, jak włączyłeś jako local run musiałbyś zostawić komputer / jforex włączony, w trybie remote run chyba takich EA nie da się odpalić.

STom
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 14 gru 2017, 13:41

Re: JForex

Nieprzeczytany post autor: STom »

Takie pytania mam:
1. chcę zamknąć pozycję, ale nie mogę bo wyskakuje komunikat: "The order #nr was cancelled. No margin available." Czemu tak jest?
2. użycie dźwigni pokazuje mi 100% - nie za bardzo to rozumiem.
3. gdzie znajdę jakiś opis platformy "dla zielonego" użytkownika?

Awatar użytkownika
raposo
Moderator
Moderator
Posty: 9994
Rejestracja: 22 wrz 2006, 22:10

Re: JForex

Nieprzeczytany post autor: raposo »

STom pisze:Takie pytania mam:
1. chcę zamknąć pozycję, ale nie mogę bo wyskakuje komunikat: "The order #nr was cancelled. No margin available." Czemu tak jest?
Dźwignia w Dukascopy jest obniżana na weekend do 1:30 (można to zmienić w ustawieniach konta na 1:90), stąd też nie możesz zamknąć pozycji, bo wtedy zabraknie Ci teraz marginu na utrzymanie reszty. Tak obstawiam - szczegółowych wyjaśnień może udzielić broker, bo ma wgląd do tego, co dzieje się na Twoim rachunku.
STom pisze:2. użycie dźwigni pokazuje mi 100% - nie za bardzo to rozumiem.
To taki Margin Level (jak na MT4), tylko liczony w drugą stronę ;)
https://forexclub.pl/mechanizny-zabezpi ... dukascopy/
http://forum.forexclub.pl/topic/254-mec ... nie-tylko/
STom pisze:3. gdzie znajdę jakiś opis platformy "dla zielonego" użytkownika?
Pewnie.
https://forexclub.pl/recenzja-platformy ... ej-jforex/
https://forexclub.pl/instrukcja-obslugi ... my-jforex/

Część z informacji może już być ciut nieaktualna, bo Dukascopy cały czas coś zmienia i dodaje, ale na pewno w/w linki rozwieją wiele Twoich wątpliwości ;)
ForexClub.pl
- Forex Club Tools
- Program Podatek 7.0
- RABATY PROWIZJI
| IC Markets (-21%) | Tickmill (-10%) | XTB (Pakiet książek) | Dukascopy (narzędzia do JForex) | LMAX (-20%) | FxPro (do -15%)

Zapraszamy do kontaktu

FXpleyer

Re: JForex

Nieprzeczytany post autor: FXpleyer »

Pytanie chyba głownie do -rookie- no ale każda pomoc się przyda , da się do tego testera dodać opcje Buy Stop oraz Sell Stop znacząco uprościło by mi to testy strategi , ps czy w DukaScopy za otwarcie zlecenia przeciwnego (hedge SL) pobierają dodatkowe zabezpieczenie ?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: JForex

Nieprzeczytany post autor: -rookie- »

FXpleyer pisze:Pytanie chyba głownie do -rookie- no ale każda pomoc się przyda , da się do tego testera dodać opcje Buy Stop oraz Sell Stop znacząco uprościło by mi to testy strategi , ps czy w DukaScopy za otwarcie zlecenia przeciwnego (hedge SL) pobierają dodatkowe zabezpieczenie ?
W Dukascopy pobierają opłaty oddzielnie za otwarcie i zamknięcie gdzie w MT4 chyba większość pobiera od razu całą prowizje przy otwarciu pozycji tzn jak otworzysz L potem S to masz na razie prowizje za otwarcie, potem jak zamkniesz doliczy za zamknięcie pozycji. Jest jeszcze opcja MERGE i chyba tutaj można zaoszczędzić na prowizji ale nie mam pewności.

Poprawiony tester masz w załączniku WidgetTest_Beta_ZleceniaOczekujace.java

Dodałem też możliwość zmiany wielkości pozycji w trakcie testu. Opis jest na obrazkach.

Jak masz jakieś sugestie to pisz, ja będę miał chwile albo ochote w tym się grzebać to może to zrobie.

Ta linia która pojawia się do ustawienia zleceń oczekujących... można ją usunąć jak nie chcesz stawiać zlecenia po prostu klikasz DELETE na klawiaturze albo w na kreske i remove z paska podręcznego, usuwasz obiekt z wykresu i potem klikniesz jeszcze raz na add price marker... i pojawia sie znowu. Przesuwasz ją na wykresie w góre i w dół. I potem na danym poziomie cenowym klikasz BUYSTOP lub SELLSTOP.

Jeśli domyślne wielkości dla dodawania i redukowania amount CI nie odpowiadają, to spróbuj sam to zmienić w kodzie na mniejsze. Jest 0.01 domyślnie czyli 10.000 jednostek. Jak dasz 0.001 to będzie 1000 jednostek w tych liniach Math.round(amount += 0.01); gdzieś w 328 i 342 linii.

Pewnie trzeba będzie dodać funkcje zamykania pojedynczych zleceń bo obecnie jest tylko opcja która zamyka wszystko... To trzeba by zmienić wygląd tego widgetu na JFrame chyba i dodać DefaultTableModel czyli to zaczęło by być podobne do myOfflineTrades. Wtedy zlecenia byłyby widoczne w tabelce pod guzikami panelu i można być je tam usuwać i edytować. Ale to jest roboty sporo... Ewentualnie mogę dodać kolejne guziki które będą usuwały oczekujące i te już otwarte, może jakoś da się to rozwiązać inaczej.

-- Dodano: 01 sty 2018, 14:03 --

Chyba z tym zabezpieczaniem chodziło pewnie o wykorzystanie marginu. Można to sprawdzać w funkcji onAccount. To jest główna funkcja programu po onTick, onMessage, onBar, ona tam już jest i wystarczy wyświetlać funkcje z account ( https://www.dukascopy.com/client/javado ... count.html ) np. w ten sposób można zobaczyć użycie dźwigni i equity

Kod: Zaznacz cały

public void onAccount(IAccount account) throws JFException {
console.getOut().println( account.getUseOfLeverage() + " " + account.getEquity() );
}
-- Dodano: 01 sty 2018, 17:43 --

Jakbyś sam chciał sie z tymi guzikami grzebać, to musisz skopiować kod innego button i sprawdzić warunek czy pozycje są np krótkie albo długie, albo czy typ zlecenia jest po cenie rynkowej czy oczekujące, albo czy zostało wypełnione czy nie. I możesz sam zrobić takie guziki w tym kodzie, sobie rozwijać to jak chcesz.

Kod: Zaznacz cały

JButton _testowyguzik = new JButton();
        _testowyguzik.setText( "testowy guzik" );
        _testowyguzik.setAlignmentX(Component.CENTER_ALIGNMENT);
        _testowyguzik.addActionListener( new ActionListener() {
            @Override
            public void actionPerformed( ActionEvent e ) {
                context.executeTask( new Callable<IOrder>() {
                 @Override
                 public IOrder call() throws Exception {    
                     for(IOrder order : engine.getOrders()){
                         console.getOut().println( order.getId() + " " + order.getState() );
                     }
                 return order;
                 }
              });
            }
        }); 
Na dole trzeba dodać w kodzie żeby ten guzik był widoczny w panelu

Kod: Zaznacz cały

 
...
panel.add(Box.createRigidArea(new Dimension(0,10)));
panel.add(button_sub001);
panel.add(Box.createRigidArea(new Dimension(0,10)));
panel.add(_testowyguzik); // <<<<<< TUTAJ MOŻESZ WSTAWIĆ 
panel.add(Box.createRigidArea(new Dimension(0,10)));
panel.add(button_close);
...
I z tego kodu console.getOut().println( order.getId() + " " + order.getState() ); zobaczysz że niektóre zlecenia są już wypełnione FILLED a niektóre dopiero otwarte ale jeszcze nie zrealizowane czyli OPENED. Potem możesz sprawdzić warunkami "if" które zlecenia są np OPENED a które już FILLED i w ten sposób zamykać funkcją order.close() tylko te z tego warunku. Warunek IOrder.State.FILLED == order.getState() sprawdza które zlecenia są już zrealizone

Kod: Zaznacz cały

JButton _testowyguzik = new JButton();
        _testowyguzik.setText( "testowy guzik" );
        _testowyguzik.setAlignmentX(Component.CENTER_ALIGNMENT);
        _testowyguzik.addActionListener( new ActionListener() {
            @Override
            public void actionPerformed( ActionEvent e ) {
                context.executeTask( new Callable<IOrder>() {
                 @Override
                 public IOrder call() throws Exception {    
                     for(IOrder order : engine.getOrders()){
                         if ( IOrder.State.OPENED == order.getState() ) {
                             console.getOut().println( order.getId() + " " + order.getState() + " tylko zlecenia otwarte ale niezrealizowane" );
                             //order,close();
                         }
                        if ( IOrder.State.FILLED == order.getState() ) {
                             console.getOut().println( order.getId() + " " + order.getState() + " tylko zlecenia wypełnione" );
                             //order,close();
                        } 
                     }
                 return order;
                 }
              });
            }
        }); 
Tutaj masz o tym jak kodować zlecenia https://www.dukascopy.com/wiki/en/devel ... onal-order
Tutaj o rodzajach zleceń https://www.dukascopy.com/client/javado ... mmand.html
Tutaj co można zrobić z tym "order" jeszcze, jakie informacje pobrać https://www.dukascopy.com/client/javado ... Order.html np właśnie order.close() albo order.getId()
I ostatnie to właśnie status zlecenia czy jest FILLED czy dopiero OPENED https://www.dukascopy.com/client/javado ... State.html

Możesz spróbować sam się z tym pobawić...

-- Dodano: 01 sty 2018, 18:04 --

Do sprawdzania czy pozycja jest długa czy krótka służy funkcja isLong(), czyli order.isLong(). Jest tutaj https://www.dukascopy.com/client/javado ... tml#isLong() w dokumentacji. I robisz tak samo warunek

Kod: Zaznacz cały

if ( order.isLong() ) { 
// zwraca wartosc true 
console.getWarn().println( order.isLong() );
} else {
// zwaraca wartość false czyli nie jest long a short
console.getWarn().println( order.isLong() );
}
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

ODPOWIEDZ