JForex

Sprawy techniczne dotyczące poszczególnych platform handlowych.
Awatar użytkownika
raposo
Moderator
Moderator
Posty: 9417
Rejestracja: 22 wrz 2006, 22:10
Lokalizacja: Trójmiasto
Kontakt:

Re: JForex

Nieprzeczytany post autor: raposo »

Ok, już rozumiem o co chodzi ;). No to niestety zapewne "efekt uboczny" wprowadzonych zmian - filtruje momenty kiedy nie ma handlu, a nie kiedy jest handel ale np. cena nie uległa zmianie. Co by nie było, według mnie słusznie, bo jednak świece to efekt upływu czasu, a nie zmiany ceny. Ale możesz napisać w tej sprawie do Dukascopy. Parę lat temu zbierałem na forum hurtowo uwagi traderów i wysyłałem do nich - wiele z tych rzeczy zostało wprowadzone (choć czasem chwilę to trwało :) ).
ForexClub.pl
- Forex Club Tools
- Program Podatek 5.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

Eco13
Uczestnik
Uczestnik
Posty: 3
Rejestracja: 14 maja 2020, 01:01

Re: JForex

Nieprzeczytany post autor: Eco13 »

"Co by nie było, według mnie słusznie, bo jednak świece to efekt upływu czasu, a nie zmiany ceny."

Zgadza się. Sam widok świec i ich występowanie jest uzasadnione.
Wskaźnik natomiast jest narzędziem przetwarzania i obrazowania działań tłumu podmiotów dokonujących transakcji. Jeżeli wartości pustych świec, czyli wartości parametrów rynku w których nikt nie dokonał transakcji, stają się elementem składowym wyliczeń wskaźników, to już tkwi w tym błąd metodologiczny, bo działania tłumu w tych momentach po prostu nie było. Zapewne można by się doszukać pewnych zalet wskaźników i ich zastosowań wyliczanych z uwzględnieniem wartości parametrów pustych świec, bo istnienie tych pustych świec coś przecież znaczy. Jednak tradycyjna wymowa wskaźnika odnosi się do analizy (i efektów tej analizy) momentów rynku w których coś aktywnego się zdarzyło a nie do elementów, w których nie zdarzyło się nic.

Online
Awatar użytkownika
ninjaproject
Pasjonat
Pasjonat
Posty: 1236
Rejestracja: 30 lip 2019, 13:15
Kontakt:

Re: JForex

Nieprzeczytany post autor: ninjaproject »

raposo pisze:
14 maja 2020, 11:29
Ok, już rozumiem o co chodzi ;). No to niestety zapewne "efekt uboczny" wprowadzonych zmian - filtruje momenty kiedy nie ma handlu, a nie kiedy jest handel ale np. cena nie uległa zmianie. Co by nie było, według mnie słusznie, bo jednak świece to efekt upływu czasu, a nie zmiany ceny. Ale możesz napisać w tej sprawie do Dukascopy. Parę lat temu zbierałem na forum hurtowo uwagi traderów i wysyłałem do nich - wiele z tych rzeczy zostało wprowadzone (choć czasem chwilę to trwało :) ).
Niestety, ale się mylisz.
Owszem, świeca jest ujęta w interwał czasowy, ale nie będzie rysowana, jeżeli nie ma ticków.
Można to łatwo zaobserwować i często jest tak, że czas świecy upłynął, a kolejna się jeszcze nie rysuje, bo ticków nie ma.
Dadas, fx-technik, obecnie ninjaproject.
Ekspert od MetaTrader 4.

Awatar użytkownika
raposo
Moderator
Moderator
Posty: 9417
Rejestracja: 22 wrz 2006, 22:10
Lokalizacja: Trójmiasto
Kontakt:

Re: JForex

Nieprzeczytany post autor: raposo »

