Zamykanie pozycji poprzez wskaźnik HMA

O jezykach programowania w platformach i nie tylko.
koniaczek
Gaduła
Gaduła
Posty: 100
Rejestracja: 18 lut 2011, 11:00

Zamykanie pozycji poprzez wskaźnik HMA

Nieprzeczytany post autor: koniaczek »

Witam,,

czasem jest tak ze łapiemy sie na trend, ale takki ze ciezko z nim zawalczyc TS lub innym podążaniem za cena, wtedy wypada zamknac pozycję ze wskaźnika.
Niezły jest HMA i momo ze repaintuje to mozna go uzyc przy odpowiednich wartosciach.

Pytanie co wstawic po if w kodzie:

Kod: Zaznacz cały


double hma=iCustom(Symbol(),0,"HMA",HMAPer,0,TradeShift);
double hma1=iCustom(Symbol(),0,"HMA",HMAPer,1,TradeShift);
double hma2=iCustom(Symbol(),0,"HMA",HMAPer,2,TradeShift);

if( ??????????)
{   for(int g = OrdersTotal()-1;g>=0;g--)
   {  if(OrderSelect(g,SELECT_BY_POS,MODE_TRADES))
      {  if(OrderType()==OP_SELL)
         { OrderClose(OrderTicket(),OrderLots(),Ask,2,Black);
         } 
      }
   }
}
by zamkneło krótka pozycje gdy HMA zmieni kolor (kierunek)

tu linki do HMA http://www.forex.nawigator.biz/dyskusje ... hp?t=15615

Awatar użytkownika
thisredone
Stały bywalec
Stały bywalec
Posty: 72
Rejestracja: 05 sie 2010, 17:07

Nieprzeczytany post autor: thisredone »

do tego potrzebujesz wiedzieć jaki był kierunek żeby orzec czy się zmienił

możesz do tego celu wykorzystać zmienną, która będzie pamiętać kierunek lub możesz też sczytywać wartości tego wskaźnika z poprzedniej świeczki.

Kod: Zaznacz cały

double hma=iCustom(Symbol(),0,"HMA",HMAPer,0,TradeShift);
double hma_s=iCustom(Symbol(),0,"HMA",HMAPer,0,TradeShift+1);

if((hma!=EMPTY_VALUE && hma_s==EMPTY_VALUE) || (hma==EMPTY_VALUE && hma_s|=EMPTY_VALUE))
{
//(...)
}
pamiętam jednak, że był jakiś problem z tym EMPTY_VALUE więc daj mi znać czy działa

koniaczek
Gaduła
Gaduła
Posty: 100
Rejestracja: 18 lut 2011, 11:00

Nieprzeczytany post autor: koniaczek »

Dzieki za odpowiedz, dzial ale tylko na zamykanie longów.
Czy mógłbyś napisać jak powinien wygladać warunek na szorta, zupelnie sie nie orientuje o co chodzi z EMPTY_VALUE?

Awatar użytkownika
thisredone
Stały bywalec
Stały bywalec
Posty: 72
Rejestracja: 05 sie 2010, 17:07

Nieprzeczytany post autor: thisredone »

ten wskaźnik wygląda tak, że ma 3 bufory.

Najważniejszy jest bufor z indeksem 2. To on przechowuje wartości jakie przyjmuje ten wskaźnik.
Bufory 0 i 1 to są bufory kolorów. Jeden ma kolor1 drugi kolor2.
Jeżeli wskaźnik zmienił kolor z kolor1 na kolor2 to znaczy, że buforowi nr0 nadano wartość EMPTY_VALUE, a buforowi nr1 nadano wartość taką samą jak buforowi nr2.
I w drugą stronę. Jeśli kolor był kolor2, a teraz jest kolor1 to znaczy, że bufor nr1 dostał wartość EMPTY_VALUE, a bufor nr0 wartość bufora nr2 czyli tego, który przechowuje wartości naszej linii.

Tak więc zbieramy sobie wartości bufora nr0 z pewnej świeczki oraz tej świeczki, która była bezpośrednio za nią. Jeżeli wartość na poprzedniej świeczce była równa EMPTY_VALUE, a na kolejnej już nie to znaczy, że kolor zmienił się z kolor1, a bufor nr1 ma wartość EMPTY_VALUE.
W każdym momencie jeden z buforów (nr0 lub nr1) ma wartość EMPTY_VALUE.

Jeśli to wydaje się zagmatwane albo niejasne to zamień sobie słowa 'kolor1' na 'czerwony' i 'kolor2' na 'niebieski'.
Jak ogarniesz to łatwo będzie ci samemu napisać warunek. Nie podaje gotowca bo w tym wypadku uważam, że dobrze jest samemu zrozumieć temat.

ODPOWIEDZ