ftlm_zigzag_macd.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ftlm_zigzag_macd.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.