ninjaproject pisze:
14 maja 2020, 16:06
Niestety, ale się mylisz.
Owszem, świeca jest ujęta w interwał czasowy, ale nie będzie rysowana, jeżeli nie ma ticków.
Można to łatwo zaobserwować i często jest tak, że czas świecy upłynął, a kolejna się jeszcze nie rysuje, bo ticków nie ma.
Tak, z małą gwiazdką *wystarczy jeden tik, aby świeca miała postać "_" - no ale to dalej świeca ;)
Zgadza się. Sam widok świec i ich występowanie jest uzasadnione.
Wskaźnik natomiast jest narzędziem przetwarzania i obrazowania działań tłumu podmiotów dokonujących transakcji. Jeżeli wartości pustych świec, czyli wartości parametrów rynku w których nikt nie dokonał transakcji, stają się elementem składowym wyliczeń wskaźników, to już tkwi w tym błąd metodologiczny, bo działania tłumu w tych momentach po prostu nie było. Zapewne można by się doszukać pewnych zalet wskaźników i ich zastosowań wyliczanych z uwzględnieniem wartości parametrów pustych świec, bo istnienie tych pustych świec coś przecież znaczy. Jednak tradycyjna wymowa wskaźnika odnosi się do analizy (i efektów tej analizy) momentów rynku w których coś aktywnego się zdarzyło a nie do elementów, w których nie zdarzyło się nic.
Również się zgadzam. Prawdopodobnie deweloperzy JForex tego nie uwzględnili, ale trzeba również przyznać, że taki problem będzie występował przede wszystkim albo na bardzo mało płynnych rynkach (tego za bardzo Dukas nie ma w ofercie), albo właśnie na sekundówkach.

Śmiało pisz do supportu. Może jest takich osób więcej. A nóż wprowadzą w jednej z kolejnych aktualizacji stary tryb filtracji ;)
ForexClub.pl
- Forex Club Tools
- Program Podatek 5.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

rookie1
Bywalec
Bywalec
Posty: 15
Rejestracja: 15 maja 2020, 13:39

Re: JForex

Nieprzeczytany post autor: rookie1 »

Technik jak zwykle swoje. Na jforex tick pojawia się gdy jest wolumen transakcji, świece mogą się rysować bez ticków, właśnie są to te kreski o których piszą wyżej. Może da radę filtrować przez użycie feedDescriptor, ale z tego co widzę ALL_FLATS nie działa, albo ja coś tutaj źle zrobiłem. Nie wiem co tam wymyśliłeś bo tajemniczo piszesz strasznie, ale ten kod niżej właśnie pokazuje jak użyć feedDescriptor i zobaczysz że np na wykresie 10 sekundowym płaskie świece rysują się w określonym interwale, czyli np co 10 sekund, ale z wolumenem 0, a pod spodem wtedy nie ma ticków (na wykresie tickowym nie pojawiają się ticki). Dopiero jak wpadnie jakiś tick wtedy pojawia się wolumen i rysuje się jakaś świeca (nie płaska). To jest trop tylko gdzie szukać... :arrow: :arrow:

Więc jeśli to jest automat, możana odfiltrować wyniki dając warunek żeby nie uzględniało świec które mają wolumen równy 0.

https://www.dukascopy.com/wiki/en/devel ... ents/feeds
326thfdsjhu568i67oik76tx123x.png

Kod: Zaznacz cały

package jforex;

import java.util.*;

import com.dukascopy.api.*;
import com.dukascopy.api.feed.*;
import com.dukascopy.api.feed.util.*;

public class Strategy1505020_tests implements IStrategy, IFeedListener {
    private IEngine engine;
    private IConsole console;
    private IHistory history;
    private IContext context;
    private IIndicators indicators;
    private IUserInterface userInterface;
    private IChart chart;
    
    public IFeedDescriptor feedDescriptor;
    
    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();
        feedDescriptor = new TimePeriodAggregationFeedDescriptor(Instrument.DEUIDXEUR, Period.TEN_SECS, OfferSide.BID, Filter.ALL_FLATS);
        //this.chart = context.getChart(feedDescriptor.getInstrument());
        //context.openChart(feedDescriptor);
       
