Signal





//+------------------------------------------------------------------+
//|                                                       Signal.mq4 |
//|                                                     Yuriy Tokman |
//|                                            yuriytokman@gmail.com |
//+------------------------------------------------------------------+

//Ôóíêöèÿ òîðãîâûõ ñèãíàëîâ îñíîâàíà íà ïîêàçàíèÿõ èíäèêàòîðà OsMA
//Äîáîâëÿåì ôóíêöèþ â ñîâåòíèê #include <Signal.mqh>
//Óñëîâèå if(GetSignal()==1) äëÿ ïîêóïêè
//Óñëîâèå if(GetSignal()==-1) äëÿ ïðîäàæè
  
#property copyright "Yuriy Tokman"
#property link      "yuriytokman@gmail.com"
 
extern int fast_ema_period = 10;//Ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ áûñòðîé ñêîëüçÿùåé ñðåäíåé.
extern int slow_ema_period = 12;//Ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ ìåäëåííîé ñêîëüçÿùåé ñðåäíåé.
extern int   signal_period = 11;//Ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ ñèãíàëüíîé ëèíèè.
extern int   applied_price = 5;// 0-6  Èñïîëüçóåìàÿ öåíà.
extern int          shift0 = 18;//Èíäåêñ ïîëó÷àåìîãî çíà÷åíèÿ èç èíäèêàòîðíîãî áóôåðà (ñäâèã îòíîñèòåëüíî òåêóùåãî áàðà íà óêàçàííîå êîëè÷åñòâî ïåðèîäîâ íàçàä).
extern int          shift1 = 20;//Èíäåêñ ïîëó÷àåìîãî çíà÷åíèÿ èç èíäèêàòîðíîãî áóôåðà (ñäâèã îòíîñèòåëüíî òåêóùåãî áàðà íà óêàçàííîå êîëè÷åñòâî ïåðèîäîâ íàçàä).
extern int          shift2 = 0;//Èíäåêñ ïîëó÷àåìîãî çíà÷åíèÿ èç èíäèêàòîðíîãî áóôåðà (ñäâèã îòíîñèòåëüíî òåêóùåãî áàðà íà óêàçàííîå êîëè÷åñòâî ïåðèîäîâ íàçàä).
extern int          shift3 = 11;//Èíäåêñ ïîëó÷àåìîãî çíà÷åíèÿ èç èíäèêàòîðíîãî áóôåðà (ñäâèã îòíîñèòåëüíî òåêóùåãî áàðà íà óêàçàííîå êîëè÷åñòâî ïåðèîäîâ íàçàä).

//+------------------------------------------------------------------+
//| My function                                                      |
//+------------------------------------------------------------------+
 int GetSignal()
   {
    
	  double x0 = iOsMA(NULL,0,fast_ema_period,slow_ema_period,signal_period,applied_price,shift0);
     double x1 = iOsMA(NULL,0,fast_ema_period,slow_ema_period,signal_period,applied_price,shift1);
     double x2 = iOsMA(NULL,0,fast_ema_period,slow_ema_period,signal_period,applied_price,shift2);
     double x3 = iOsMA(NULL,0,fast_ema_period,slow_ema_period,signal_period,applied_price,shift3);
     
    int vSignal = 0;
    if (x3>x2 && x2<x1 && x1<x0)vSignal = 1;//up 
    else
    if (x3<x2 && x2>x1 && x1>x0) vSignal =-1;//down

    
    return (vSignal);
   } 
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:

Moving Average of Oscillator


Custom Indicators Used:

Order Management characteristics:

Other Features: