Color Day - MetaTrader 5 के लिए इंडिकेटर

Mike 2017.01.18 18:27 18 0 0
संलग्नक

Color Day इंडिकेटर बुलिश और बियरिश दिनों को रंगीन रूप में दर्शाता है।

अगर दैनिक क्लोज़, ओपन से अधिक है, तो इसे नीले रंग में दर्शाया जाता है (सेटिंग्स में अनुकूलित किया जा सकता है)।

input color UP = Blue;  // बुलिश दिन का रंग

अगर दैनिक क्लोज़, ओपन से कम है, तो इसे लाल रंग में दर्शाया जाता है (सेटिंग्स में अनुकूलित किया जा सकता है)।

input color DN = Red;   // बियरिश दिन का रंग

निर्धारित संख्या के दिनों के लिए ओपन, क्लोज़ कीमतें और ओपनिंग समय कॉपी करें Days:

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 tm[];
double op[];
double cl[];

इंडिकेटर को चार्ट पर लगाने से पहले, ऐरे के आयाम सेट करें:

int OnInit()
  {
//--- इंडिकेटर बफर्स मैपिंग
   Comment("");
   ArrayResize(tm,Days);
   ArrayResize(op,Days);
   ArrayResize(cl,Days);
//---
   return(INIT_SUCCEEDED);
  }

ऐरे सेल के मानों को वेरिएबल में असाइन करें और दैनिक क्लोजिंग टाइम time1 निर्धारित करें:

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

PutRect() फंक्शन का उपयोग करते हुए:

void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr)
  {
   ObjectDelete(0,name);
//--- दिए गए कोऑर्डिनेट्स द्वारा आयत बनाएं
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- आयत का रंग सेट करें
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- आयत को भरने के मोड को सक्षम करें (true) या अक्षम करें (false)
   ObjectSetInteger(0,name,OBJPROP_FILL,true);
  }

दिन को रंग दें यह देखने के लिए कि कीमत कहाँ गई:

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

निर्धारित Days पैरामीटर में सभी दिनों पर चक्र में जाएं:

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);

जब चार्ट से इंडिकेटर हटाते हैं, DeleteObjects() फंक्शन का उपयोग करें:

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);
     }
  }

चार्ट से बनाए गए ऑब्जेक्ट्स को हटाने के लिए:

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

सेटिंग्स:

input int   Days = 11;  // गणना के लिए दिन
input color UP = Blue;  // बुलिश दिन का रंग
input color DN = Red;   // बियरिश दिन का रंग

Fig. 1. चार्ट पर इंडिकेटर


टिप्स:

  • Color Day इंडिकेटर — एक दृश्य व्यापार सहायक है।
सूची
टिप्पणी 0