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
dokładanie nowej pozycji do stratnej
- irmentruda
- Maniak Forex
- Posty: 1103
- Rejestracja: piątek 19 wrz 2014, 11:30
- Lat na Forex: 3
- Rodzaj rachunku: Rachunek rzeczywisty
- Lokalizacja: Silesia
- 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
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);
}
Dalej chyba sobie poradzisz ;)
- 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
hej:) dzięki!
rozumiem, że
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?
rozumiem, że
Kod: Zaznacz cały
if(OrderOpenTime()>time) {
time=OrderOpenTime();
a co do pierwszej części mojego problemu, nie lepiej byłoby zamiast tworzyć tablicę zrobić kontrolę pozycji tak samo przy pomocy iteracji?
- 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
Ja z reguły tak robię. Nie tworzę tablic.irmentruda pisze:hej:) dzięki!
rozumiem, żezapewnia nam, że dostajemy dane dla ostatniej otwartej pozycji? dobrze to rozumiem.Kod: Zaznacz cały
if(OrderOpenTime()>time) { time=OrderOpenTime();
a co do pierwszej części mojego problemu, nie lepiej byłoby zamiast tworzyć tablicę zrobić kontrolę pozycji tak samo przy pomocy iteracji?
- 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
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.
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.
- 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
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. ;)
Na przykład "odległość nie mniejsza niż ..... lub równa iAtr(....)"
Trudniej o MC wtedy. ;)
- 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
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.
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.
- 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
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.
Co ciekawe, metoda liczenia istniejących pozycji w iteracji miała wpływ na sposób wprowadzania nowycy pozycji, już poprawione.
- 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
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.
w sumie moduly BE i TS sa niepotrzebne, zbyt male zakresy TP aby to mialo sens.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość