//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Green
#property indicator_color3 Red
// Input parameters
input int MA_Period = 14; // Moving Average Period
// Buffers for signals
double BuySignal[];
double SellSignal[];
double MA[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Set Buffers
SetIndexBuffer(0, MA);
SetIndexBuffer(1, BuySignal);
SetIndexBuffer(2, SellSignal);
PlotIndexSetString(0, PLOT_LABEL, "SMA");
PlotIndexSetString(1, PLOT_LABEL, "Buy Signal");
PlotIndexSetString(2, PLOT_LABEL, "Sell Signal");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// Calculate the moving average
for(int i = 0; i < rates_total; i++)
{
MA[i] = iMA(NULL, 0, MA_Period, 0, MODE_SMA, PRICE_CLOSE, i);
}
// Clear previous signals
ArraySetAsSeries(BuySignal, true);
ArraySetAsSeries(SellSignal, true);
ArrayInitialize(BuySignal, 0);
ArrayInitialize(SellSignal, 0);
// Buy/Sell signal generation
for(int i = 1; i < rates_total; i++)
{
if(close[i] > MA[i] && close[i-1] <= MA[i-1])
BuySignal[i] = low[i] - 10 * _Point; // Buy signal below the bar
else if(close[i] < MA[i] && close[i-1] >= MA[i-1])
SellSignal[i] = high[i] + 10 * _Point; // Sell signal above the bar
}
return(rates_total);
}
//+------------------------------------------------------------------+
- Как нарисовать такой индикатор
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
- Бета-тестирование MetaTrader 5 началось!
Это что? Супериндикатор?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь