Доброе время суток!
Возможно ли перевести функцию
//+------------------------------------------------------------------+
//| SGN_MA.mqh |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property strict
//+------------------------------------------------------------------+
//| Меню выбора определения нахождения/движения индикатора MA |
//+------------------------------------------------------------------+
enum ENUM_MA_MODE
{
Intersection = 0,
Price = 1,
Napravlenie = 2
};
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
extern string MA_Info = "Settings MA"; //Options
extern ENUM_TIMEFRAMES MA_TimeFrame = PERIOD_CURRENT; //TimeFrame
extern int MA_Period = 20; //Period
extern int MA_Shift = 0; //Shift
extern ENUM_MA_METHOD MA_Method = MODE_EMA; //Method
extern ENUM_APPLIED_PRICE MA_Applied_Price = PRICE_CLOSE; //Applied price
extern int MA_Index = 1; //Index
extern ENUM_MA_MODE MA_MODE = Intersection; //Definition mode
extern bool MA_Changeling = FALSE; //Changeling
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int SGN_MA(string symbol)
{
//--- Определим соответствующее свойства для символа -----------------
int digits /* Количество знаков после запятой */ = (int) SymbolInfoInteger(symbol,SYMBOL_DIGITS);
double point /* Значение одного пункта */ = SymbolInfoDouble(symbol,SYMBOL_POINT);
double bid /* Лучшее предложение на продажу */ = SymbolInfoDouble(symbol,SYMBOL_BID);
double ask /* Лучшее предложение на покупку */ = SymbolInfoDouble(symbol,SYMBOL_ASK);
//--------------------------------------------------------------------
//--- Инициализация переменых ----------------------------------------
ENUM_TIMEFRAMES timeframe /* Таймфрейм */ = MA_TimeFrame;
int ma_period /* Период */ = MA_Period;
int ma_shift /* Сдвиг средней */ = MA_Shift;
ENUM_MA_METHOD ma_method /* Метод усреднения */ = MA_Method;
ENUM_APPLIED_PRICE applied_price /* Тип цены */ = MA_Applied_Price;
int shift /* Сдвиг */ = MA_Index;
bool changeling /* Перевертыш включен */ = MA_Changeling;
int up, down;
//--------------------------------------------------------------------
double MA = iMA(symbol,timeframe,ma_period,ma_shift,ma_method,applied_price,shift);
double MA1 = iMA(symbol,timeframe,ma_period,ma_shift,ma_method,applied_price,shift+1);
double MA2 = iMA(symbol,timeframe,ma_period,ma_shift,ma_method,applied_price,shift+2);
//--------------------------------------------------------------------
if (changeling == FALSE)
{
up = 1;
down = -1;
}
else
{
up = -1;
down = 1;
}
//--------------------------------------------------------------------
switch(MA_MODE)
{
case 0:
if (Open[shift] < MA && Close[shift] > MA)return(up);
if (Open[shift] > MA && Close[shift] < MA)return(down);
break;
case 1:
if (bid > MA && ask > MA)return(up);
if (bid < MA && ask < MA)return(down);
break;
case 2:
if (MA2 < MA && MA > MA1)return(up);
if (MA2 > MA && MA < MA1)return(down);
break;
default:
break;
}
//--------------------------------------------------------------------
return(0);
}
//+------------------------------------------------------------------+
На MQL5?
Комментарии (2)
Редактирован: 16 сентября 2017, 20:04
34 AM2 Сообщений: 16232 - Андрей
На вид все просто оказалось… а я мудрил
Буду разбираться
8 Kudryashov Автор Сообщений: 129
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий