Attachments forums

List of attachments posted on this forum.


All files on forums: 136272

Re: MT4 Indicator requests and ideas

Masternook, Tue Jun 26, 2018 3:10 pm

In the image has an example of an indicator that sets the number of times the same color and it sends an alarm and then closes the cycle as in the photo.
Someone can create or indicate an indicator that does as in the photo where in the place of candles followed he has alternating candles.
I put the same candle indicator if anyone can convert it to alternate candles I would greatly appreciate it.

I'm trying to change this indicator that originally it alerts each color change, I want it to alert when I hear an X sequence of candles and preferably put a graphical indicator to be able to parse past charts.

Code: Select all


#property indicator_chart_window
extern string TimeFrameNote="0-CurrentTimeframe, 1-1MIN, 5-5MIN, 15-15MIN, 30-30MIN, 60-1H, 240-4H, 1440-D1, 10080-W1, 43200-MN1";
extern int  TimeFrame = 0;
extern bool Alerts_ON = true;

int
   candle = 0;

datetime LastAlarmTime;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() 
  {
   LastAlarmTime = TimeCurrent();
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit() 
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
   int counter;
   string TimeFrameStr; 
//----
   switch(TimeFrame)
     {
      case 0 : TimeFrameStr="Period "+Period(); break;
      case 1 : TimeFrameStr="Period_M1"; break;
      case 5 : TimeFrameStr="Period_M5"; break;
      case 15 : TimeFrameStr="Period_M15"; break;
      case 30 : TimeFrameStr="Period_M30"; break;
      case 60 : TimeFrameStr="Period_H1"; break;
      case 240 : TimeFrameStr="Period_H4"; break;
      case 1440 : TimeFrameStr="Period_D1"; break;
      case 10080 : TimeFrameStr="Period_W1"; break;
      case 43200 : TimeFrameStr="Period_MN1"; break;
     }   
   RefreshRates();
  // int secondsleft = Time[0]+Period()*60-TimeCurrent();
  // int SecondsElaps = TimeCurrent()-Time[0];

   if( LastAlarmTime < Time[0] && Alerts_ON && ChangeColorOk() != "" ){
    Alert( ChangeColorOk() + " " + Symbol() + " " + TimeFrameStr );
    PlaySound("alert.wav");
    LastAlarmTime = Time[0];
   }  
   return(0);
  }
//+------------------------------------------------------------------+
string ChangeColorOk(){
 
 
 string str="";
   if( iClose(Symbol(),PERIOD_CURRENT,1)< iOpen(Symbol(),PERIOD_CURRENT,1) && 
       iClose(Symbol(),PERIOD_CURRENT,2)> iOpen(Symbol(),PERIOD_CURRENT,2 ) )
       {
    candle++;}   
   if( iClose(Symbol(),PERIOD_CURRENT,1)> iOpen(Symbol(),PERIOD_CURRENT,1) && 
       iClose(Symbol(),PERIOD_CURRENT,2)< iOpen(Symbol(),PERIOD_CURRENT,2 ) )
       {
    candle++;}
    if (candle == 2){
    string srt = "8 Velas em sequência";
    candle = 0;
    return(str);}   
   else candle = 0;
return(str);
}

Original code:

Code: Select all

#property copyright "Copyright © 2016 shahed58"
#property link      ""

#property indicator_chart_window
extern string TimeFrameNote="0-CurrentTimeframe, 1-1MIN, 5-5MIN, 15-15MIN, 30-30MIN, 60-1H, 240-4H, 1440-D1, 10080-W1, 43200-MN1";
extern int  TimeFrame = 0;
extern bool Alerts_ON = true;
extern string SoundWAV = "woody2.wav";

datetime LastAlarmTime;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() 
  {
   LastAlarmTime = iTime(Symbol(),TimeFrame,0);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit() 
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
   int counter;
   string TimeFrameStr; 
//----
   switch(TimeFrame)
     {
      case 0 : TimeFrameStr="Period "+Period(); break;
      case 1 : TimeFrameStr="Period_M1"; break;
      case 5 : TimeFrameStr="Period_M5"; break;
      case 15 : TimeFrameStr="Period_M15"; break;
      case 30 : TimeFrameStr="Period_M30"; break;
      case 60 : TimeFrameStr="Period_H1"; break;
      case 240 : TimeFrameStr="Period_H4"; break;
      case 1440 : TimeFrameStr="Period_D1"; break;
      case 10080 : TimeFrameStr="Period_W1"; break;
      case 43200 : TimeFrameStr="Period_MN1"; break;
     }   
   RefreshRates();
  // int secondsleft = Time[0]+Period()*60-TimeCurrent();
  // int SecondsElaps = TimeCurrent()-Time[0];

   if( LastAlarmTime < Time[0] && Alerts_ON && ChangeColorOk() != "" ){
    Alert( ChangeColorOk() + " " + Symbol() + " " + TimeFrameStr );
    PlaySound(SoundWAV);
    LastAlarmTime = iTime(Symbol(),TimeFrame,0);
   }  
   return(0);
  }
//+------------------------------------------------------------------+
string ChangeColorOk(){
 string str="";
   if( iClose(Symbol(),PERIOD_CURRENT,1)< iOpen(Symbol(),PERIOD_CURRENT,1) && 
       iClose(Symbol(),PERIOD_CURRENT,2)> iOpen(Symbol(),PERIOD_CURRENT,2 ) ){
    str = "RED";   
   }    
       
   if( iClose(Symbol(),PERIOD_CURRENT,1)> iOpen(Symbol(),PERIOD_CURRENT,1) && 
       iClose(Symbol(),PERIOD_CURRENT,2)< iOpen(Symbol(),PERIOD_CURRENT,2 ) ){
    str = "GREEN";   
   }    
 return str;     
}
All files in topic