dokładanie nowej pozycji do stratnej

ODPOWIEDZ
no avatar
irmentruda
Maniak Forex
Posty: 1103
Rejestracja: piątek 19 wrz 2014, 11:30
Lat na Forex: 3
Rodzaj rachunku: Rachunek rzeczywisty
Lokalizacja: Silesia

dokładanie nowej pozycji do stratnej

czwartek 24 mar 2016, 23:56

Hej,

zapragnąłem sobie własnoręcznie napisać funkcję uśredniania ceny i jako informatyk-amator poległem na wstępie.
Idea jest zawsze ta sama:
- pierwszy trejd ma stratę powiedzmy 200 punktów (20 pipsów) to otwieramy drugą pozycję, i tak po kolei trzecią i czwartą aż do MC :)
Mój problem to jest, że nie wiem jak to zrobić aby to było skalowalne, tj. abym z zewnątrz podał sobie N maksymalną ilość pozycji, jaką może robot otworzyć. Dla każdej nowej pozycji jest inny wolumen oraz inny odstęp od poprzedniej stratnej pozycji.
Moje pytanie:
1) czy to rozwiązuje się poprzez stworzenie tablicy jednowymiarowej o długości N i każda komórka w tablicy to jest kolejny dostępny wolumen oraz w drugiej tablicy odstęp od poprzedniego zlecenia? Czy może to inaczej należy rozwiązać?
2) jak wybrać ostatnie otwarte zlecenie aby z niego odczytac OpenOrderPrice() oraz OrderLot()?

Pozdrawiam

no avatar
JAREK67
Pasjonat Forex
Posty: 621
Rejestracja: poniedziałek 27 sie 2012, 21:25
skype: jarekpa67
Lat na Forex: 11

Re: dokładanie nowej pozycji do stratnej

piątek 25 mar 2016, 07:39

irmentruda pisze:Hej,

zapragnąłem sobie własnoręcznie napisać funkcję uśredniania ceny i jako informatyk-amator poległem na wstępie.
Idea jest zawsze ta sama:
- pierwszy trejd ma stratę powiedzmy 200 punktów (20 pipsów) to otwieramy drugą pozycję, i tak po kolei trzecią i czwartą aż do MC :)
Mój problem to jest, że nie wiem jak to zrobić aby to było skalowalne, tj. abym z zewnątrz podał sobie N maksymalną ilość pozycji, jaką może robot otworzyć. Dla każdej nowej pozycji jest inny wolumen oraz inny odstęp od poprzedniej stratnej pozycji.
Moje pytanie:
1) czy to rozwiązuje się poprzez stworzenie tablicy jednowymiarowej o długości N i każda komórka w tablicy to jest kolejny dostępny wolumen oraz w drugiej tablicy odstęp od poprzedniego zlecenia? Czy może to inaczej należy rozwiązać?
2) jak wybrać ostatnie otwarte zlecenie aby z niego odczytac OpenOrderPrice() oraz OrderLot()?

Pozdrawiam

Kod: Zaznacz cały

 double lastOpenOrderPrice(string symbol,string type){
 int time=0;
 double openlevel =0;
 for(int i=0;i<OrdersTotal();i++) {
 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
 if (OrderSymbol()==symbol && magic==OrderMagicNumber() && OrderType() == type){
 if(OrderType()<=OP_SELL){
 if(OrderOpenTime()>time) {
 time=OrderOpenTime();
 openlevel = OrderOpenPrice();
 }
 }
 }
 }
 }
 return(openlevel);
 }
Też jestem amatorem ale od lat korzystam z takiej funkcji i wszelkich jej kombinacji.
Dalej chyba sobie poradzisz ;)
Obrazek

no avatar
irmentruda
Maniak Forex
Posty: 1103
Rejestracja: piątek 19 wrz 2014, 11:30
Lat na Forex: 3
Rodzaj rachunku: Rachunek rzeczywisty
Lokalizacja: Silesia

Re: dokładanie nowej pozycji do stratnej

piątek 25 mar 2016, 08:34

hej:) dzięki!

rozumiem, że

Kod: Zaznacz cały

if(OrderOpenTime()>time) {
 time=OrderOpenTime();
zapewnia nam, że dostajemy dane dla ostatniej otwartej pozycji? dobrze to rozumiem.

a co do pierwszej części mojego problemu, nie lepiej byłoby zamiast tworzyć tablicę zrobić kontrolę pozycji tak samo przy pomocy iteracji?

no avatar
JAREK67
Pasjonat Forex
Posty: 621
Rejestracja: poniedziałek 27 sie 2012, 21:25
skype: jarekpa67
Lat na Forex: 11

Re: dokładanie nowej pozycji do stratnej

piątek 25 mar 2016, 09:58

irmentruda pisze:hej:) dzięki!

rozumiem, że

Kod: Zaznacz cały

if(OrderOpenTime()>time) {
 time=OrderOpenTime();
zapewnia nam, że dostajemy dane dla ostatniej otwartej pozycji? dobrze to rozumiem.

a co do pierwszej części mojego problemu, nie lepiej byłoby zamiast tworzyć tablicę zrobić kontrolę pozycji tak samo przy pomocy iteracji?
Ja z reguły tak robię. Nie tworzę tablic.
Obrazek

no avatar
irmentruda
Maniak Forex
Posty: 1103
Rejestracja: piątek 19 wrz 2014, 11:30
Lat na Forex: 3
Rodzaj rachunku: Rachunek rzeczywisty
Lokalizacja: Silesia

Re: dokładanie nowej pozycji do stratnej

piątek 25 mar 2016, 23:42

https://www.youtube.com/watch?v=QmKvM_Q4jKM

jako podkład do kodowania + szklanka przezroczystego płynu regionalnej owocowej produkcji:)

