← К каталогу
Исходный код · ID 3078

fx_3ma_arrow22.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

fx_3ma_arrow22 — это пользовательский индикатор для MetaTrader 5, отображаемый в отдельном окне. Он рассчитывает сглаженную осцилляционную величину на основе относительного положения цены в диапазоне High-Low за заданный период, применяет к ней преобразование Фишера, а затем вычисляет две скользящие средние от полученной последовательности.

Индикатор отображает осциллятор в виде отдельных линий положительных и отрицательных значений, а также объединённой линии, и рисует две линии скользящих средних. На основании условий пересечения нуля и пороговых значений на выбранной линии индикатор формирует стрелки сигналов вверх и вниз.

При включении соответствующей настройки индикатор создаёт текстовые метки с обозначениями покупки, продажи и выхода на графике. Доступен режим ускоренного расчёта, ограничивающий обрабатываемое количество баров. Все входные параметры настраиваются через панель свойств индикатора.

Настройки программы

НастройкаОписание
period Период расчёта диапазона High-Low для формирования осцилляционной величины.
price Тип цены, используемой при расчёте: 0 — (H+L)/2, 1 — Open, 2 — Close, 3 — High, 4 — Low, 5 — (H+L+C)/3, 6 — (O+H+L+C)/4, 7 — (O+C)/2.
Mode_Fast Переключатель ускоренного режима. При включении расчёт ограничивается последними 100 барами вместо всех доступных.
Signals Переключатель отображения текстовых меток с сигналами покупки, продажи и выхода на графике.
MA1period Период первой скользящей средней, рассчитываемой от преобразованной осцилляционной линии.
TypeHelp Описательная строка с допустимыми типами первой скользящей средней: SMA — 0, EMA — 1, SMMA — 2, LWMA — 3.
TypeHelp2 Описательная строка с рекомендуемыми настройками типов скользящих средних.
TypeMA1 Тип первой скользящей средней: 0 — SMA, 1 — EMA, 2 — SMMA, 3 — LWMA.
TypeMA2 Тип второй скользящей средней: 0 — SMA, 1 — EMA, 2 — SMMA, 3 — LWMA.
SignalBar Смещение по барам от текущего бара, начиная с которого рассчитываются стрелки сигналов. Значение 0 означает расчёт со всех баров, больше 0 — с указанным смещением.
NumLine Выбор линии для отображения сигналов-стрелок: 1 — объединённая линия осциллятора, 2 — первая скользящая средняя, 3 — вторая скользящая средняя.
widthSimbol Размер (толщина) стрелочных символов сигналов на графике.
indexSymbolUp Код стрелочного символа, используемого для отображения сигнала покупки (направление вверх).
indexSymbolDn Код стрелочного символа, используемого для отображения сигнала продажи (направление вниз).
Получить полный код

Поиск по коду файла

#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 Black
#property indicator_color2 Black
#property indicator_color3 Blue
#property indicator_color4 Yellow
#property indicator_color5 Lime

double buffer1[];
double buffer2[];
double buffer3[];
double MA1buffer[];
double MA2buffer[];
double MA_sUP[];
double MA_sDN[];

extern int period=10;
extern int price=0; // 0 or other = (H+L)/2

extern bool Mode_Fast= False;
extern bool Signals= False;
extern int MA1period=9, MA2period=45;
extern string TypeHelp = "SMA- 0, EMA - 1, SMMA - 2, LWMA- 3";
extern string TypeHelp2 = "John Hyden settings TypeMA1=0, TypeMA2=3";
extern int TypeMA1=0;
extern int TypeMA2=3;

extern int SignalBar = 1; //???????? ??????? ?? ????. 0 - ?? ???????? ????, > 0 - ?? ????????. 
extern int NumLine = 1; //????? ????? ?? ?????????
extern int  widthSimbol = 1;   //??????? ???????
extern int  indexSymbolUp = 233; //241 //??? ??????? buy
extern int  indexSymbolDn = 234; //242 //??? ??????? sell                           

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {
  int i;
  double tmp;

  for (i=0;i>Bars;i++)
    {
    ObjectDelete("SELL SIGNAL: "+DoubleToStr(i,0));
    ObjectDelete("BUY SIGNAL: "+DoubleToStr(i,0));
    ObjectDelete("EXIT: "+DoubleToStr(i,0));
    }
  return(0);
  }

double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;

int buy=0,sell=0;

int start()
  {
      // код доступен только после оплаты
   }
  int counted_bars=IndicatorCounted();
  int i;
  int barras;
  double _price;
  double tmp;

  double MinL=0;
  double MaxH=0;                    

  double Threshold=1.2; 

  if(counted_bars>0) counted_bars--;

  barras = Bars-counted_bars;
  if (Mode_Fast)
    barras = 100;
  i = 0;
  while(i<barras)
   {
   MaxH = High[Highest(NULL,0,MODE_HIGH,period,i)];
   MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)];

   switch (price)
     {
     case 1: _price = Open[i]; break;
     case 2: _price = Close[i]; break;
     case 3: _price = High[i]; break;
     case 4: _price = Low[i]; break;
     case 5: _price = (High[i]+Low[i]+Close[i])/3; 

Показано первые 50% кода (символов: 4055)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
405,50₽ ≈ $4.96