Oczekiwanie na przecięcie średnich - wstrzymanie transakcji

O jezykach programowania w platformach i nie tylko.
_Tomo_
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 16 sie 2010, 23:15

Oczekiwanie na przecięcie średnich - wstrzymanie transakcji

Nieprzeczytany post autor: _Tomo_ »

Witam. Uczę się programować w MQL. Wymyśliłem sobie prosty system, który chciałbym zaimplementować i przetestować. Napotkałem jednak na drobny problem. Przechodząc do rzeczy:

Założenia:
Dominującym wskaźnikiem są 2 linie MA nazwijmy dla porządku fast i slow.
Drugi wskaźnik służący jako SL, ewentualnie jako natychmiastowy warunek zamknięcia.

Jak to powinno działać?
linia fast > linia slow sygnał kupna - pozycja L
wskaźnik 2 daje sygnał Close. Pozycja zamknięta.
oczekiwanie na przecięcie linii ( fast < slow ) (w tym czasie nie powinno być transakcji)
linia fast < linia slow sygnał sprzedaży - pozycja S
wskaźnik 2 daje sygnał Close. pozycja zamknięcia
.
.
.loop


Problem?

fast > slow
wsk2 daje Close.

warunek fast>slow nadal spełniony więc system otwiera L (niepotrzbnie)
wskaźnik2 nadal daje Close

warunek fast>slow nadal spełniony więc system otwiera L (niepotrzbnie)
.
.
.


Mam nadzieję że ktoś zrozumie to co napisałem. Nie potrafię niestety tłumaczyć.
Domyślam się że można to zrobić jakoś na dodatkowej zmiennej, jednak if-ów w tym wypadku musiałoby być na prawdę dużo.
Jak rozwiązujecie to w swoich kodach ?

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

_Tomo_ pisze:warunek fast>slow nadal spełniony więc system otwiera L (niepotrzbnie)
wskaźnik2 nadal daje Close
Nie masz sprawdzacz czy jest wieksze badz mniejsze, ale czy sie srednie przeciely.

a jak sprawdzacz czy sie dwie srednie przeciely?
a no np

Kod: Zaznacz cały

fast[1]>slow[1] && fast[2]<=slow[2] 

czyli slownie, sprawdzacz czy w danym momencie jest juz fast wieksza niz slow, i sprawdzacz czy w poprzedniej swieczce byla mniejasza niz slow.

Mam nadzieje, ze naprowadzilem.

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

i nie zapomnij sprawdzać czy już nie ma otwartej transakcji, albo sprawdzanie raz na świece
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

_Tomo_
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 16 sie 2010, 23:15

Nieprzeczytany post autor: _Tomo_ »

Dzięki. Widzisz o takie coś mi chodziło.
Trochę orientuję się w Cpp, ale muszę nauczyć się wykorzystywać te funkcje z MQL

Co do sprawdzania raz na świece, wykorzystałem kod który bardzo ładnie (i zawsze działa), znaleziony na MQL4.com chyba isNewBar v 3.0

Jeszcze chciałbym do końca zrozumieć jak to działa.
Chodzi o to, że w przypadku MA jest przechowywana wartość w tablicy, czy trzeba użyć MAonArray ? I jak to jest indeksowane od 0 czy od 1 ?
Jak to się ma na przykład do Linii DI+/DI- jeżeli nie ma wbudowanego to samemu mam zrobić tablicę i trzymać 2 wartości w tył ?

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

_Tomo_ pisze:Chodzi o to, że w przypadku MA jest przechowywana wartość w tablicy, czy trzeba użyć MAonArray ?
Jezeli chcesz ja tylko odczytywac to nie musisz, bo od razu w IMA masz index (0 to jest obecna swieczka, 1 pierwsza to jedna wstecz itd.)

_Tomo_ pisze:Jak to się ma na przykład do Linii DI+/DI- jeżeli nie ma wbudowanego to samemu mam zrobić tablicę i trzymać 2 wartości w tył ?
Jezeli jest dany wskaznik to jak wyzej, zawsze odwolujesz sie do jego indeksu poprzez shift (Zazwyczaj ostani parametr).

W przypadku wiekszj ilosci "wykresow" w jednym indykatorze, odwolujesz sie do nich poprzez index numerowane od 0 do 7 (wniosek: jeden indykator moze skladac sie z maksymalnie 8 "wykresow")

rrozak
Stały bywalec
Stały bywalec
Posty: 76
Rejestracja: 19 mar 2010, 16:43

Nieprzeczytany post autor: rrozak »

_Tomo_, gotowy EA działający na takiej zasadzie masz w instalce MT4.

_Tomo_
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 16 sie 2010, 23:15

Nieprzeczytany post autor: _Tomo_ »

LowcaG pisze:
Jezeli jest dany wskaznik to jak wyzej, zawsze odwolujesz sie do jego indeksu poprzez shift (Zazwyczaj ostani parametr).
To znacznie upraszcza sprawę.
Myślałem że shift jest parametrem przesunięcia.
Z tego wnioskuję że we wskaźniku iMA przesunięciem jest ma_shift a shift indeksem w tablicy zgadza się ?

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

_Tomo_ pisze:Z tego wnioskuję że we wskaźniku iMA przesunięciem jest ma_shift a shift indeksem w tablicy zgadza się ?
tak

ODPOWIEDZ