otwieranie za pomocą parabolic sar problem

O jezykach programowania w platformach i nie tylko.
_koder
Bywalec
Bywalec
Posty: 9
Rejestracja: 23 maja 2011, 11:39

Nieprzeczytany post autor: _koder »

Wartość wskaźnika Parabolic SAR wyliczana jest na podstawie ceny maksymalnej i minimalnej bieżącego i poprzedniego słupka.

Dlatego jeżeli na wykresie pojawia się nowy słupek notowań, wówczas jego min. i maks. mają taką samą wartość i prawdopodobnie wartość SAR będzie zbliżona do wartości wskaźnika z poprzedniego słupka notowań, tzn. obie wartości będą nad lub pod świcami.
Dla bieżącego słupka, wartość Parabolic SAR przeliczana jest od nowa przy każdym ticku, dlatego w miarę jak zawierane są kolejne transakcje, zmienia się wartość min. i maks. słupka, a przez to i wartość Parabolic SAR.

Aby parabolic SAR zasygnalizował zmianę trendu, najczęściej potrzeba większego ruchu (przynajmniej przekraczającego poprzednie min/max), co tłumaczy opóźnienia w otwieraniu pozycji oraz kiepskie ceny.
"Ludzie, którzy unikają niepowodzeń, unikają też sukcesu"

bialy
Stały bywalec
Stały bywalec
Posty: 54
Rejestracja: 16 maja 2011, 20:41

moja funkkcja pSAR

Nieprzeczytany post autor: bialy »

ja uzywam tak /case 1/ - /case 0 to chyba bylo do skalpowania albo jakis inny pomysl, nie pamietam/

Kod: Zaznacz cały

bool pSAR_Signal(int type, double sar_step, double sar_max, int mode) {
   double SAR0 = iSAR(NULL,0,sar_step,sar_max,0);
   double SAR1 = iSAR(NULL,0,sar_step,sar_max,1);
   double SAR2 = iSAR(NULL,0,sar_step,sar_max,2);
   
   switch(mode) {
      case 0 :
         if(type == OP_BUY)
            if(SAR0 > SAR1 && Bid > SAR0) return(True);
         if(type == OP_SELL)
            if(SAR0 < SAR1 && Bid < SAR0) return(True);
         break;
      case 1 :
         if(type == OP_BUY)
            if(Close[2] < SAR2 && Close[1] > SAR1 && Open[0] > SAR0) return(True);
         if(type == OP_SELL)
            if(Close[2] > SAR2 && Close[1] < SAR1 && Open[0] < SAR0) return(True);
         break;
      default : Print("ZLY PARAMETR FUNKCJI pSAR_Signal()"); return(0); break;
   }
   return(0);
}
i wywolanie funkcji

Kod: Zaznacz cały

if(pSAR_Signal(OP_BUY,sar_step,sar_max,1))
jesli funkcja zwraca True to dalej
oszczedzajmy cykle procesora

ODPOWIEDZ