//+------------------------------------------------------------------+
//| Àíàëèçàòîð äëÿ Speed_MA MA_extremum_OPEN_CLOSE.mq4 |
//| ïîääåðæèâàåò òåõíîëîãèþ Blue_Dream|
//| òðåáóåò íàëè÷èÿ èíäèêàòîðà Moving Average|
//|×òî íîâîãî: |
//| V1.0 îò 15.03.2010 îïèñàíèå: |
//| - âûñòàâëÿåò ñèãíàë íà îòêðûòèå îðäåðà ïðè èçìåíåíèè |
//| íàïðàâëåíèÿ ñóììàðíîé ñãëàæåííîé ñêîðîñòè íà Speed_MA |
//| (ïåðåñå÷åíèå êðàñíîé ëèíèåé íóëåâîãî çíà÷åíèÿ) |
//| valenok2003@mail.ru |
//| ICQ 365919666 |
//| Ïèøó íà çàêàç, öåíà äîãîâîðíàÿ.|
//| http://www.mebel-for-you.com |
//+------------------------------------------------------------------+
#property copyright "valenok2003@mail.ru"
#property link "http://www.mebel-for-you.com"
#property indicator_separate_window
#property indicator_minimum -1
#property indicator_maximum 1
#property indicator_buffers 3 // Êîëè÷åñòâî áóôåðîâ
#property indicator_color1 Red
#property indicator_color2 LimeGreen
#property indicator_color3 Gray
extern string Rem_0 = "-íîìåð ñèãíàëà äëÿ Blue_Dream-";
extern int Num_Signal = 1;
extern string Rem_1 = "-ñèãíàë äëÿ Blue_Dream-";
extern bool Blue_Dream_ON = false;
extern string Rem_2 = "-ïàðàìåòðû äëÿ Speed_MA-";
extern int Period_MA_fast = 5;
extern int Period_MA_med = 15;
extern int Period_MA_slow = 60;
extern int Period_Average_Sum = 15;
#include <Check_MA_Parametrs.mqh>
string Name_Global_Var_Open,
Name_Global_Var_Close;
color color_txt;
//---- buffers
double Signal_Sell[],
Signal_Buy[],
Nul_Line[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- name for indicator window
string name_window="*MA_extremum_OPEN_CLOSE* Blue_Dream Tech*";
IndicatorShortName(name_window);
//---- indicators
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,Signal_Sell);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexBuffer(1,Signal_Buy);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,Nul_Line);
switch(Num_Signal)
{
case 1 : Name_Global_Var_Open = "Signal_OPEN_1"; Name_Global_Var_Close = "Signal_CLOSE_1"; break;
case 2 : Name_Global_Var_Open = "Signal_OPEN_2"; Name_Global_Var_Close = "Signal_CLOSE_2"; break;
case 3 : Name_Global_Var_Open = "Signal_OPEN_3"; Name_Global_Var_Close = "Signal_CLOSE_3"; break;
case 4 : Name_Global_Var_Open = "Signal_OPEN_4"; Name_Global_Var_Close = "Signal_CLOSE_4"; break;
case 5 : Name_Global_Var_Open = "Signal_OPEN_5"; Name_Global_Var_Close = "Signal_CLOSE_5"; break;
default: Alert(" Íîìåð ñèãíàëà äîëæåí íàõîäèòüñÿ â äèàïàçîíå îò 1 äî 5");
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
Check_MA_Parametrs("MA_extremum");
//------------ ðèñóåì ëèíèþ íóëÿ ------------------------------------
int Counted_bars=IndicatorCounted(); // Êîëè÷åñòâî ïðîñ÷èòàííûõ áàðîâ
int i=Bars-Counted_bars-1; // Èíäåêñ ïåðâîãî íåïîñ÷èòàííîãî
while(i>=0)
{
Nul_Line[i]=0;
//---Îòêðûòèå ïî ïåðåñå÷åíèþ íóëåâîé ëèíèè ------------------------
double Speed_0,
Speed_1,
Speed_2;
//--- ðèñóåì ñèãíàëû
Speed_0 = iCustom(NULL,MA_tf,"Speed_MA",Period_MA_fast, Period_MA_med, Period_MA_slow, Period_Average_Sum, MA_method, MA_price, MA_tf, 0,i);
Speed_1 = iCustom(NULL,MA_tf,"Speed_MA",Period_MA_fast, Period_MA_med, Period_MA_slow, Period_Average_Sum, MA_method, MA_price, MA_tf, 0,i+1);
Speed_2 = iCustom(NULL,MA_tf,"Speed_MA",Period_MA_fast, Period_MA_med, Period_MA_slow, Period_Average_Sum, MA_method, MA_price, MA_tf, 0,i+2);
//Åñëè ñóììàðíàÿ ñêîðîñòü ïåðåñåêàåò íóëåâóþ ëèíèþ âíèç ñäåëêà íà ñåëë
if(Speed_0 <= 0 && Speed_1 > 0 && Speed_2 > Speed_1)
{
Drow_Close_Buy(i);
Drow_Open_Sell(i);
}
//Åñëè ñóììàðíàÿ ñêîðîñòü ïåðåñåêàåò íóëåâóþ ëèíèþ ââåðõ ñäåëêà íà áàé
if(Speed_0 >= 0 && Speed_1 < 0 && Speed_2 < Speed_1)
{
Drow_Close_Sell(i);
Drow_Open_Buy(i);
}
i--; // Ðàñ÷¸ò èíäåêñà ñëåäóþùåãî áàðà
}
//-------------------------------------------------------------------
//----
return(0);
}
//+------------------------------------------------------------------+
#include <Drow_signal.mqh>
//+------------------------------------------------------------------+
Comments