Kleur Dag Indicator voor MetaTrader 5: Maak Jouw Handelsdagen Visueel

Mike 2017.01.18 18:27 13 0 0
Bijlage

De Kleur Dag indicator helpt je om de bullish en bearish dagen visueel te maken.

Als de dagelijkse slotkoers hoger is dan de openingskoers, wordt deze blauw gekleurd (dit is aanpasbaar in de instellingen).

input color UP = Blue;  // kleur van de bullish dag

Als de dagelijkse slotkoers lager is dan de openingskoers, wordt deze rood gekleurd (ook aanpasbaar in de instellingen).

input color DN = Red;  // kleur van de bearish dag

Gebruik de indicator om de Open, Close prijzen en openingstijd voor het opgegeven aantal dagen Days te kopiëren:

CopyTime(NULL,PERIOD_D1,0,Days+1,tm);
      CopyOpen(NULL,PERIOD_D1,0,Days+1,op);
      CopyClose(NULL,PERIOD_D1,0,Days+1,cl);

Deze waarden worden opgeslagen in de bijbehorende arrays:

datetime tm[];
double op[];
double cl[];

Voordat je de indicator op de grafiek plaatst, stel je de afmetingen van de arrays in:

int OnInit()
  {
//--- mapping van indicatorbuffers
   Comment("");
   ArrayResize(tm,Days);
   ArrayResize(op,Days);
   ArrayResize(cl,Days);
//---
   return(INIT_SUCCEEDED);
  }

Wijs de waarden van de arraycellen toe aan variabelen en bepaal de dagelijkse sluitingstijd time1:

datetime time0=tm[i];
      datetime time1=time0+3600*24;
      double dopen=op[i];
      double dclose=cl[i];

Gebruik de PutRect() functie:

void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr)
  {
   ObjectDelete(0,name);
//--- maak een rechthoek met de gegeven coördinaten
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- stel de kleur van de rechthoek in
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- schakel (true) of schakel (false) de vulmodus van de rechthoek in
   ObjectSetInteger(0,name,OBJPROP_FILL,true);
  }

Kleur de dag op basis van de prijsbeweging:

if(dclose<dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,DN);
      if(dclose>dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,UP);

Itereer over alle dagen die zijn opgegeven in de Days parameter in een loop:

for(int i=0;i<=Days;i++)
     {
      CopyTime(NULL,PERIOD_D1,0,Days+1,tm);
      CopyOpen(NULL,PERIOD_D1,0,Days+1,op);
      CopyClose(NULL,PERIOD_D1,0,Days+1,cl);

      datetime time0=tm[i];
      datetime time1=time0+3600*24;
      double dopen=op[i];
      double dclose=cl[i];

      if(dclose<dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,DN);
      if(dclose>dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,UP);

Wanneer je de indicator van de grafiek verwijdert, gebruik je de DeleteObjects() functie:

void DeleteObjects()
  {
   for(int i=ObjectsTotal(0,0,OBJ_RECTANGLE)-1;i>=0;i--)
     {
      string name=ObjectName(0,i,0,OBJ_RECTANGLE);
      if(StringFind(name,"Rect",0)>=0) ObjectDelete(0,name);
     }
  }

Verwijder de gemaakte objecten van de grafiek:

void OnDeinit(const int reason)
  {
   Comment("");
   DeleteObjects();
  }

Instellingen:

input int   Days = 11;  // dagen voor berekening
input color UP = Blue;  // kleur van de bullish dag
input color DN = Red;   // kleur van de bearish dag

Fig. 1. De indicator op de grafiek

Tips:

  • De Kleur Dag indicator is een visuele handelsassistent.
Lijst
Reactie 0