        //console.getOut().println(chart.getFilter());
        //feedDescriptor.setFilter(Filter.ALL_FLATS);
        context.subscribeToFeed(feedDescriptor, this);
       //   chart.setInstrument(feedDescriptor.getInstrument());
        context.openChart(feedDescriptor);
        //chart.setFeedDescriptor(feedDescriptor);
        console.getOut().println(feedDescriptor.getFilter());
        //chart.setFeedDescriptor(feedDescriptor);
        this.chart = context.getChart(feedDescriptor.getInstrument());
        
        
    }

    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 { 
    }
    
    @Override
    public void onFeedData(IFeedDescriptor feedDescriptor, ITimedData feedData) {
        console.getOut().println( feedData + " of feed: " + feedDescriptor);
        console.getOut().println(feedDescriptor.getFilter());
        chart.repaint();
        
        IBar b = (IBar)feedData; // konwersja z IFeedData do IBar
        console.getOut().println(" ==> " + b);
        
        try {
            ITimedData data = history.getFeedData(feedDescriptor, 0);
            
            IBar bar = history.getBar(
                feedDescriptor.getInstrument(), 
                feedDescriptor.getPeriod(), 
                feedDescriptor.getOfferSide(), 
                1
            );
            console.getOut().println( " bar info " + bar);
        } catch (JFException e) {}
    }
}
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 15 maja 2020, 14:51 przez rookie1, łącznie zmieniany 2 razy.

Online
Awatar użytkownika
ninjaproject
Pasjonat
Pasjonat
Posty: 1236
Rejestracja: 30 lip 2019, 13:15
Kontakt:

Re: JForex

Nieprzeczytany post autor: ninjaproject »

Ja pirdolę!
Taka kreska to nie jest świeca.
Jeżeli dana kreska nie ma żadnych notowań, to jest tylko wypełnieniem interwału.
W kodzie można takie coś odfiltrować swobodnie.
Dadas, fx-technik, obecnie ninjaproject.
Ekspert od MetaTrader 4.

rookie1
Bywalec
Bywalec
Posty: 15
Rejestracja: 15 maja 2020, 13:39

Re: JForex

Nieprzeczytany post autor: rookie1 »

ninjaproject pisze:
15 maja 2020, 16:10
Ja pirdolę!
Taka kreska to nie jest świeca.
Jeżeli dana kreska nie ma żadnych notowań, to jest tylko wypełnieniem interwału.
W kodzie można takie coś odfiltrować swobodnie.
Aha

rookie1
Bywalec
Bywalec
Posty: 15
Rejestracja: 15 maja 2020, 13:39

Re: JForex

Nieprzeczytany post autor: rookie1 »

yep, chyba trzeba pisać do supportu w tym temacie, bo patrząc w dokumentację jest metoda .repaint() która powinna odświeżyć wykres, więc gdyby pobrać feedDescriptor z aktualnie otwarte wykresu, zmienić filtr na ALL_FLATS, potem otworzyć wykres z tym filtrem i zrobic reapint wtedy powinno coś się zmienić, a tak się nie dzieje. Jedynie support w tej sprawie, albo odfitrowanie tego jeśli to EA j/w
https://www.dukascopy.com/client/javado ... #repaint--
https://www.dukascopy.com/client/javado ... pi.Filter)
https://www.dukascopy.com/client/javado ... ilter.html
Albo ja coś źle operuję na tych obiektach java, że to nie odwołuję się do tych obszarów pamięci do których powinno, w sensie coś robię źle w tym kodzie tutaj :think: :-/ W każdym razie też pamiętam że była ta opcja jakiś czas temu w jforex i też tego używałem i teraz jest tylko WEEKENDS z tego co pokazuje się w konsoli jako default.

To się uruchamia jako normalną strategię, nie tester.

Kod: Zaznacz cały

    //....
    private IChart chart;
    public IFeedDescriptor feedDescriptor;

    public void onStart(IContext context) throws JFException {
        // ...
        for (IChart c : context.getCharts()) {
            this.chart = c;
            print(c.getFilter());
            feedDescriptor = c.getFeedDescriptor();
            feedDescriptor.setFilter(Filter.ALL_FLATS);
            c.repaint();
            context.openChart(feedDescriptor);
            c.repaint();
            print(feedDescriptor);
            print(c);
        }
        context.stop();
    }
Ostatnio zmieniony 16 maja 2020, 08:08 przez rookie1, łącznie zmieniany 3 razy.

ODPOWIEDZ