iSWOL_for_ex_V2

Author: Sergey Gulyaev. Maykop.
Indicators Used
Stochastic oscillator
Miscellaneous
Implements a curve of type %1It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
iSWOL_for_ex_V2
//+------------------------------------------------------------------+
//|                                          iSWOL(SuperWaveOneLine) |
//|ðèñóåò ñòîõàñòèê çàäàííîãî ñòàðøåãî ïåðèîäà
//+------------------------------------------------------------------+
#define NAME_EXPERT "SWOL"
#define VER " V2"                                     
#define RELIZE "GS_2011_08_04"                        
#define AUTOR "valenok2003@mail.ru"
#define URL "http://bluedream.ucoz.ru"

extern int
TF_Indicator=0;
extern bool
SHOW_SIGNAL_LINE=true,
Alert_ON=false;
//-----------
string
Name_Window,
ex_Name=NAME_EXPERT;
string Txt_TF_Indicator;
int Style_Main_Line=DRAW_LINE;
int Style_Signal_Line=STYLE_DOT;
//+------------------------------------------------------------------+
#property copyright "Sergey Gulyaev. Maykop."
#property link      "valenok2003@mail.ru    ICQ 365919666"

#property indicator_separate_window

#property indicator_buffers 2
#property indicator_level1 80
#property indicator_level2 20
#property indicator_levelcolor Gray

#property indicator_minimum 0
#property indicator_maximum 100

int
St_D=5,D,
St_K=3,K,
St_S=3,S,
z;
//---- buffers
double Buff_0[],Buff_1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//--------------------------------------------------------------------
   if(TF_Indicator==0) TF_Indicator=Period();
   if(TF_Indicator<Period())
     {
      TF_Indicator=Period();
      //if(Alert_ON)Alert("TF ìëàäøå òåêóùåãî íå äîïóñòèì!"); 
     }
//--------------------------------------------------------------------
   z = MathRound(TF_Indicator/Period());
   D = St_D*z;
   K = St_K*z;
   S = St_S*z;
//------------ ñîçäà¸ì èìÿ îêíà -------------------------------------- 
//---- name for indicator window
   Name_Window=ex_Name+"("+txt_TF(TF_Indicator)+")";
   IndicatorShortName(Name_Window);
//--------------------------------------------------------------------
//--------------------------------------------------------------------
   SetIndexBuffer(0,Buff_0);
   SetIndexBuffer(1,Buff_1);
   switch(TF_Indicator)
     {
      case PERIOD_M1:
         SetIndexStyle(0,Style_Main_Line,0,0,Red);
         SetIndexLabel(0,"St_M1");
         SetIndexStyle(1,0,Style_Signal_Line,0,Tomato);
         SetIndexLabel(1,"");
         break;
      case PERIOD_M5:
         SetIndexStyle(0,Style_Main_Line,0,0,DarkOrange);
         SetIndexLabel(0,"St_M5");
         SetIndexStyle(1,0,Style_Signal_Line,0,SandyBrown);
         SetIndexLabel(1,"");
         break;
      case PERIOD_M15:
         SetIndexStyle(0,Style_Main_Line,0,0,Yellow);
         SetIndexLabel(0,"St_M15");
         SetIndexStyle(1,0,Style_Signal_Line,0,Khaki);
         SetIndexLabel(1,"");
         break;
      case PERIOD_M30:
         SetIndexStyle(0,Style_Main_Line,0,0,LimeGreen);
         SetIndexLabel(0,"St_M30");
         SetIndexStyle(1,0,Style_Signal_Line,0,PaleGreen);
         SetIndexLabel(1,"");
         break;
      case PERIOD_H1:
         SetIndexStyle(0,Style_Main_Line,0,0,SkyBlue);
         SetIndexLabel(0,"St_H1");
         SetIndexStyle(1,0,Style_Signal_Line,0,PowderBlue);
         SetIndexLabel(1,"");
         break;
      case PERIOD_H4:
         SetIndexStyle(0,Style_Main_Line,0,0,Blue);
         SetIndexLabel(0,"St_H4");
         SetIndexStyle(1,0,Style_Signal_Line,0,CornflowerBlue);
         SetIndexLabel(1,"");
         break;
      case PERIOD_D1:
         SetIndexStyle(0,Style_Main_Line,0,0,Violet);
         SetIndexLabel(0,"St_D1");
         SetIndexStyle(1,0,Style_Signal_Line,0,Pink);
         SetIndexLabel(1,"");
         break;
      case PERIOD_W1:
         SetIndexStyle(0,Style_Main_Line,0,0,BlueViolet);
         SetIndexLabel(0,"St_W1");
         SetIndexStyle(1,0,Style_Signal_Line,0,MediumOrchid);
         SetIndexLabel(1,"");
         break;
      case PERIOD_MN1:
         SetIndexStyle(0,Style_Main_Line,0,0,Red);
         SetIndexLabel(0,"St_MN1");
         SetIndexStyle(1,0,Style_Signal_Line,0,Tomato);
         SetIndexLabel(1,"");
         break;
      default: break;
     }
   if(!SHOW_SIGNAL_LINE)SetIndexStyle(1,DRAW_NONE);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   int i=Bars-counted_bars;
   if(counted_bars==0) i--;

   while(i>=0) // Öèêë ïî íåïîñ÷èòàííûì áàðàì
     {
      Buff_0[i]=iStochastic(Symbol(),Period(),D,K,S,MODE_SMA,0,MODE_MAIN,i);
      Buff_1[i]= iStochastic(Symbol(),Period(),D,K,S,MODE_SMA,0,MODE_SIGNAL,i);
      i--;
     }
   static bool
   FLAG_UP = true,
   FLAG_DN = true;

   if(Alert_ON) 
     {
      if(FLAG_UP && Buff_0[0]>Buff_1[0]) 
        {
         Alert("DN->UP :"+txt_TF(TF_Indicator)+" "+Symbol()+" "+ex_Name);
         FLAG_UP = false;
         FLAG_DN = true;
        }
      if(FLAG_DN && Buff_0[0]<Buff_1[0]) 
        {
         Alert("UP->DN :"+txt_TF(TF_Indicator)+" "+Symbol()+" "+ex_Name);
         FLAG_UP = true;
         FLAG_DN = false;
        }
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|   valenok2003@mail.ru                                14.06.2011
//+------------------------------------------------------------------+
//| txt_TF() ïåðåâîäèò ÒÔ â òåêñòîâûé ôîðìàò              
//+------------------------------------------------------------------+
string txt_TF(int _TF)
  {
   string _Function="txt_TF():";
   string _Txt_TF;
   switch(_TF)
     {
      case PERIOD_M1:  _Txt_TF = "M1";  break;
      case PERIOD_M5:  _Txt_TF = "M5";  break;
      case PERIOD_M15: _Txt_TF = "M15"; break;
      case PERIOD_M30: _Txt_TF = "M30"; break;
      case PERIOD_H1:  _Txt_TF = "H1";  break;
      case PERIOD_H4:  _Txt_TF = "H4";  break;
      case PERIOD_D1:  _Txt_TF = "D1";  break;
      case PERIOD_W1:  _Txt_TF = "W1";  break;
      case PERIOD_MN1: _Txt_TF = "MN1"; break;
      default: Alert("Íåâåðíî óñòàíîâëåí ÒÔ "+_TF); break;
     }
   return(_Txt_TF);
  }
//+------------------------------------------------------------------+
//+-------

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---