26 November 2012

Heiken Ashi w MQL 5

W MT5 zmieniono sposób komunikacji ze wskaźnikami - www.mql5.com. Pozostawiono funkcję iCustom(), która w prosty sposób pozwala wykorzystać dowolne wskaźniki. W przypadku Heiken Ashi, który jest w standardowym wyposażeniu MT5, dzięki funkcji iCustom() istnieje możliwość zajrzenia w jego bufory bez pełnej obsługi wskaźnika. Zakładam, że interesuje mnie aktualny kolor świecy w wybranym okresie. Standardowy wskaźnik Heiken Ashi posiada bufor ExtColorBuffer[], w którym przechowywany jest kolor świecy. Przy pomocy funkcji iCustom() oraz CopyBuffer() możemy pobrać aktualną wartość wskaźnika. Kod dostępny w code.5w4
#property copyright "FiveWithFour@gmail.com"
#property link      "http://www.FiveWithFour.blogspot.com"

int hIndicator;
double aHAS[1];

int OnInit()
 {
   hIndicator = iCustom(NULL, Period(), "Examples\\Heiken_Ashi");
   if(hIndicator == INVALID_HANDLE)
    Print("Error - invalide handle value");                 
   return(0);
 }

void OnDeinit(const int reason)
 {
 if (!IndicatorRelease(hIndicator))
  Print("Error - indicator release");  
 }

void OnTick()
  {
   CopyBuffer(hIndicator, 4, 0, 1, aHAS);
   Print("HAS " + DoubleToString(aHAS[0], 1));
   }