ale opanowałem teamt, dokłada pozycje, zwiększa ich wolumen, teraz opanowuję zmianę odstępu dla następnych pozycji.

no avatar
JAREK67
Pasjonat Forex
Posty: 621
Rejestracja: poniedziałek 27 sie 2012, 21:25
skype: jarekpa67
Lat na Forex: 11

Re: dokładanie nowej pozycji do stratnej

sobota 26 mar 2016, 09:03

Proponuję zastosować jakiś mechanizm uzależniający odległość od zmienności na rynku.
Na przykład "odległość nie mniejsza niż ..... lub równa iAtr(....)"
Trudniej o MC wtedy. ;)
Obrazek

no avatar
irmentruda
Maniak Forex
Posty: 1103
Rejestracja: piątek 19 wrz 2014, 11:30
Lat na Forex: 3
Rodzaj rachunku: Rachunek rzeczywisty
Lokalizacja: Silesia

Re: dokładanie nowej pozycji do stratnej

sobota 02 kwie 2016, 23:05

Hej,

opanowałem temat:)

EA sam puszcza pozycję wg wybranego setupu i "istniejącego" trendu, mam TS albo BE dla ostatniej pozycji do wyboru, SL albo GridMode, moge wybierać maksymalną ilość dokładanych pozycji, wolumen i odległość następnej pozycji są zmienne wg mnożnika, wprowadziłem też coś, czego mi najbardziej brakuje w Adenan Scalping to jest cos, co nazwałem "EmergencyTP" czyli TakeProfit ustawiany od uśrednionego wejścia od drugiej pozycji, mniejszy od pierwotnej wartości TP - pomaga szybko zamknąć nietrafione wejścia a nie powoduje dużych drawdownów mimo, że ogranicza zyski.
Teraz muszę pomyśleć nad uporządkowaniem kodu - wydaje mi się, że to co jest może zamulać, ponieważ wszystko dzieje się w oparciu o ticki. Ustanawianie nowego TP od uśrednionego wejścia nie musi być badane co tick, wystarczy np. raz na 30 lub 60 sek. Ktoś może podpowiedzieć jak to zrobić?
W tygodniu jak będzie rynek działał muszę jeszcze sprawdzić czy jeśli ręcznie usunę którąś pozycję to czy TP od nowa samo wyliczy i ustawi się.

edit1: to pierwszy mój EA stworzony od początku do końca na bazie osobnych funkcji, rzeczywiście dużo czytelniej to wszystko wygląda.
edit2: jednak coś nie działa, nie trailują się ostatnie pozycje jeśli zostaną stworzone. Trailowanie i BE działają tylko dla pierwszej pozycji.
edit3: nie działa BE dla shortów, nie wiedzieć dlaczego. trailing dla shortów działa (wszystkich) ale jak wyłączy pozycję to nie przelicza uśrednionego TP a to jest problem.
edit4: BE dla shortów nie działał bo funkcja została stworzona dla pozycji, której od początku miała SL, tutaj jeden warunek nie mial prawa spełnić się. jest inny problem dalej, jeśli przy koszyków np. shortów ostatnia pozycja zostanie wybita na BE lub TS to TP nie przeliczy się i jest możliwość zamknięcia grupy trejdów na ujemnym bilansie. nie mam jeszcze pojecia jak to poprawic.

no avatar
irmentruda
Maniak Forex
Posty: 1103
Rejestracja: piątek 19 wrz 2014, 11:30
Lat na Forex: 3
Rodzaj rachunku: Rachunek rzeczywisty
Lokalizacja: Silesia

Re: dokładanie nowej pozycji do stratnej

czwartek 07 kwie 2016, 21:13

opanowałem problem ze słąbą wydajnością kodu, wszystkiemu było winne przeliczanie warunków do gridu na tickach, zrobiłem teraz na kolejnych świecach (Bars) a zrobie jeszcze, że będę mógł sobie wybrać interwał świec (iBars).
Co ciekawe, metoda liczenia istniejących pozycji w iteracji miała wpływ na sposób wprowadzania nowycy pozycji, już poprawione.

no avatar
irmentruda
Maniak Forex
Posty: 1103
Rejestracja: piątek 19 wrz 2014, 11:30
Lat na Forex: 3
Rodzaj rachunku: Rachunek rzeczywisty
Lokalizacja: Silesia

Re: dokładanie nowej pozycji do stratnej

niedziela 10 kwie 2016, 18:34

iBars nie sprawdzilo sie, byc moze w zlej kolejnosci powstawialem do kodu, teraz zrobilem na bazie TimeMinute(TimeCurrent()) zeby sprawdzac ilosc otwarttych pozycji oraz poziom TP co minute i poki co dziala dobrze, chociaz dalej mam watpliwosci, czy to cos poprawilo w wydajnosci czyli, ze rzeczywiscie sprawdza tylko co minute a nie co ticka. niestety jestem za cienki aby dojsc do tego. same skumanie mqla i forexa zajelo mi ok. 2 lat wiec moze przez najblizsze dwa lata okaze sie, czy to dobrze dziala.

w sumie moduly BE i TS sa niepotrzebne, zbyt male zakresy TP aby to mialo sens.

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości