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

ftlm_zigzag_macd.mq5

Похожие материалы по тегам

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.10 optimized.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

FTLM ZigZag MACD — торговый советник для MetaTrader 5, работающий на нескольких таймфреймах. Советник анализирует ценовые данные с помощью набора технических индикаторов, включая MACD, Зигзаг, скользящие средние, TRIX, ADX/ADXW и RSI, и принимает торговые решения на основе комбинации сигналов этих индикаторов. Поддерживается несколько алгоритмических режимов, которые можно включать и отключать независимо.

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

НастройкаОписание
ModeZigZag Режим Зигзаг — Выбор режима работы с Зигзагом из трёх доступных вариантов
FixLot Фиксированный лот — Фиксированный размер лота для сделок
AutoLot Авто лот — Автоматический расчёт размера лота на основе риска
SL_Lot_Perc Процент риска лота — Процент от баланса, используемый для расчёта размера лота
TP_SL_Ratio Соотношение ТП к СЛ — Коэффициент соотношения тейк-профита к стоп-лоссу
SL_Plus_Perc Дополнительный процент к СЛ — Процентное увеличение стоп-лосса при расчёте
BreakEven Безубыток — Включение функции перевода стоп-лосса в безубыток
BreakEvenSLPercent Процент безубытка — Процент от цены открытия для перевода стоп-лосса в безубыток
TF Таймфрейм — Таймфрейм для основного анализа
MaxDailyTrades Макс. сделок в день — Максимальное количество сделок за один торговый день
MondayStartTime Время начала понедельник — Время начала торговых окон в понедельник
MondayEndTime Время окончания понедельник — Время окончания торговых окон в понедельник
TuesdayStartTime Время начала вторник — Время начала торговых окон во вторник
TuesdayEndTime Время окончания вторник — Время окончания торговых окон во вторник
WednesdayStartTime Время начала среда — Время начала торговых окон в среду
WednesdayEndTime Время окончания среда — Время окончания торговых окон в среду
ThursdayStartTime Время начала четверг — Время начала торговых окон в четверг
ThursdayEndTime Время окончания четверг — Время окончания торговых окон в четверг
FridayStartTime Время начала пятница — Время начала торговых окон в пятницу
FridayEndTime Время окончания пятница — Время окончания торговых окон в пятницу
MagicNumber Магический номер — Магический номер для идентификации ордеров советника
============ ZigZag ============ (s1) Разделитель ZigZag — Текстовый разделитель группы настроек Зигзаг
ZigZag Depth (InpDepth) Глубина Зигзаг — Глубина Зигзага
ZigZag Deviation (InpDeviation) Отклонение Зигзаг — Отклонение Зигзага
ZigZag Back Step (InpBackstep) Шаг Зигзаг — Шаг Зигзага
============ MACD ============ (s2) Разделитель MACD — Текстовый разделитель группы настроек MACD
Fast EMA period (InpFastEMA) Быстрая EMA — Период быстрой EMA для MACD
Slow EMA period (InpSlowEMA) Медленная EMA — Период медленной EMA для MACD
Signal SMA period (InpSignalSMA) Сигнальная SMA — Период сигнальной SMA для MACD
Applied MA Method (InpAppliedMethod) Метод MA для MACD — Метод усреднения для MACD
Applied price (InpAppliedPrice) Цена для MACD — Применяемая цена для MACD
============ MA ============ (s3) Разделитель MA — Текстовый разделитель группы настроек MA
MA_Period Период MA — Период скользящей средней
MA_Method Метод MA — Метод усреднения для скользящей средней
MA_AppPrice Цена для MA — Применяемая цена для скользящей средней
Старший ТФ (HIGH_TF) Старший ТФ — Старший таймфрейм для анализа
Самый Старший ТФ (HIGH_TF_2) Самый Старший ТФ — Самый старший таймфрейм для анализа
============ TRIX ============ (s21) Разделитель TRIX — Текстовый разделитель группы настроек TRIX
EMA period (InpPeriodEMA) Период EMA TRIX — Период EMA для индикатора TRIX
============ TRIX HHTF ============ (s221) Разделитель TRIX HHTF — Текстовый разделитель группы настроек TRIX на самом старшем ТФ
EMA period (InpPeriodEMA_HHTF) Период EMA TRIX HHTF — Период EMA для TRIX на самом старшем таймфрейме
============ ADXW ============ (s4) Разделитель ADXW — Текстовый разделитель группы настроек ADXW
Period ADX (InpPeriodADXW) Период ADX — Период индикатора ADX/ADXW
ADXW_Level Уровень ADX — Пороговое значение ADX для фильтрации
ADX_Wilder Wilder ADX — Использование версии ADX Уилдера вместо стандартной
Algo_1 Алгоритм 1 — Включение/отключение алгоритма 1
Algo_2 Алгоритм 2 — Включение/отключение алгоритма 2
Algo_3 Алгоритм 3 — Включение/отключение алгоритма 3
Algo_4 Алгоритм 4 — Включение/отключение алгоритма 4
Algo_5 Алгоритм 5 — Включение/отключение алгоритма 5
Algo_6 (Algo_5 без учета 0 линии) (Algo_6) Algo_6 (Algo_5 без учета 0 линии) — Включение/отключение алгоритма 6 без учёта нулевой линии
Algo_7 Алгоритм 7 — Включение/отключение алгоритма 7
Algo_7_Ignore_0 Игнор 0 Algo_7 — Игнорирование нулевой линии для алгоритма 7
Algo_7_Mode Режим Algo_7 — Режим работы алгоритма 7
Algo_8 Алгоритм 8 — Включение/отключение алгоритма 8
Algo_9 Алгоритм 9 — Включение/отключение алгоритма 9
HHTF_Algo_1 HHTF Алгоритм 1 — Включение/отключение алгоритма 1 на самом старшем ТФ
HHTF_Algo_2 HHTF Алгоритм 2 — Включение/отключение алгоритма 2 на самом старшем ТФ
HHTF_Algo_3 HHTF Алгоритм 3 — Включение/отключение алгоритма 3 на самом старшем ТФ
HHTF_Algo_4 HHTF Алгоритм 4 — Включение/отключение алгоритма 4 на самом старшем ТФ
HHTF_Algo_5 HHTF Алгоритм 5 — Включение/отключение алгоритма 5 на самом старшем ТФ
HHTF Algo_6 (Algo_5 без учета 0 линии) (HHTF_Algo_6) HHTF Algo_6 (Algo_5 без учета 0 линии) — Включение/отключение алгоритма 6 на самом старшем ТФ без учёта нулевой линии
HHTF_Algo_7 HHTF Алгоритм 7 — Включение/отключение алгоритма 7 на самом старшем ТФ
HHTF_Algo_7_Ignore_0 HHTF Игнор 0 Algo_7 — Игнорирование нулевой линии для алгоритма 7 на самом старшем ТФ
HHTF_Algo_7_Mode HHTF Режим Algo_7 — Режим работы алгоритма 7 на самом старшем ТФ
HHTF_Algo_8 HHTF Алгоритм 8 — Включение/отключение алгоритма 8 на самом старшем ТФ
HHTF_Algo_9 HHTF Алгоритм 9 — Включение/отключение алгоритма 9 на самом старшем ТФ
Торговля по стандартному маневру (StandartManevr) Торговля по стандартному маневру — Включение торговли по стандартному маневру
Добавление RSI к стандартному маневру(Часть 3) (StandartManevrAddRSI) Добавление RSI к стандартному маневру(Часть 3) — Добавление проверки RSI к стандартному маневру
RSI MACD вместо маневра (Часть 2) (Mode_2_RSI_MACD) RSI MACD вместо маневра (Часть 2) — Использование режима RSI MACD вместо стандартного маневра
Отключения проверки RSI для этого режима (Часть 2.1) (Mode_2_RSI_MACD_NO_RSI) Отключения проверки RSI для этого режима (Часть 2.1) — Отключение проверки RSI в режиме RSI MACD
Отмена сигнала - количество баров (Mode_2_RSI_MACD_CancelBars) Отмена сигнала - количество баров — Количество баров после которых сигнал отменяется
RSI_Period Период RSI — Период индикатора RSI
RSI_Overbought RSI перекупленность — Уровень перекупленности RSI
RSI_Oversold RSI перепроданность — Уровень перепроданности RSI
RSI_APPLIED_PRICE Цена для RSI — Применяемая цена для RSI
Правила Зигзага включены для стандартного маневра (ZigZagRules) Правила Зигзага включены для стандартного маневра — Включение правил Зигзага для стандартного маневра
Фильтр Часть 4.1 (Part_4_1) Фильтр Часть 4.1 — Включение фильтра Часть 4.1
Фильтр Часть 4.2 (Part_4_2) Фильтр Часть 4.2 — Включение фильтра Часть 4.2
Автозакрытие при подходе к ТП/СЛ (Часть 5) (Part_5_Close) Автозакрытие при подходе к ТП/СЛ (Часть 5) — Автоматическое закрытие позиции при подходе к ТП или СЛ
Количество пунктов до уровня для закрытия (Part_5_Close_Points) Количество пунктов до уровня для закрытия — Количество пунктов до уровня ТП/СЛ для автозакрытия
Фильтр ADX (Часть 7) (Part_7_Filter) Фильтр ADX (Часть 7) — Включение фильтра ADX Часть 7
TelegramBot Токен бота Telegram — Токен Telegram-бота для отправки уведомлений
TelegramChatId Chat ID Telegram — Идентификатор чата Telegram для уведомлений
OnAlertTrade Alert о сделках — Включение оповещений Alert при открытии сделок
TelegtamTrade Telegram о сделках — Отправка сообщений в Telegram при открытии сделок
OnAlertCross Alert о пересечениях — Включение оповещений Alert при пересечениях
TelegtamCross Telegram о пересечениях — Отправка сообщений в Telegram при пересечениях
OpenTrade Открытие сделок — Разрешение на открытие торговых позиций
Получить полный код

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

#property version   "1.00"

#define TELEGRAM_BASE_URL  ""

#include <Trade\Trade.mqh>

CTrade Trade;
enum mode_z
  {
   mode_1,//1
   mode_2,//2
   mode_3//3
  };

input mode_z ModeZigZag=mode_1;

input double FixLot=0.1;
input bool AutoLot=false;
input double SL_Lot_Perc=1;
input double TP_SL_Ratio=2;

input double SL_Plus_Perc=10;

input bool BreakEven=true;
input double BreakEvenSLPercent=50;

input ENUM_TIMEFRAMES TF=PERIOD_CURRENT;

input int MaxDailyTrades=10;

input string MondayStartTime="09:00:00";
input string MondayEndTime="19:00:00";

input string TuesdayStartTime="09:00:00";
input string TuesdayEndTime="19:00:00";

input string WednesdayStartTime="09:00:00";
input string WednesdayEndTime="19:00:00";

input string ThursdayStartTime="09:00:00";
input string ThursdayEndTime="19:00:00";

input string FridayStartTime="09:00:00";
input string FridayEndTime="19:00:00";
input long MagicNumber=3000;

input string s1="============ ZigZag ============";//============ ZigZag ============
input int InpDepth    =12;  //ZigZag Depth
input int InpDeviation=5;   //ZigZag Deviation
input int InpBackstep =3;   //ZigZag Back Step

input string s2="============ MACD ============";//============ MACD ============
input int                InpFastEMA=12;               // Fast EMA period
input int                InpSlowEMA=26;               // Slow EMA period
input int                InpSignalSMA=9;              // Signal SMA period
input ENUM_MA_METHOD InpAppliedMethod=MODE_SMA; // Applied MA Method
input ENUM_APPLIED_PRICE InpAppliedPrice=PRICE_CLOSE; // Applied price

input string s3="============ MA ============";//============ MA ============

input int MA_Period=100;
input ENUM_MA_METHOD MA_Method=MODE_EMA;
input ENUM_APPLIED_PRICE MA_AppPrice=PRICE_CLOSE;

input ENUM_TIMEFRAMES HIGH_TF=PERIOD_H1;//Старший ТФ

input ENUM_TIMEFRAMES HIGH_TF_2=PERIOD_H4;//Самый Старший ТФ

input string s21="============ TRIX ============";//============ TRIX ============
input int InpPeriodEMA=14;               // EMA period

input string s221="============ TRIX HHTF ============";//============ TRIX HHTF ============
input int InpPeriodEMA_HHTF=14;               // EMA period

input string s4="============ ADXW ============";//============ ADXW ============
input int InpPeriodADXW=14; // Period ADX
input double ADXW_Level=25;

input bool ADX_Wilder=true;

input bool Algo_1=false;
input bool Algo_2=false;
input bool Algo_3=false;
input bool Algo_4=false;
input bool Algo_5=false;
input bool Algo_6=false;//Algo_6 (Algo_5 без учета 0 линии)
input bool Algo_7=false;
input bool Algo_7_Ignore_0=true;
enum algo_7_mode
  {
   algo_7_mode_main,
   algo_7_mode_2,
   algo_7_mode_3
  };
input algo_7_mode Algo_7_Mode=algo_7_mode_main;
input bool Algo_8=false;
input bool Algo_9=false;

input bool HHTF_Algo_1=false;
input bool HHTF_Algo_2=false;
input bool HHTF_Algo_3=false;
input bool HHTF_Algo_4=false;
input bool HHTF_Algo_5=false;
input bool HHTF_Algo_6=false;//HHTF Algo_6 (Algo_5 без учета 0 линии)
input bool HHTF_Algo_7=false;
input bool HHTF_Algo_7_Ignore_0=true;
input algo_7_mode HHTF_Algo_7_Mode=algo_7_mode_main;
input bool HHTF_Algo_8=false;
input bool HHTF_Algo_9=false;

input bool StandartManevr=true;//Торговля по стандартному маневру
input bool StandartManevrAddRSI=true;//Добавление RSI к стандартному маневру(Часть 3)

input bool Mode_2_RSI_MACD=true;//RSI MACD вместо маневра (Часть 2)
input bool Mode_2_RSI_MACD_NO_RSI=true;//Отключения проверки RSI для этого режима (Часть 2.1)
input int Mode_2_RSI_MACD_CancelBars=3;//Отмена сигнала - количество баров
input int RSI_Period=14;
input double RSI_Overbought=70;
input double RSI_Oversold=30;
input ENUM_APPLIED_PRICE RSI_APPLIED_PRICE=PRICE_CLOSE;

input bool ZigZagRules=true;//Правила Зигзага включены для стандартного маневра
input bool Part_4_1=true;//Фильтр Часть 4.1
input bool Part_4_2=true;//Фильтр Часть 4.2

input bool Part_5_Close=true;//Автозакрытие при подходе к ТП/СЛ (Часть 5)
input int Part_5_Close_Points=10;//Количество пунктов до уровня для закрытия

input bool Part_7_Filter=true;//Фильтр ADX (Часть 7)

input string TelegramBot="";
input long TelegramChatId=-100;

input bool OnAlertTrade=true;
input bool TelegtamTrade=true;

input bool OnAlertCross=true;
input bool TelegtamCross=true;

input bool OpenTrade=true;

string prefix="FTLM_Zigzag";

int macd_handle;
int zigzag_handle;
int zigzag_handle_htf;
int zigzag_handle_hhtf;
int ma_handle;
int ma_handle_htf;
int ma_handle_hhtf;

int CountBars=3000;

int day_trades=0;
int last_day=-1;

datetime TimeFlag=1;
datetime TimeFlagPre=1;

int trix_handle;
int trix_hhtf_handle;
int adxw_htf_handle;
int adxw_hhtf_handle;
int macd_handle_htf;
int macd_handle_hhtf;
int rsi_handle;
int adxw_handle;

bool Signal_RSI_buy;
datetime Signal_RSI_buy_cancel;

bool Signal_RSI_sell;
datetime Signal_RSI_sell_cancel;

datetime last_rsi_time_buy=1;
datetime last_rsi_time_sell=1;

datetime last_stand_buy_time=1;
datetime last_stand_sell_time=1;

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

void OnDeinit(const int reason)
  {

  }

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

   MqlDateTime time;
   TimeToStruct(TimeCurrent(),time);
   if(time.day!=last_day)
     {
      last_day=time.day;
      day_trades=0;
     }
   if(TimeFlagPre < iTime(Symbol(),TF,1))
     {
      if(TradingTimeDays(TimeCurrent()))
        {
         double ma_1=HVal(ma_handle,0,0);
         double macd_blue_1=HVal(macd_handle,0,0);
         double macd_blue_2=HVal(macd_handle,0,1);
         double macd_red_1=HVal(macd_handle,1,0);
         double macd_red_2=HVal(macd_handle,1,1);
         if(iClose(NULL,TF,0)>ma_1&&iOpen(NULL,TF,0)<ma_1
            &&macd_blue_1>macd_red_1
            &&macd_blue_1<0.0
            &&macd_red_1<0.0
           )
           {
            TimeFlagPre=iTime(Symbol(),TF,1);
            string str_text=Symbol()+" cross BUY";
            if(TelegtamTrade)
               SendText(TelegramBot,TelegramChatId,str_text);
            if(OnAlertTrade)
              {
               Alert(str_text);
               PlaySound("email.wav");
              }
           }
         if(iClose(NULL,TF,0)<ma_1&&iOpen(NULL,TF,0)>ma_1
            &&macd_blue_1<macd_red_1
            &&macd_blue_1>0.0
            &&macd_red_1>0.0
           )
           {
            TimeFlagPre=iTime(Symbol(),TF,1);
            string str_text=Symbol()+" cross SELL";
            if(TelegtamTrade)
               SendText(TelegramBot,TelegramChatId,str_text);
            if(OnAlertTrade)
              {
               Alert(str_text);
               PlaySound("email.wav");
              }
           }
        }
     }
   if(TimeFlag < iTime(Symbol(),TF,1))
     {
      TimeFlag=iTime(Symbol(),TF,1);
      double trix_1=HVal(trix_handle,0,0);
      double adxw_main_1=HVal(adxw_htf_handle,0,0);
      double adxw_green_1=HVal(adxw_htf_handle,1,0);
      double adxw_red_1=HVal(adxw_htf_handle,2,0);
      double hhtf_trix_1=HVal(trix_hhtf_handle,0,0);
      double hhtf_adxw_main_1=HVal(adxw_hhtf_handle,0,0);
      double hhtf_adxw_green_1=HVal(adxw_hhtf_handle,1,0);
      double hhtf_adxw_red_1=HVal(adxw_hhtf_handle,2,0);
      if(!TradingTimeDays(TimeCurrent()))
         Comment("");
      if(TradingTimeDays(TimeCurrent()))
        {
         double ma_1=HVal(ma_handle,0,1);
         double macd_blue_1=HVal(macd_handle,0,1);
         double macd_blue_2=HVal(macd_handle,0,2);
         double macd_red_1=HVal(macd_handle,1,1);
         double macd_red_2=HVal(macd_handle,1,2);
         bool algo_1_buy=false;
         bool algo_1_sell=false;
         if(Algo_1)
           {
            if(
               (trix_1>0.0&&adxw_main_1<=ADXW_Level)
               ||(trix_1<0.0&&adxw_main_1>=ADXW_Level&&adxw_green_1>adxw_red_1)
            )
               algo_1_buy=true;
            if(
               (trix_1<0.0&&adxw_main_1<=ADXW_Level)
               ||(trix_1>0.0&&adxw_main_1>=ADXW_Level&&adxw_green_1<adxw_red_1)
            )
               algo_1_sell=true;
           }
         else
           {
            algo_1_buy=true;
            algo_1_sell=true;
           }
         bool hhtf_algo_1_buy=false;
         bool hhtf_algo_1_sell=false;
         if(HHTF_Algo_1)
           {
            if(
               (hhtf_trix_1>0.0&&hhtf_adxw_main_1<=ADXW_Level)
               ||(hhtf_trix_1<0.0&&hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1>hhtf_adxw_red_1)
            )
               hhtf_algo_1_buy=true;
            if(
               (hhtf_trix_1<0.0&&hhtf_adxw_main_1<=ADXW_Level)
               ||(hhtf_trix_1>0.0&&hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1<hhtf_adxw_red_1)
            )
               hhtf_algo_1_sell=true;
           }
         else
           {
            hhtf_algo_1_buy=true;
            hhtf_algo_1_sell=true;
           }

         bool algo_2_buy=false;
         bool algo_2_sell=false;
         if(Algo_2)
           {
            if(
               (trix_1>0.0&&adxw_main_1>=ADXW_Level&&adxw_green_1>adxw_red_1)
            )
               algo_2_buy=true;
            if(
               (trix_1<0.0&&adxw_main_1>=ADXW_Level&&adxw_green_1<adxw_red_1)
            )
               algo_2_sell=true;
           }
         else
           {
            algo_2_buy=true;
            algo_2_sell=true;
           }
         bool hhtf_algo_2_buy=false;
         bool hhtf_algo_2_sell=false;
         if(HHTF_Algo_2)
           {
            if(
               (hhtf_trix_1>0.0&&hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1>hhtf_adxw_red_1)
            )
               hhtf_algo_2_buy=true;
            if(
               (hhtf_trix_1<0.0&&hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1<hhtf_adxw_red_1)
            )
               hhtf_algo_2_sell=true;
           }
         else
           {
            hhtf_algo_2_buy=true;
            hhtf_algo_2_sell=true;
           }

         bool algo_3_buy=false;
         bool algo_3_sell=false;
         if(Algo_3)
           {
            if(trix_1>0.0)
               algo_3_buy=true;
            if(trix_1<0.0)
               algo_3_sell=true;
           }
         else
           {
            algo_3_buy=true;
            algo_3_sell=true;
           }
         bool hhtf_algo_3_buy=false;
         bool hhtf_algo_3_sell=false;
         if(HHTF_Algo_3)
           {
            if(hhtf_trix_1>0.0)
               hhtf_algo_3_buy=true;
            if(hhtf_trix_1<0.0)
               hhtf_algo_3_sell=true;
           }
         else
           {
            hhtf_algo_3_buy=true;
            hhtf_algo_3_sell=true;
           }

         bool algo_4_buy=false;
         bool algo_4_sell=false;
         if(Algo_4)
           {
            if(adxw_main_1>=ADXW_Level&&adxw_green_1>adxw_red_1)
               algo_4_buy=true;
            if(adxw_main_1>=ADXW_Level&&adxw_green_1<adxw_red_1)
               algo_4_sell=true;
           }
         else
           {
            algo_4_buy=true;
            algo_4_sell=true;
           }
         bool hhtf_algo_4_buy=false;
         bool hhtf_algo_4_sell=false;
         if(HHTF_Algo_4)
           {
            if(hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1>hhtf_adxw_red_1)
               hhtf_algo_4_buy=true;
            if(hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1<hhtf_adxw_red_1)
               hhtf_algo_4_sell=true;
           }
         else
           {
            hhtf_algo_4_buy=true;
            hhtf_algo_4_sell=true;
           }

         bool algo_5_buy=false;
         bool algo_5_sell=false;
         double macd_htf_blue_1=HVal(macd_handle_htf,0,1);
         double macd_htf_blue_2=HVal(macd_handle_htf,0,2);
         double macd_htf_red_1=HVal(macd_handle_htf,1,1);
         double macd_htf_red_2=HVal(macd_handle_htf,1,2);
         if(Algo_5)
           {
            if(macd_htf_blue_1>macd_htf_red_1&&macd_htf_blue_1<0.0&&macd_htf_red_1<0.0)
               algo_5_buy=true;
            if(macd_htf_blue_1<macd_htf_red_1&&macd_htf_blue_1>0.0&&macd_htf_red_1>0.0)
               algo_5_sell=true;
           }
         else
           {
            algo_5_buy=true;
            algo_5_sell=true;
           }
         bool hhtf_algo_5_buy=false;
         bool hhtf_algo_5_sell=false;
         double hhtf_macd_htf_blue_1=HVal(macd_handle_hhtf,0,1);
         double hhtf_macd_htf_blue_2=HVal(macd_handle_hhtf,0,2);
         double hhtf_macd_htf_red_1=HVal(macd_handle_hhtf,1,1);
         double hhtf_macd_htf_red_2=HVal(macd_handle_hhtf,1,2);
         if(HHTF_Algo_5)
           {
            if(hhtf_macd_htf_blue_1>hhtf_macd_htf_red_1&&hhtf_macd_htf_blue_1<0.0&&hhtf_macd_htf_red_1<0.0)
               hhtf_algo_5_buy=true;
            if(hhtf_macd_htf_blue_1<hhtf_macd_htf_red_1&&hhtf_macd_htf_blue_1>0.0&&hhtf_macd_htf_red_1>0.0)
               hhtf_algo_5_sell=true;
           }
         else
           {
            hhtf_algo_5_buy=true;
            hhtf_algo_5_sell=true;
           }

         bool algo_6_buy=false;
         bool algo_6_sell=false;
         if(Algo_6)
           {
            if(macd_htf_blue_1>macd_htf_red_1)
               algo_6_buy=true;
            if(macd_htf_blue_1<macd_htf_red_1)
               algo_6_sell=true;
           }
         else
           {
            algo_6_buy=true;
            algo_6_sell=true;
           }
         bool hhtf_algo_6_buy=false;
         bool hhtf_algo_6_sell=false;
         if(HHTF_Algo_6)
           {
            if(hhtf_macd_htf_blue_1>hhtf_macd_htf_red_1)
               hhtf_algo_6_buy=true;
            if(hhtf_macd_htf_blue_1<hhtf_macd_htf_red_1)
               hhtf_algo_6_sell=true;
           }
         else
           {
            hhtf_algo_6_buy=true;
            hhtf_algo_6_sell=true;
           }

         bool algo_7_buy=false;
         bool algo_7_sell=false;
         if(Algo_7)
           {
            int algo_ret=Algo_7_F_HTF(Algo_7_Ignore_0,Algo_7_Mode);

            if(algo_ret==-1)
               algo_7_buy=true;
            if(algo_ret==1)
               algo_7_sell=true;
           }
         else
           {
            algo_7_buy=true;
            algo_7_sell=true;
           }
         bool hhtf_algo_7_buy=false;
         bool hhtf_algo_7_sell=false;
         if(HHTF_Algo_7)
           {
            int algo_ret=Algo_7_F_HHTF(HHTF_Algo_7_Ignore_0,HHTF_Algo_7_Mode);

            if(algo_ret==-1)
               hhtf_algo_7_buy=true;
            if(algo_ret==1)
               hhtf_algo_7_sell=true;
           }
         else
           {
            hhtf_algo_7_buy=true;
            hhtf_algo_7_sell=true;
           }

         bool algo_8_buy=false;
         bool algo_8_sell=false;
         if(Algo_8)
           {
            if(trix_1>0.0)
              {
               algo_8_buy=true;
               if(adxw_main_1>ADXW_Level&&adxw_red_1>adxw_green_1)
                  algo_8_buy=false;
              }
            if(trix_1<0.0)
              {
               algo_8_sell=true;
               if(adxw_main_1>ADXW_Level&&adxw_red_1<adxw_green_1)
                  algo_8_sell=false;
              }
           }
         else
           {
            algo_8_buy=true;
            algo_8_sell=true;
           }
         bool hhtf_algo_8_buy=false;
         bool hhtf_algo_8_sell=false;
         if(HHTF_Algo_8)
           {
            if(hhtf_trix_1>0.0)
              {
               hhtf_algo_8_buy=true;
               if(hhtf_adxw_main_1>ADXW_Level&&hhtf_adxw_red_1>hhtf_adxw_green_1)
                  hhtf_algo_8_buy=false;
              }
            if(hhtf_trix_1<0.0)
              {
               hhtf_algo_8_sell=true;
               if(hhtf_adxw_main_1>ADXW_Level&&hhtf_adxw_red_1<hhtf_adxw_green_1)
                  hhtf_algo_8_sell=false;
              }
           }
         else
           {
            hhtf_algo_8_buy=true;
            hhtf_algo_8_sell=true;
           }

         bool algo_9_buy=false;
         bool algo_9_sell=false;
         if(Algo_9)
           {
            if(trix_1>0.0&&(adxw_main_1<ADXW_Level||(adxw_main_1>=ADXW_Level&&adxw_green_1>adxw_red_1)))
              {
               algo_9_buy=true;
              }
            if(trix_1<0.0&&((adxw_main_1>=ADXW_Level&&adxw_green_1>adxw_red_1)))
              {
               algo_9_buy=true;
              }
            if(trix_1<0.0&&(adxw_main_1<ADXW_Level||(adxw_main_1>=ADXW_Level&&adxw_green_1<adxw_red_1)))
              {
               algo_9_sell=true;
              }
            if(trix_1>0.0&&((adxw_main_1>=ADXW_Level&&adxw_green_1<adxw_red_1)))
              {
               algo_9_sell=true;
              }
           }
         else
           {
            algo_9_buy=true;
            algo_9_sell=true;
           }

         bool hhtf_algo_9_buy=false;
         bool hhtf_algo_9_sell=false;
         if(HHTF_Algo_9)
           {
            if(hhtf_trix_1>0.0&&(hhtf_adxw_main_1<ADXW_Level||(hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1>hhtf_adxw_red_1)))
              {
               hhtf_algo_9_buy=true;
              }
            if(hhtf_trix_1<0.0&&((hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1>hhtf_adxw_red_1)))
              {
               hhtf_algo_9_buy=true;
              }
            if(hhtf_trix_1<0.0&&(hhtf_adxw_main_1<ADXW_Level||(hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1<hhtf_adxw_red_1)))
              {
               hhtf_algo_9_sell=true;
              }
            if(hhtf_trix_1>0.0&&((hhtf_adxw_main_1>=ADXW_Level&&hhtf_adxw_green_1<hhtf_adxw_red_1)))
              {
               hhtf_algo_9_sell=true;
              }
           }
         else
           {
            hhtf_algo_9_buy=true;
            hhtf_algo_9_sell=true;
           }
         string comm_str="";
         comm_str+="\nСтарший ТФ:";
         if(Algo_1)
            comm_str+="\nAlgo_1: BUY="+IntegerToString(algo_1_buy)+" SELL="+IntegerToString(algo_1_sell);
         if(Algo_2)
            comm_str+="\nAlgo_2: BUY="+IntegerToString(algo_2_buy)+" SELL="+IntegerToString(algo_2_sell);
         if(Algo_3)
            comm_str+="\nAlgo_3: BUY="+IntegerToString(algo_3_buy)+" SELL="+IntegerToString(algo_3_sell);
         if(Algo_4)
            comm_str+="\nAlgo_4: BUY="+IntegerToString(algo_4_buy)+" SELL="+IntegerToString(algo_4_sell);
         if(Algo_5)
            comm_str+="\nAlgo_5: BUY="+IntegerToString(algo_5_buy)+" SELL="+IntegerToString(algo_5_sell);
         if(Algo_6)
            comm_str+="\nAlgo_6: BUY="+IntegerToString(algo_6_buy)+" SELL="+IntegerToString(algo_6_sell);
         if(Algo_7)
            comm_str+="\nAlgo_7: BUY="+IntegerToString(algo_7_buy)+" SELL="+IntegerToString(algo_7_sell);
         if(Algo_8)
            comm_str+="\nAlgo_8: BUY="+IntegerToString(algo_8_buy)+" SELL="+IntegerToString(algo_8_sell);
         if(Algo_9)
            comm_str+="\nAlgo_9: BUY="+IntegerToString(algo_9_buy)+" SELL="+IntegerToString(algo_9_sell);
         comm_str+="\n\nСамый старший ТФ:";
         if(HHTF_Algo_1)
            comm_str+="\nAlgo_1: BUY="+IntegerToString(hhtf_algo_1_buy)+" SELL="+IntegerToString(hhtf_algo_1_sell);
         if(HHTF_Algo_2)
            comm_str+="\nAlgo_2: BUY="+IntegerToString(hhtf_algo_2_buy)+" SELL="+IntegerToString(hhtf_algo_2_sell);
         if(HHTF_Algo_3)
            comm_str+="\nAlgo_3: BUY="+IntegerToString(hhtf_algo_3_buy)+" SELL="+IntegerToString(hhtf_algo_3_sell);
         if(HHTF_Algo_4)
            comm_str+="\nAlgo_4: BUY="+IntegerToString(hhtf_algo_4_buy)+" SELL="+IntegerToString(hhtf_algo_4_sell);
         if(HHTF_Algo_5)
            comm_str+="\nAlgo_5: BUY="+IntegerToString(hhtf_algo_5_buy)+" SELL="+IntegerToString(hhtf_algo_5_sell);
         if(HHTF_Algo_6)
            comm_str+="\nAlgo_6: BUY="+IntegerToString(hhtf_algo_6_buy)+" SELL="+IntegerToString(hhtf_algo_6_sell);
         if(HHTF_Algo_7)
            comm_str+="\nAlgo_7: BUY="+IntegerToString(hhtf_algo_7_buy)+" SELL="+IntegerToString(hhtf_algo_7_sell);
         if(HHTF_Algo_8)
            comm_str+="\nAlgo_8: BUY="+IntegerToString(hhtf_algo_8_buy)+" SELL="+IntegerToString(hhtf_algo_8_sell);
         if(HHTF_Algo_9)
            comm_str+="\nAlgo_9: BUY="+IntegerToString(hhtf_algo_9_buy)+" SELL="+IntegerToString(hhtf_algo_9_sell);
         Comment(comm_str);

         if(Mode_2_RSI_MACD)
           {
            if(iClose(NULL,TF,1)>ma_1&&iOpen(NULL,TF,1)<ma_1
               &&macd_blue_1>macd_red_1
               &&macd_blue_1<0.0
               &&macd_red_1<0.0
              )
              {
               bool flag_1=false;
               bool flag_rsi=false;
               for(int i=2; i<CountBars; i++)
                 {
                  double macd_blue_i=HVal(macd_handle,0,i);
                  double macd_red_i=HVal(macd_handle,1,i);
                  if(!flag_1)
                    {
                     if(macd_red_i>macd_blue_i)
                       {
                        flag_1=true;
                       }
                    }
                  if(flag_1)
                    {
                     double rsi_i=HVal(rsi_handle,0,i);
                     if(rsi_i<=RSI_Oversold)
                       {
                        flag_rsi=true;
                        if(last_rsi_time_buy==iTime(NULL,0,i))
                          {
                           flag_rsi=false;
                          }
                        last_rsi_time_buy=iTime(NULL,0,i);
                        break;
                       }
                     if(macd_red_i<macd_blue_i)
                       {
                        break;
                       }
                    }
                 }

               bool part_4_2_buy=false;
               if(Part_4_2)
                 {
                  double adxw_main_ma_1=HVal(adxw_handle,0,1);
                  double adxw_green_ma_1=HVal(adxw_handle,1,1);
                  double adxw_red_ma_1=HVal(adxw_handle,2,1);
                  if(adxw_main_ma_1>=ADXW_Level&&adxw_green_ma_1>adxw_red_ma_1
                    )
                     part_4_2_buy=true;
                 }
               else
                 {
                  part_4_2_buy=true;
                 }

               bool part_7_buy=false;
               if(Part_7_Filter)
                 {
                  double adxw_main_ma_1=HVal(adxw_handle,0,1);
                  double adxw_green_ma_1=HVal(adxw_handle,1,1);
                  double adxw_red_ma_1=HVal(adxw_handle,2,1);
                  if(adxw_green_ma_1>adxw_red_ma_1
                    )
                     part_7_buy=true;
                 }
               else
                 {
                  part_7_buy=true;
                 }

               if((flag_rsi||Mode_2_RSI_MACD_NO_RSI)&&part_4_2_buy&&part_7_buy)
                 {
                  Signal_RSI_buy=true;
                  Signal_RSI_buy_cancel=iTime(NULL,TF,0)+Mode_2_RSI_MACD_CancelBars*PeriodSeconds(TF);
                 }
              }
            if(iTime(NULL,TF,0)>Signal_RSI_buy_cancel)
               Signal_RSI_buy=false;
            if(iClose(NULL,TF,1)<ma_1&&iOpen(NULL,TF,1)>ma_1
               &&macd_blue_1<macd_red_1
               &&macd_blue_1>0.0
               &&macd_red_1>0.0
              )
              {
               bool flag_1=false;
               bool flag_rsi=false;
               for(int i=2; i<CountBars; i++)
                 {
                  double macd_blue_i=HVal(macd_handle,0,i);
                  double macd_red_i=HVal(macd_handle,1,i);
                  if(!flag_1)
                    {
                     if(macd_red_i<macd_blue_i)
                       {
                        flag_1=true;
                       }
                    }
                  if(flag_1)
                    {
                     double rsi_i=HVal(rsi_handle,0,i);
                     if(rsi_i>=RSI_Overbought)
                       {
                        flag_rsi=true;
                        if(last_rsi_time_sell==iTime(NULL,0,i))
                          {
                           flag_rsi=false;
                          }
                        last_rsi_time_sell=iTime(NULL,0,i);
                        break;
                       }
                     if(macd_red_i>macd_blue_i)
                       {
                        break;
                       }
                    }
                 }

               bool part_4_2_sell=false;
               if(Part_4_2)
                 {
                  double adxw_main_ma_1=HVal(adxw_handle,0,1);
                  double adxw_green_ma_1=HVal(adxw_handle,1,1);
                  double adxw_red_ma_1=HVal(adxw_handle,2,1);
                  if(adxw_main_ma_1>=ADXW_Level&&adxw_green_ma_1<adxw_red_ma_1
                    )
                     part_4_2_sell=true;
                 }
               else
                 {
                  part_4_2_sell=true;
                 }
               bool part_7_sell=false;
               if(Part_7_Filter)
                 {
                  double adxw_main_ma_1=HVal(adxw_handle,0,1);
                  double adxw_green_ma_1=HVal(adxw_handle,1,1);
                  double adxw_red_ma_1=HVal(adxw_handle,2,1);
                  if(adxw_green_ma_1<adxw_red_ma_1
                    )
                     part_7_sell=true;
                 }
               else
                 {
                  part_7_sell=true;
                 }

               if((flag_rsi||Mode_2_RSI_MACD_NO_RSI)&&part_4_2_sell&&part_7_sell)
                 {
                  Signal_RSI_sell=true;
                  Signal_RSI_sell_cancel=iTime(NULL,TF,0)+Mode_2_RSI_MACD_CancelBars*PeriodSeconds(TF);
                 }
              }
            if(iTime(NULL,TF,0)>Signal_RSI_sell_cancel)
               Signal_RSI_sell=false;
            if(Signal_RSI_buy)
              {
               double rsi_1=HVal(rsi_handle,0,1);
               if(rsi_1>=50&&iClose(NULL,TF,1)>ma_1)
                 {
                  Signal_RSI_buy=false;
                  double zig_3_price=0.0;
                  for(int i=1; i<CountBars; i++)
                    {
                     double zig_lower_i=HVal(zigzag_handle,1,i);
                     if(zig_lower_i!=EMPTY_VALUE&&zig_lower_i>0.0)
                       {
                        zig_3_price=zig_lower_i;
                        break;
                       }
                    }
                  if(iCountPosition(MagicNumber,POSITION_TYPE_BUY)==0&&day_trades<MaxDailyTrades
                     &&algo_1_buy
                     &&algo_2_buy
                     &&algo_3_buy
                     &&algo_4_buy
                     &&algo_5_buy
                     &&algo_6_buy
                     &&algo_7_buy
                     &&algo_8_buy
                     &&algo_9_buy
                     &&hhtf_algo_1_buy
                     &&hhtf_algo_2_buy
                     &&hhtf_algo_3_buy
                     &&hhtf_algo_4_buy
                     &&hhtf_algo_5_buy
                     &&hhtf_algo_6_buy
                     &&hhtf_algo_7_buy
                     &&hhtf_algo_8_buy
                     &&hhtf_algo_9_buy
                    )
                    {
                     double lot=FixLot;
                     double sl_pips=((Ask()-zig_3_price)/Point())*(1+SL_Plus_Perc/100.0);
                     double sl=NormalizeDouble(Ask()-sl_pips*Point(),_Digits);
                     double tp=NormalizeDouble(Ask()+TP_SL_Ratio*sl_pips*Point(),_Digits);
                     if(AutoLot)
                        lot=DealLot(POSITION_TYPE_BUY,Ask(),sl,SL_Lot_Perc);
                     if(Bid()-sl<SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL)*Point()+Point())
                        sl=Bid()-SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL)*Point()-Point();
                     if(tp-Bid()<SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL)*Point()+Point())
                        tp=Bid()+SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL)*Point()+Point();
                     if(OpenTrade)
                        Trade.Buy(lot,NULL,Ask(),sl,tp);
                     string str_text=Symbol()+" open BUY";
                     if(TelegtamTrade)
                        SendText(TelegramBot,TelegramChatId,str_text);
                     if(OnAlertTrade)
                       {
                        Alert(str_text);
                        PlaySound("expert.wav");
                       }
                     day_trades++;
                    }
                 }
              }
            if(Signal_RSI_sell)
              {
               double rsi_1=HVal(rsi_handle,0,1);
               if(rsi_1<=50&&iClose(NULL,TF,1)<ma_1)
                 {
                  Signal_RSI_sell=false;
                  double zig_3_price=0.0;
                  for(int i=1; i<CountBars; i++)
                    {
                     double zig_upper_i=HVal(zigzag_handle,0,i);
                     if(zig_upper_i!=EMPTY_VALUE&&zig_upper_i>0.0)
                       {
                        zig_3_price=zig_upper_i;
                        break;
                       }
                    }
                  if(iCountPosition(MagicNumber,POSITION_TYPE_SELL)==0&&day_trades<MaxDailyTrades
                     &&algo_1_sell
                     &&algo_2_sell
                     &&algo_3_sell
                     &&algo_4_sell
                     &&algo_5_sell
                     &&algo_6_sell
                     &&algo_7_sell
                     &&algo_8_sell
                     &&algo_9_sell
                     &&hhtf_algo_1_sell
                     &&hhtf_algo_2_sell
                     &&hhtf_algo_3_sell
                     &&hhtf_algo_4_sell
                     &&hhtf_algo_5_sell
                     &&hhtf_algo_6_sell
                     &&hhtf_algo_7_sell
                     &&hhtf_algo_8_sell
                     &&hhtf_algo_9_sell
                    )
                    {
                     double lot=FixLot;
                     double sl_pips=((zig_3_price-Bid())/Point())*(1+SL_Plus_Perc/100.0);
                     double sl=NormalizeDouble(Bid()+sl_pips*Point(),_Digits);
                     double tp=NormalizeDouble(Bid()-TP_SL_Ratio*sl_pips*Point(),_Digits);
                     if(AutoLot)
                        lot=DealLot(POSITION_TYPE_SELL,Bid(),sl,SL_Lot_Perc);
                     if(sl-Ask()<SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL)*Point()+Point())
                        sl=Ask()+SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL)*Point()+Point();
                     if(Ask()-tp<SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL)*Point()+Point())
                        tp=Ask()-SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL)*Point()-Point();
                     if(OpenTrade)
                        Trade.Sell(lot,NULL,Bid(),NormalizeDouble(sl,_Digits),NormalizeDouble(tp,_Digits));
                     string str_text=Symbol()+" open SELL";
                     if(TelegtamTrade)
                        SendText(TelegramBot,TelegramChatId,str_text);
                     if(OnAlertTrade)
                       {
                        Alert(str_text);
                        PlaySound("expert.wav");
                       }
                     day_trades++;
                    }
                 }
              }
           }

         if(StandartManevr)
           {
            if(iClose(NULL,TF,1)>ma_1&&iOpen(NULL,TF,1)<ma_1
               &&macd_blue_1>macd_red_1
               &&macd_blue_1<0.0
               &&macd_red_1<0.0
              )
              {
               bool flag_1=false;
               int stop_bar=0;
               for(int i=2; i<CountBars; i++)
                 {
                  if(iTime(NULL,TF,i)<last_stand_buy_time)
                     break;
                  double macd_blue_i=HVal(macd_handle,0,i);
                  double macd_red_i=HVal(macd_handle,1,i);
                  if(!flag_1)
                    {
                     if(macd_red_i>macd_blue_i)
                       {
                        flag_1=true;
                       }
                     double ma_i=HVal(ma_handle,0,i);
                     if(iClose(NULL,TF,i)>ma_i&&iOpen(NULL,TF,i)<ma_i&&!TradingTimeDays(iTime(NULL,TF,i)))
                        break;
                    }
                  if(flag_1)
                    {
                     if(macd_red_i<macd_blue_i)
                       {
                        if(macd_red_i>0.0&&macd_blue_i>0.0)
                          {
                           stop_bar=i-1;
                           ChartVLine(prefix+TimeToString(iTime(NULL,TF,stop_bar)),0,iTime(NULL,TF,stop_bar),1,clrViolet);
                           break;
                          }
                        else
                           break;
                       }
                    }
                 }
               int ma_bar=0;
               datetime ma_time=0;
               for(int i=stop_bar; i>0; i--)
                 {
                  double ma_i=HVal(ma_handle,0,i);
                  double macd_blue_i=HVal(macd_handle,0,i);
                  double macd_red_i=HVal(macd_handle,1,i);
                  if(iClose(NULL,TF,i)<ma_i&&iOpen(NULL,TF,i)>ma_i&&macd_red_i>0.0&&macd_blue_i>0.0)
                    {
                     ma_bar=i;
                     ma_time=iTime(NULL,TF,i);
                     ChartVLine(prefix+"ma_bar"+TimeToString(ma_time),0,ma_time,1,clrAqua);
                     ChartVLine(prefix+"tvh"+TimeToString(iTime(NULL,TF,1)),0,iTime(NULL,TF,1),1,clrYellow);
                     break;
                    }
                 }

               bool flag_s1=false;
               bool flag_s1_rsi=false;
               for(int i=ma_bar+1; i<CountBars; i++)
                 {
                  double macd_blue_i=HVal(macd_handle,0,i);
                  double macd_red_i=HVal(macd_handle,1,i);
                  if(!flag_s1)
                    {
                     if(macd_blue_i>macd_red_i)
                        flag_s1=true;
                    }
                  double rsi_i=HVal(rsi_handle,0,i);
                  if(rsi_i>=RSI_Overbought)
                    {
                     flag_s1_rsi=true;
                     break;
                    }
                  if(flag_s1)
                    {
                     if(macd_blue_i<macd_red_i)
                        break;
                    }
                 }
               bool flag_s2_rsi=false;
               for(int i=ma_bar; i>1; i--)
                 {
                  double rsi_i=HVal(rsi_handle,0,i);
                  if(rsi_i<=50)
                    {
                     flag_s2_rsi=true;
                     break;
                    }
                 }
               bool flag_full_rsi=false;
               double rsi_1=HVal(rsi_handle,0,1);
               if(rsi_1>50&&flag_s2_rsi&&flag_s1_rsi)
                 {
                  flag_full_rsi=true;
                 }
               if(StandartManevrAddRSI==false)
                  flag_full_rsi=true;

               int zig_1_bar=0;
               int zig_2_bar=0;
               int zig_3_bar=0;
               double zig_1_price=0.0;
               double zig_2_price=0.0;
               double zig_3_price=0.0;
               double zig_0_price=0.0;
               double zig_minus_1_price=0.0;
               datetime zig_1_time=0;
               datetime zig_2_time=0;
               datetime zig_3_time=0;
               datetime zig_0_time=0;
               datetime zig_minus_1_time=0;
               if(ma_bar>0)
                 {
                  for(int i=1; i<ma_bar; i++)
                    {
                     double zig_lower_i=HVal(zigzag_handle,1,i);
                     if(zig_lower_i!=EMPTY_VALUE&&zig_lower_i>0.0)
                       {
                        zig_3_price=zig_lower_i;
                        zig_3_time=iTime(NULL,TF,i);
                        zig_3_bar=i;
                        ChartLabel(prefix+"zig_3_time"+TimeToString(zig_3_time),"3",zig_3_time,zig_3_price,clrYellow,ANCHOR_LEFT_UPPER);
                        break;
                       }
                    }
                  for(int i=ma_bar; i<CountBars; i++)
                    {
                     double zig_upper_i=HVal(zigzag_handle,0,i);
                     if(zig_upper_i!=EMPTY_VALUE&&zig_upper_i>0.0)
                       {
                        if(zig_2_price==0.0)
                          {
                           zig_2_price=zig_upper_i;
                           zig_2_time=iTime(NULL,TF,i);
                           zig_2_bar=i;
                           ChartLabel(prefix+"zig_2_time"+TimeToString(zig_2_time),"2",zig_2_time,zig_2_price,clrYellow,ANCHOR_LEFT_LOWER);
                          }
                        else
                          {
                           zig_0_price=zig_upper_i;
                           zig_0_time=iTime(NULL,TF,i);
                           ChartLabel(prefix+"zig_0_time"+TimeToString(zig_0_time),"0",zig_0_time,zig_0_price,clrYellow,ANCHOR_LEFT_LOWER);
                           break;
                          }
                       }
                    }
                  for(int i=zig_2_bar+1; i<CountBars; i++)
                    {
                     double zig_lower_i=HVal(zigzag_handle,1,i);
                     if(zig_lower_i!=EMPTY_VALUE&&zig_lower_i>0.0)
                       {
                        if(zig_1_price==0.0)
                          {
                           zig_1_price=zig_lower_i;
                           zig_1_time=iTime(NULL,TF,i);
                           zig_1_bar=i;
                           ChartLabel(prefix+"zig_1_time"+TimeToString(zig_1_time),"1",zig_1_time,zig_1_price,clrYellow,ANCHOR_LEFT_UPPER);
                          }
                        else
                          {
                           zig_minus_1_price=zig_lower_i;
                           zig_minus_1_time=iTime(NULL,TF,i);
                           ChartLabel(prefix+"zig_minus_1_price"+TimeToString(zig_minus_1_time),"-1",zig_minus_1_time,zig_minus_1_price,clrYellow,ANCHOR_LEFT_UPPER);
                           break;
                          }
                       }
                    }
                  bool flag_3=true;
                  for(int i=zig_3_bar+1; i<zig_1_bar; i++)
                    {
                     double zig_lower_i=HVal(zigzag_handle,1,i);
                     if(zig_lower_i!=EMPTY_VALUE&&zig_lower_i>0.0)
                       {
                        if(zig_lower_i<zig_3_price)
                           flag_3=false;
                       }
                    }
                  bool zigzag_rules=false;
                  if(zig_3_price>0.0&&zig_2_price>0.0&&zig_1_price>0.0&&flag_3&&zig_2_bar>zig_3_bar&&zig_2_bar<zig_1_bar)
                    {

                     if(zig_1_price<zig_2_price
                        &&zig_1_price<zig_3_price
                        &&zig_2_price>zig_3_price
                        &&Ask()<zig_2_price
                       )
                        zigzag_rules=true;
                    }
                  if(ZigZagRules==false)
                     zigzag_rules=true;

                  bool part_4_1_buy=false;
                  if(Part_4_1)
                    {
                     double adxw_main_ma=HVal(adxw_handle,0,ma_bar);
                     double adxw_green_ma=HVal(adxw_handle,1,ma_bar);
                     double adxw_red_ma=HVal(adxw_handle,2,ma_bar);
                     double adxw_main_ma_1=HVal(adxw_handle,0,1);
                     double adxw_green_ma_1=HVal(adxw_handle,1,1);
                     double adxw_red_ma_1=HVal(adxw_handle,2,1);
                     if(adxw_main_ma>=ADXW_Level&&adxw_green_ma<adxw_red_ma
                        &&adxw_main_ma_1>=ADXW_Level&&adxw_green_ma_1>adxw_red_ma_1
                       )
                        part_4_1_buy=true;
                    }
                  else
                    {
                     part_4_1_buy=true;
                    }

                  bool part_4_2_buy=false;
                  if(Part_4_2)
                    {
                     double adxw_main_ma_1=HVal(adxw_handle,0,1);
                     double adxw_green_ma_1=HVal(adxw_handle,1,1);
                     double adxw_red_ma_1=HVal(adxw_handle,2,1);
                     if(adxw_main_ma_1>=ADXW_Level&&adxw_green_ma_1>adxw_red_ma_1
                       )
                        part_4_2_buy=true;
                    }
                  else
                    {
                     part_4_2_buy=true;
                    }

                  bool part_7_buy=false;
                  if(Part_7_Filter)
                    {
                     double adxw_main_ma_1=HVal(adxw_handle,0,1);
                     double adxw_green_ma_1=HVal(adxw_handle,1,1);
                     double adxw_red_ma_1=HVal(adxw_handle,2,1);
                     if(adxw_green_ma_1>adxw_red_ma_1
                       )
                        part_7_buy=true;
                    }
                  else
                    {
                     part_7_buy=true;
                    }
                  if(part_7_buy==false)
                    {
                     last_stand_buy_time=iTime(NULL,TF,1);
                    }

                  if(zigzag_rules)
                    {
                     bool allow_mode_2=false;
                     bool allow_mode_3=false;
                     if(ModeZigZag==mode_2)
                       {
                        if(zig_0_price>0.0
                           &&zig_0_price<zig_2_price
                           &&zig_0_price>zig_1_price
                          )
                           allow_mode_2=true;
                       }
                     else
                        allow_mode_2=true;
                     if(ModeZigZag==mode_3)
                       {
                        if(zig_minus_1_price>0.0
                           &&zig_minus_1_price<zig_0_price
                           &&zig_minus_1_price<zig_1_price
                           &&zig_0_price<zig_2_price
                          )
                           allow_mode_3=true;
                       }
                     else
                        allow_mode_3=true;
                     if(ZigZagRules==false)
                       {
                        allow_mode_2=true;
                        allow_mode_3=true;
                       }
                     if(iCountPosition(MagicNumber,POSITION_TYPE_BUY)==0&&allow_mode_2&&allow_mode_3&&day_trades<MaxDailyTrades
                        &&algo_1_buy
                        &&algo_2_buy
                        &&algo_3_buy
                        &&algo_4_buy
                        &&algo_5_buy
                        &&algo_6_buy
                        &&algo_7_buy
                        &&algo_8_buy
                        &&algo_9_buy
                        &&hhtf_algo_1_buy
                        &&hhtf_algo_2_buy
                        &&hhtf_algo_3_buy
                        &&hhtf_algo_4_buy
                        &&hhtf_algo_5_buy
                        &&hhtf_algo_6_buy
                        &&hhtf_algo_7_buy
                        &&hhtf_algo_8_buy
                        &&hhtf_algo_9_buy
             

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

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

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

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

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

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

Стоимость полного кода
5 337,90₽ ≈ $65.25