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

fx5 fibospiral v1.2.mq5

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

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

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

О программе

Пользовательский индикатор для MetaTrader 4, отображающий спираль Фибоначчи на графике. Индикатор строит опорный квадрат на основе выбранной свечи и радиуса, затем формирует набор линий, расходящихся от центра по спиральному пути. Цвет линий меняется в зависимости от направления отклонения от центра.

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

НастройкаОписание
note1 Примечание — Текстовый комментарий, описывающий назначение параметра выбора центральной свечи.
CandleCenter Центральная свеча — Номер свечи, используемой как точка центра спирали на графике.
radius Радиус — Начальный радиус спирали, определяющий масштаб построения.
goldenSpiralCycle Цикл золотой спирали — Параметр, задающий количество циклов спирального разворота.
clockWiseSpiral Направление спирали — Переключатель направления построения спирали: по часовой стрелке или против.
spiralColor1 Цвет спирали 1 — Цвет линий спирали в одном из направлений относительно центра.
spiralColor2 Цвет спирали 2 — Цвет линий спирали в противоположном направлении относительно центра.
Получить полный код

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

#property indicator_chart_window

#define pi 3.14159265
#define phi 1.61803399
#define FX5_Square "FX5_Square"
#define FX5_Spiral "FX5_Spiral:#"

extern string note1="What candle do you want to draw the center?";
extern int CandleCenter = 75;
extern double radius = 11.8;
extern double goldenSpiralCycle = 1.5;
extern bool   clockWiseSpiral = true;
extern color  spiralColor1 = clrMagenta;
extern color  spiralColor2 = clrPaleGreen;
double accurity = 0.25;

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

int deinit()
  {
   DeleteSpiral();
   ObjectDelete(FX5_Square);
   Comment(" ");
   return(0);
  }

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

void DrawSpiral()
  {
   double squareTime_1 = ObjectGet(FX5_Square, OBJPROP_TIME1);
   double squareTime_2 = ObjectGet(FX5_Square, OBJPROP_TIME2);
   double squarePrice_1 = ObjectGet(FX5_Square, OBJPROP_PRICE1);

   int squareShift_1 = iBarShift(NULL, 0, squareTime_1, false);
   int squareShift_2 = iBarShift(NULL, 0, squareTime_2, false);

   double r0 = MathAbs(squareShift_2 - squareShift_1);
   double a = 0;
   double x0 = squareShift_1;
   double y0 = squarePrice_1;

   double cotAlpha = (1/(2 * goldenSpiralCycle *pi)) * MathLog(phi);
   double x1 = 0;
   double y1 = 0;
   for(int i = 0; i < 500; i++)
     {
       double Theta = a * pi / 4;
       double r = r0 * MathExp(Theta * cotAlpha);

       if (clockWiseSpiral == false)
          Theta = -Theta;

       double x2 = r * MathCos(Theta);
       double y2 = r * MathSin(Theta);
       a += accurity;

       string label = FX5_Spiral + i;
       DrawLine(x1, y1, x2, y2, label);

       x1 = x2;
       y1 = y2;
     }
  }

void DrawLine(double x1, double y1, double x2, double y2, string label)
  {
   double squareTime_1 = ObjectGet(FX5_Square, OBJPROP_TIME1);
   double squareTime_2 = ObjectGet(FX5_Square, OBJPROP_TIME2);      
   double squarePrice_1 = ObjectGet(FX5_Square, OBJPROP_PRICE1);   
   double squarePrice_2 = ObjectGet(FX5_Square, OBJPROP_PRICE2);

   int squareShift_1 = iBarShift(NULL, 0, squareTime_1, false);
   int squareShift_2 = iBarShift(NULL, 0, squareTime_2, false);

   double scale = ((squarePrice_2 - squarePrice_1) / Poi

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

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

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

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

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

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

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