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

lego_v3.mq4

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

pro +.pineTradingView · 3 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 3 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 3 общих теговmelona ob strategy 6th update (by 3dots).pineTradingView · 3 общих теговsmc+ict+indicators+scalping master.pineTradingView · 3 общих теговpremium_super_scalping killer algo.pineTradingView · 3 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой торгового советника (Expert Advisor) для платформы MetaTrader 4, выполненный в виде гибкой оболочки для реализации собственных торговых стратегий. Советник поддерживает множество встроенных технических индикаторов — скользящие средние, стохастик, RSI, MACD, OsMA, ADX, SAR, Awesome Oscillator, фракталы, ускоритель, Демаркер, CCI, WPR, MFI и ATR — для формирования сигналов на открытие и закрытие позиций. Каждый индикатор можно включать или отключать независимо с помощью соответствующих переключателей.

Продукт предоставляет возможность подключения пользовательских индикаторов через механизм iCustom, а также включает блок управления денежными средствами с тремя режимами: фиксированный лот, мартингейл с множителем и процентное исчисление лота от equity. Для установки стоп-лосса и тейк-профита предусмотрена система на основе индикатора ATR с настраиваемым периодом и множителем.

Советник ограничивает количество открытых ордеров до одного на пару, содержит механизм паузы после закрытия сделки, настраиваемое проскальзывание и встроенную обработку типичных торговых ошибок. Продукт не является готовной стратегией — пользователю необходимо самостоятельно определить логику открытия и закрытия позиций через выбор и настройку индикаторов.

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

НастройкаОписание
The_instruction Инструкция в коде — Указание на то, что инструкция находится в комментариях к коду.
General_Paramethers Общие настройки — Заголовок общей секции настроек советника.
StopLoss (StopLoss) Стоп-лосс — Значение стоп-лосса в пунктах. Может быть заменено автоматическим значением на основе ATR при соответствующей настройке.
?ake?rofit. May be defined by indicators also. (TakeProfit) Тейк-профит — Значение тейк-профита в пунктах. Может быть заменено автоматическим значением на основе ATR при соответствующей настройке.
I hope, theese are really seconds. (SleepBars_about) Пояснение паузы — Пояснение к паузе — указывает примерное время ожидания в секундах после закрытия позиции.
A pause (SleepBars) Пауза после закрытия — Переключатель паузы (сна) после закрытия ордера. При активации советник ожидает заданное количество баров перед следующей торговой операцией.
Slippage. Open a dictionary. (Slippage) Проскальзывание — Допустимое проскальзывание цены при открытии ордера (в пунктах).
ID_of_EA__About Пояснение идентификатора — Пояснение к Magic Number — идентификатору советника для различения ордеров при одновременной работе нескольких советников.
No, not that lame indicator "Zigzag", but a fuct. char. (ID_of_EA) Идентификатор советника — Идентификатор советника (Magic Number), используемый для различения ордеров, созданных данным советником. Позволяет запускать несколько советников одновременно на одном счёте.
Block_of_Stakes Управление лотом — Заголовок секции настроек управления лотом и денежными средствами.
Bl_1 Режимы управления лотом — Описание режимов управления лотом: 1 — фиксированный лот, 2 — мартингейл, 3 — процентный расчёт.
I mean, it waits for new deal for covering the problem. (Bl_2) Пояснение мартингейла — Пояснение к режиму мартингейла: мартингейл не является догоняющим и ожидает новую сделку для покрытия убытка.
Bl_3 Пояснение множителя IK — Пояснение к параметру IK — множителю, используемому в режиме мартингейла для расчёта размера следующей сделки.
StakeMode Режим управления лотом — Режим управления лотом: 1 — фиксированный размер, 2 — мартингейл с множителем IK, 3 — процент от equity.
Fixlot (Lts1) Фиксированный лот — Фиксированный размер лота, используемый при режиме фиксированного лота (StakeMode = 1).
Multiplying Lts1 * IK (if the previous deal was fail). Normally, Martingail is ThisDealLots = PrevDe (IK) Множитель мартингейла — Множитель для расчёта размера лота в режиме мартингейла. При неудачной сделке размер следующей сделки умножается на этот параметр.
Percents Процент лота от equity — Процентная доля от equity, используемая для расчёта размера лота в процентном режиме (StakeMode = 3).
ATR Настройки ATR — Разделитель секции настроек ATR для установки стоп-лосса и тейк-профита на основе среднего истинного диапазона.
Actually, never tuned by me properly. (ATR_s_) Примечание ATR — Примечание к настройкам ATR. Указывает, что параметры ATR для стоп-лосса и тейк-профита могут быть заменены или скорректированы пользователем.
_purpose_is_ Назначение множителя ATR — Пояснение к назначению параметра ATR_Multiply — определяет чувствительность реакции стоп-лосса или тейк-профита.
_stop_management Управление стопами — Пояснение к управлению стопами: при значении Multiply=0.9 реакция составляет 0.9 пипса на 0.0001 ATR.
ATR_Period Период ATR — Период расчёта индикатора ATR (средний истинный диапазон).
ATR_Multiply Множитель ATR — Множитель ATR, определяющий расстояние стоп-лосса или тейк-профита в пунктах относительно текущего значения индикатора ATR.
ATR_Reach Минимальный порог ATR — Минимальное значение ATR, при котором срабатывает автоматическая установка стоп-лосса или тейк-профита.
ATR_SL Стоп-лосс на ATR — Переключатель для автоматической установки стоп-лосса на основе индикатора ATR.
ATR_TP Тейк-профит на ATR — Переключатель для автоматической установки тейк-профита на основе индикатора ATR.
Implemented_Indicators Встроенные индикаторы — Примечание о встроенных индикаторах, доступных в советнике.
Dont_earse Поиск индикаторов в коде — Подсказка о том, что все используемые индикаторы можно найти с помощью поиска в коде (Ctrl+F).
WARNING1 Предупреждение 1 — Предупреждение о том, что параметры открытия и закрытия позиций должны быть определены пользователем самостоятельно.
WARNING2 Предупреждение 2 — Предупреждение о зависимости логики торговых сигналов от выбранной стратегии.
WARNING3 Предупреждение 3 — Предупреждение о необходимости убедиться, что выбранный индикатор корректно реализует торговую идею.
The_List_Of Список индикаторов — Примечание о списке индикаторов и необходимости использования математических навыков для их настройки.
otkr_MA Включение скользящих средних (открытие) — Переключатель для включения скользящих средних (MA) в качестве условия открытия позиции.
zakr_MA Включение скользящих средних (закрытие) — Переключатель для включения скользящих средних в качестве условия закрытия позиции.
MA1 Период MA1 — Период первой скользящей средней (MA).
MA2 Период MA2 — Период второй скользящей средней (MA).
I am too lazy to switch (Shift_ma) Сдвиг скользящей средней — Сдвиг скользящей средней по барам.
0 - Simple, 1 - Expotential, 2 - Smoothed, 3 - Linear Weighed (MA_sort_avoidit) Тип скользящей средней — Тип скользящей средней: 0 — простая (SMA), 1 — экспоненциальная (EMA), 2 — сглаженная (SMMA), 3 — линейно взвешенная (LWMA).
Stochastic Настройки стохастика — Разделитель секции настроек индикатора Stochastic (стохастик).
otkr_Stoh Включение стохастика (открытие) — Переключатель для включения стохастика в качестве условия открытия позиции.
zakr_Stoh Включение стохастика (закрытие) — Переключатель для включения стохастика в качестве условия закрытия позиции.
per_K Период K стохастика — Период K для индикатора стохастика (быстрая линия).
per_D Период D стохастика — Период D для индикатора стохастика (медленная линия).
slow Сглаживание стохастика — Параметр сглаживания для индикатора стохастика.
zoneBUY Зона покупки стохастика — Зона покупки для индикатора стохастика — значение, ниже которого линия K считается находящейся в зоне покупки.
No, I couldn't fix the levels. (zoneSELL) Зона продажи стохастика — Зона продажи для индикатора стохастика — значение, выше которого линия K считается находящейся в зоне продажи.
Awesome Настройки Awesome Oscillator — Разделитель секции настроек Awesome Oscillator.
otkr_AO Включение Awesome Oscillator (открытие) — Переключатель для включения Awesome Oscillator в качестве условия открытия позиции.
zakr_AO Включение Awesome Oscillator (закрытие) — Переключатель для включения Awesome Oscillator в качестве условия закрытия позиции.
Fractals Настройки фракталов — Разделитель секции настроек индикатора Fractals (фракталы).
otkr_Fractals Включение фракталов (открытие) — Переключатель для включения индикатора Fractals в качестве условия открытия позиции.
zakr_Fractals Включение фракталов (закрытие) — Переключатель для включения Fractals в качестве условия закрытия позиции.
Accelerator Настройки ускорителя — Разделитель секции настроек ускорителя (Accelerator Oscillator).
otkr_AC Включение ускорителя (открытие) — Переключатель для включения индикатора Accelerator (Accelerator Oscillator) в качестве условия открытия позиции.
zakr_AC Включение ускорителя (закрытие) — Переключатель для включения Accelerator в качестве условия закрытия позиции.
Demarker Настройки Demarker — Разделитель секции настроек индикатора Demarker.
otkr_Dema Включение Demarker (открытие) — Переключатель для включения индикатора Demarker в качестве условия открытия позиции.
zakr_Dema Включение Demarker (закрытие) — Переключатель для включения Demarker в качестве условия закрытия позиции.
DeMa_period Период Demarker — Период расчёта индикатора Demarker.
niz_ur Нижний порог Demarker — Нижний порог индикатора Demarker для формирования сигналов покупки.
verx_ur Верхний порог Demarker — Верхний порог индикатора Demarker для формирования сигналов продажи.
CCI Настройки CCI — Разделитель секции настроек индикатора CCI (Commodity Channel Index).
otkr_CCI Включение CCI (открытие) — Переключатель для включения индикатора CCI в качестве условия открытия позиции.
zakr_CCI Включение CCI (закрытие) — Переключатель для включения CCI в качестве условия закрытия позиции.
CCI_period Период CCI — Период расчёта индикатора CCI.
What, if we want 95? (CCI_Level) Порог CCI — Пороговое значение CCI для формирования сигналов закрытия позиции.
RSI Настройки RSI — Разделитель секции настроек индикатора RSI (Relative Strength Index).
otkr_RSI Включение RSI (открытие) — Переключатель для включения RSI в качестве условия открытия позиции.
zakr_RSI Включение RSI (закрытие) — Переключатель для включения RSI в качестве условия закрытия позиции.
RSI_Period Период RSI — Период расчёта индикатора RSI.
RSI_High Верхний порог RSI — Верхний порог RSI для формирования сигналов.
RSI_Low Нижний порог RSI — Нижний порог RSI для формирования сигналов.
MACD Настройки MACD — Разделитель секции настроек индикатора MACD.
otkr_MACD Включение MACD (открытие) — Переключатель для включения MACD в качестве условия открытия позиции.
zakr_MACD Включение MACD (закрытие) — Переключатель для включения MACD в качестве условия закрытия позиции.
MACD_Fast Быстрый период MACD — Быстрая линия MACD (период).
MACD uses SIGNAL line (MACD_Slow) Медленный период MACD — Медленная линия MACD (период).
because you have 2 MA Cross system (MACD_Signal) Период сигнальной линии MACD — Период сигнальной линии MACD.
OsMA Настройки OsMA — Разделитель секции настроек индикатора OsMA.
otkr_OsMA Включение OsMA (открытие) — Переключатель для включения OsMA в качестве условия открытия позиции.
zakr_OsMA Включение OsMA (закрытие) — Переключатель для включения OsMA в качестве условия закрытия позиции.
OsMA_Fast Быстрый период OsMA — Быстрый период индикатора OsMA.
SIGNAL line (Well, you can also try Zignal.com as a platform - expenseful lux look is a sort of guar (OsMA_Slow) Медленный период OsMA — Медленный период индикатора OsMA.
because you have 2 MA Cross system (OsMA_Signal) Период сигнальной линии OsMA — Период сигнальной линии индикатора OsMA.
WPR Настройки WPR — Разделитель секции настроек индикатора WPR (Williams Percent Range).
otkr_WPR Включение WPR (открытие) — Переключатель для включения WPR в качестве условия открытия позиции.
zakr_WPR Включение WPR (закрытие) — Переключатель для включения WPR в качестве условия закрытия позиции.
WPR_Period Период WPR — Период расчёта индикатора Williams Percent Range.
WPR_Shift Сдвиг WPR — Сдвиг индикатора WPR по барам.
MoneyFlow_aka_MFI Настройки MFI — Разделитель секции настроек индикатора Money Flow Index (MFI).
otkr_MFI Включение MFI (открытие) — Переключатель для включения индикатора Money Flow Index в качестве условия открытия позиции.
zakr_MFI Включение MFI (закрытие) — Переключатель для включения MFI в качестве условия закрытия позиции.
MFI_Period Период MFI — Период расчёта индикатора Money Flow Index.
MFI_High Верхний порог MFI — Верхний порог индикатора Money Flow Index (MFI) для сигналов.
MFI_Low Нижний порог MFI — Нижний порог индикатора Money Flow Index (MFI) для сигналов.
ADX Порог ADX — Пороговое значение линии ADX для определения сильного тренда. Используется как условие для формирования сигналов при включённом индикаторе ADX.
otkr_ADX Включение ADX (открытие) — Переключатель для включения индикатора ADX в качестве условия открытия позиции.
zakr_ADX Включение ADX (закрытие) — Переключатель для включения ADX в качестве условия закрытия позиции.
ADX_Period Период ADX — Период расчёта индикатора ADX (средняя направленного движения).
SAR Настройки Parabolic SAR — Разделитель секции настроек индикатора Parabolic SAR.
Получить полный код

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

extern   string   The_instruction            =  "...is in code-to comments";
extern   string   General_Paramethers        =  "----  General Paramethers ---- ";            
extern double StopLoss    =0;      // StopLoss
extern double TakeProfit  =0;      // ?ake?rofit. May be defined by indicators also.
extern   string   SleepBars_about            =  "A pause. 600 seconds...";// I hope, theese are really seconds.
extern bool   SleepBars  =false;// A pause
extern double Slippage = 2; // Slippage. Open a dictionary.
extern   string ID_of_EA__About              =  "aka MaigcNumber. What if you need 12 advisors at once?";
extern double ID_of_EA = 219249; // No, not that lame indicator "Zigzag", but a fuct. char.
extern   string    Block_of_Stakes           =  "----  Stake tuning ----"; 
extern   string    Bl_1                      =  "1 - FixLot, 2 - Martigail, 3 - Percental";
extern   string    Bl_2                      =  "Martingail is not a chaser here. Do you need such?"; // I mean, it waits for new deal for covering the problem.
extern   string    Bl_3                      =  "IK is a miltiplies for Martingail-taktic";
extern double StakeMode   =1;      //   
extern double Lts1        =0.1;    // Fixlot
extern double IK          =2;      // Multiplying Lts1 * IK (if the previous deal was fail). Normally, Martingail is ThisDealLots = PrevDealLots * 2,  so...
extern double Percents    =5;      //

extern   string   ATR                        =  "---- ---- ---- ----"; 
extern   string   ATR_s_                     =  "ATR is for setting TP and SL. May be replaced."; // Actually, never tuned by me properly.
extern   string   _purpose_is_               =  "ATR_Multiply sets perception, for ex ample:";
extern   string   _stop_management           =  "if Multiply=0.9, then reaction is 0.9 pips per 0.0001 ATR";
extern double ATR_Period =14;
extern double ATR_Multiply = 0.9;         
extern double ATR_Reach  =0.0014;
extern  bool ATR_SL = false;
extern  bool ATR_TP = false;   

extern string Implemented_Indicators         = "Implemented plant-from indicators";
extern string Dont_earse                     = "Each may be found with Ctlr+F command";
extern string WARNING1                       = "NOTE: THE PARAMETHERS OF OPEN AND CLOSE ARE SUPPOSED TO";
extern string WARNING2                       = "BE DEFINED BY YOUR OWN, IT DEPENDS ON SELECTED STRATEGY.";
extern string WARNING3                       = "MAKE SURE THE SELECTED INDICATOR USES YOUR IDEAS PROPERLY!";
extern string The_List_Of                    = "Anyway, the indicators. Use your math abilities.";
extern   string  Two_??s_Cross               = "---- ---- ";
extern  bool  otkr_MA    =false;
extern  bool  zakr_MA    =false;
extern double MA1           =4;
extern double MA2           =67;
extern double Shift_ma      =1;  // I am too lazy to switch
extern double MA_sort_avoidit=0; //0 - Simple, 1 - Expotential, 2 - Smoothed, 3 - Linear Weighed
extern   string   Stochastic        =  " A little note here. You may need to change the code at inequalities";
extern  bool   otkr_Stoh   =false;
extern  bool   zakr_Stoh   =false;
extern double per_K=5;
extern double per_D=3;
extern double slow=3;
extern double zoneBUY=20;
extern double zoneSELL=80; //No, I couldn't fix the levels.
extern   string   Awesome          =  "But it is all right! B- of math skills must be enough for you.";
extern  bool   otkr_AO   =false;
extern  bool   zakr_AO   =false;
extern   string   Fractals         =  "If you had C- math marks, then ask somebody experienced to help you. You will also save your time.";
extern  bool   otkr_Fractals   =false; 
extern  bool   zakr_Fractals   =false;
extern   string   Accelerator                =  "---- ---- ";
extern  bool   otkr_AC   =false;
extern  bool   zakr_AC   =false;
extern   string   Demarker                   =  "---- ---- ";
extern  bool   otkr_Dema   =false;
extern  bool   zakr_Dema   =false;
extern double DeMa_period=14;
extern double niz_ur=0.3;
extern double verx_ur=0.7;
extern   string   CCI                        =  "---- ---- ";
extern  bool   otkr_CCI   =false;
extern  bool   zakr_CCI   =false;
extern double CCI_period=14;
extern double CCI_Level=100;    // What, if we want 95?
extern   string   RSI                        =  "RSI levels are better to be tuned separately. Just for sure.";
extern  bool   otkr_RSI   =false;
extern  bool   zakr_RSI   =false;
extern double RSI_Period =14;
extern double RSI_High=70;
extern double RSI_Low=30;
extern   string   MACD                       =  "MACD Signal Line";
extern  bool   otkr_MACD   =false;
extern  bool   zakr_MACD   =false;
extern double MACD_Fast=9;
extern double MACD_Slow=26;   // MACD uses SIGNAL line
extern double MACD_Signal=14; // because you have 2 MA Cross system
extern string     OsMA                       = "OsMA - like a second MACD S L";
extern  bool   otkr_OsMA   =false;
extern  bool   zakr_OsMA   =false;
extern double OsMA_Fast=9;
extern double OsMA_Slow=26;   // SIGNAL line (Well, you can also try Zignal.com as a platform - expenseful lux look is a sort of guaranty. Yes, I've made an ad here - Anon MMMMMMMMMI)
extern double OsMA_Signal=14; // because you have 2 MA Cross system
extern   string   WPR                        =  "Williams Percent Range";
extern  bool   otkr_WPR   = false;
extern  bool   zakr_WPR   = false;
extern double WPR_Period = 14;
extern double WPR_Shift = 0; 
extern   string   MoneyFlow_aka_MFI          =  "---";
extern  bool   otkr_MFI   = false;
extern  bool   zakr_MFI   = false;
extern double MFI_Period=14;
extern double MFI_High  =70;
extern double MFI_Low   =30;
extern   string   ADX                        =  "ADX Main Line, ?????? - 30 ? 70"; 
extern  bool   otkr_ADX   = false;
extern  bool   zakr_ADX   = false;
extern double ADX_Period=14;
extern string SAR                            =  "---";
extern  bool otkr_SAR = false;
extern  bool zakr_SAR = false;
extern double SAR_Step =0.02;
extern double SAR_MaxStep =0.2;

extern string Custom_Indicators              =  "Custom Indicators. ";  
extern string Custom_Indicator1              =  "Each is already defined.";

extern  bool  otkr_Custom_1 = false;
extern  bool  zakr_Custom_1 = false;
extern double example1      = 0;  //Example doubles.
extern double example2      = 0;

extern string Custom_Indicator2              =  "This one also";
extern  bool  otkr_Custom_2 = false;
extern  bool  zakr_Custom_2 = false;

extern string Custom_Indicator3              =  "----";
extern  bool  otkr_Custom_3 = false;
extern  bool  zakr_Custom_3 = false;

extern string Custom_Indicator4              =  "Sometimes you need to edit this thing by own,";
extern  bool  otkr_Custom_4 = false;
extern  bool  zakr_Custom_4 = false;

bool Work=true;                    
bool OrderSal;
string Symb;                       // Pair (ex. EURUSD) Name

int start()

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

   int  
   Total,                           // Orders in window. 
   Tip=-1,                          // Type of order
   Ticket;                          // Number of order

   double
   Lot,                             // Size of selected order
   Lts,                             // Size of opening order
   lot,
   Min_Lot,                         // Min. Size
   Step,                            // Min. Step (if modifying)
   Free,                            // Free money on account
   One_Lot,                         // Cost of 1 lot
   Price,                           // Cost of selected order
   SL,                              // SL of selected
   TP,                              // TP of selected

   MA_By,MA_Sell,Stoh_By,Stoh_Sell,AO_By,AO_Sell,Fractals_By,Fractals_Sell,AC_By,AC_Sell,Cls_MA_Sell,Cls_MA_By,Cls_Stoh_Sell,Cls_Stoh_By,
   Cls_AO_Sell,Cls_AO_By,Cls_Fractals_By,Cls_Fractals_Sell,Cls_AC_Sell,Cls_AC_By,Dema_By,Cls_Dema_Sell,Dema_Sell,Cls_Dema_By,CCI_By,CCI_Sell,Cls_WPR_Sell,Cls_CCI_By,Cls_CCI_Sell,
   RSI_By,RSI_Sell,Cls_RSI_Sell,Cls_RSI_By,MFI_By,MFI_Sell,Cls_MFI_Sell,Cls_MFI_By,WPR_By,WPR_Sell,Cls_WRP_Sell,Cls_WPR_By,  //???????????.
   MACD_By,MACD_Sell,Cls_MACD_Sell,Cls_MACD_By,OsMA_By,OsMA_Sell,Cls_OsMA_Sell,Cls_OsMA_By,ADX_By,ADX_Sell,Cls_ADX_Sell,Cls_ADX_By,SAR_By,SAR_Sell,Cls_SAR_Sell,Cls_SAR_By,
   Custom_1__By, Custom_1__Sell, Cls_Custom_1__By, Cls_Custom_1__Sell,Custom_2__By, Custom_2__Sell, Cls_Custom_2__By, Cls_Custom_2__Sell,Custom_3__By, Custom_3__Sell, Cls_Custom_3__By, Cls_Custom_3__Sell,Custom_4__By, Custom_4__Sell, Cls_Custom_4__By, Cls_Custom_4__Sell;//,

 bool
   Modific=true,
   Ans  =false,                     // Server's ansver (after modifying or closing)
   Cls_B=false,                     // Buy  Close criteria bool
   Cls_S=false,                     // Sell Close criteria bool
   Opn_B=false,                     // Buy  Open  criteria bool
   Opn_S=false,                     // Sell Open  criteria bool
   S_Bar=false;                     // Sleep Bars (aka Pause-600) bool.

int time0 = 0;                                                  // Necessary booleans sorting...
for(int t0 = OrdersHistoryTotal();t0>=0;t0--)                   // Search among closed orders
if(OrderSelect(t0, SELECT_BY_POS,MODE_HISTORY )==true)          // A-a-and it we found it...
    {
      if( iTime(NULL,0,1)-OrderOpenTime() < 600 && SleepBars==true ) //We're pausing. This string has the terms of pause.
                 {                              //                   // BTW, time is in seconds by standard.    
                    S_Bar=true;                                
                    Alert("Gimme a break...");                                           
                 }

          }

   if(Bars<15)                       // Insufficient quantity of bars
     {
      Alert("Bars<15, need more bars of history.");
      return;                                   // Exit from start()
     }

   if(Work==false)                              // Critical error
     {
      Alert("Critical Error occured.");
      return;                                   // Exit from start()
     }

Symb=Symbol();                                
   Total=0;                                      
   for(int i=1; i<=OrdersTotal(); i++)           
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true)  
        {                                        
         if (OrderSymbol()!=Symb)continue;      
         if (OrderType()>1)                     
           {
            Alert("Unusual order detected. Pause."); // Well, I'll leave it here since first author made it...
            return;                             
           }
         Total++;                               //
         if (Total>3)                           // Only one order on one pair. Made for brokers and their trust.
           {
            Alert("Too much orders. Pause."); // Normally ONE, but I am not against.
            return;                             // exit from start()
           }
         Ticket=OrderTicket();                  // 
         Tip   =OrderType();                    // It's info about lots...
         Price =OrderOpenPrice();               // 
         SL    =OrderStopLoss();                // 
         TP    =OrderTakeProfit();              // 
         Lot   =OrderLots();                    // Lots in the order
        }
     }  

if(ATR_SL==true && iATR(NULL,0,ATR_Period,1)>=ATR_Reach)
StopLoss=iATR(NULL,0,ATR_Period,0)*ATR_Multiply/0.0001;    //Yes, not the "price", but the "pips".          

if(ATR_TP==true && iATR(NULL,0,ATR_Period,1)>=ATR_Reach)
TakeProfit=iATR(NULL,0,ATR_Period,0)*ATR_Multiply/0.0001;

 if(otkr_MA==true)
              {
               if( iMA(NULL,0,MA1,0,MA_sort_avoidit,PRICE_CLOSE,Shift_ma)>iMA(NULL,0,MA2,0,MODE_SMA,PRICE_CLOSE,Shift_ma))
                 {
                  MA_By =true;// Normally SMA, but here is my edit.
                 } 
               if(iMA(NULL,0,MA1,0,MA_sort_avoidit,PRICE_CLOSE,Shift_ma)<iMA(NULL,0,MA2,0,MODE_SMA,PRICE_CLOSE,Shift_ma))               
                 {
                  MA_Sell =true;
                 } 
               }

 if(zakr_MA==true)
              {
               if(iMA(NULL,0,MA1,0,MA_sort_avoidit,PRICE_CLOSE,Shift_ma)>iMA(NULL,0,MA2,0,MODE_SMA,PRICE_CLOSE,Shift_ma))
                 {
                  Cls_MA_Sell=true;
                 } 
               if(iMA(NULL,0,MA1,0,MA_sort_avoidit,PRICE_CLOSE,Shift_ma)<iMA(NULL,0,MA2,0,MODE_SMA,PRICE_CLOSE,Shift_ma))
                 {
                  Cls_MA_By=true;
                 } 
               }             

 if(otkr_Stoh==true)
          {
               if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)>iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
                  && iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)<zoneBUY)
                   {
                   Stoh_By =true;
                   }
              if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)<iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
                 && iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)>zoneSELL)
                  {
                  Stoh_Sell =true;
                  } 
               }      

 if(zakr_Stoh==true)
          {
              if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)>iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
                 && iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)<zoneBUY)
                   {
                   Cls_Stoh_Sell=true;
                   }
             if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)<iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
                 && iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)>zoneSELL)
                  {
                  Cls_Stoh_By=true;
                  } 
               }                

  if(otkr_AO==true)
        {
              if(iAO(NULL,0,0)+iAO(NULL,0,1)>iAO(NULL,0,2)+iAO(NULL,0,3))
                  {
                   AO_By =true;
                  }    
              if(iAO(NULL,0,0)+iAO(NULL,0,1)<iAO(NULL,0,2)+iAO(NULL,0,3))
                  {
                   AO_Sell =true;
                  } 
               } 

if(zakr_AO==true)
        {
           if(iAO(NULL,0,0)+iAO(NULL,0,1)>iAO(NULL,0,2)+iAO(NULL,0,3))
                  {
                   Cls_AO_Sell=true;
                  }    
            if(iAO(NULL,0,0)+iAO(NULL,0,1)<iAO(NULL,0,2)+iAO(NULL,0,3))
                  {
                   Cls_AO_By=true;
                  } 
               }

  if(otkr_Fractals==true)
        {
              if(iFractals(NULL,0,1,0)<PRICE_CLOSE)
                  {                    
                   Fractals_By =true;
                  }    
              if(iFractals(NULL,0,2,0)>PRICE_CLOSE)
                  {
                   Fractals_Sell =true;
                  } 
               } 

if(zakr_Fractals==true)
        {
           if (iFractals(NULL,0,1,0)<PRICE_CLOSE)
                  {             
                   Cls_Fractals_Sell=true;
                  }    
            if(iFractals(NULL,0,2,0)>PRICE_CLOSE)
                  {
                   Cls_Fractals_By=true;
                  } 
               }                

   if(otkr_AC==true)
               {          
               if (iAC(NULL,0,0)>=0 && iAC(NULL,0,0)>iAC(NULL,0,1) && iAC(NULL,0,1)>iAC(NULL,0,2) || iAC(NULL,0,0)<=0 && iAC(NULL,0,0)>iAC(NULL,0,1) && iAC(NULL,0,1)>iAC(NULL,0,2) && iAC(NULL,0,2)>iAC(NULL,0,3)) 
                  {
                   AC_By =true;
                  }    
               if (iAC(NULL,0,0)<=0 && iAC(NULL,0,0)<iAC(NULL,0,1) && iAC(NULL,0,1)<iAC(NULL,0,2) || iAC(NULL,0,0)>=0 && iAC(NULL,0,0)<iAC(NULL,0,1) && iAC(NULL,0,1)<iAC(NULL,0,2) && iAC(NULL,0,2)<iAC(NULL,0,3)) 
                  {
                   AC_Sell =true;
                  }  
                }   

  if(zakr_AC==true)
              {          
              if (iAC(NULL,0,0)>=0 && iAC(NULL,0,0)>iAC(NULL,0,1) && iAC(NULL,0,1)>iAC(NULL,0,2) || iAC(NULL,0,0)<=0 && iAC(NULL,0,0)>iAC(NULL,0,1) && iAC(NULL,0,1)>iAC(NULL,0,2) && iAC(NULL,0,2)>iAC(NULL,0,3)) 
                  {
                    Cls_AC_Sell=true;
                  }    
             if (iAC(NULL,0,0)<=0 && iAC(NULL,0,0)<iAC(NULL,0,1) && iAC(NULL,0,1)<iAC(NULL,0,2) || iAC(NULL,0,0)>=0 && iAC(NULL,0,0)<iAC(NULL,0,1) && iAC(NULL,0,1)<iAC(NULL,0,2) && iAC(NULL,0,2)<iAC(NULL,0,3)) 
                  {
                   Cls_AC_By=true;
                  }  
               }   

 if(otkr_Dema==true) 
             {      
              if (iDeMarker(NULL, 0, DeMa_period, 1)<niz_ur) 
                  {
                   Dema_By =true;
                  }    
             if (iDeMarker(NULL, 0, DeMa_period, 1)>verx_ur) 
                  {
                   Dema_Sell =true;
                  }  
               }

 if(zakr_Dema==true) 
              {      
            if (iDeMarker(NULL, 0, DeMa_period, 1)<niz_ur) 
                  {
                   Cls_Dema_Sell=true;
                  }    
            if (iDeMarker(NULL, 0, DeMa_period, 1)>verx_ur) 
                  {
                   Cls_Dema_By=true;
                  }  
               }     

 if(otkr_CCI==true)
             {      
            if (iCCI(NULL, 0,CCI_period,PRICE_MEDIAN,0)>iCCI(NULL, 0, CCI_period,PRICE_MEDIAN,1) && iCCI(NULL, 0, CCI_period,PRICE_MEDIAN,1)<iCCI(NULL, 0, CCI_period,PRICE_MEDIAN,2)) // ? ??? ??? ??????????? ???????
                  {
                   CCI_By =true;
                  }    
            if (iCCI(NULL, 0,CCI_period,PRICE_MEDIAN,0)<iCCI(NULL, 0, CCI_period,PRICE_MEDIAN,1) && iCCI(NULL, 0, CCI_period,PRICE_MEDIAN,1)>iCCI(NULL, 0, CCI_period,PRICE_MEDIAN,2)) 
                  {
                   CCI_Sell =true; 
                  } 
               }                   

   if(zakr_CCI==true)
               {      
           if (iCCI(NULL, 0,CCI_period,PRICE_MEDIAN, 1)<-CCI_Level) // ???? ?? ?????.
                  {
                   Cls_CCI_Sell=true;
                  }    
           if (iCCI(NULL, 0,CCI_period,PRICE_MEDIAN, 1)>CCI_Level) // CCI ???????????? ??? ?????????? ???????.\????????. ??? ?????????.
                  {
                   Cls_CCI_By=true;
                  } 
               } 

    if(otkr_RSI==true)
              {
            if (iRSI(NULL,0,RSI_Period,1,0)>RSI_High)
                  {
                   RSI_By=true;
                  }    
            if (iRSI(NULL,0,RSI_Period,1,0)<RSI_Low)
                  {
                   RSI_Sell=true;
                  } 
               }                   

   if(zakr_RSI==true)
              {
           if (iRSI(NULL,0,RSI_Period,1,0)>RSI_High)
                  {
                   Cls_RSI_Sell=true;
                  }    
           if (iRSI(NULL,0,RSI_Period,1,0)<RSI_Low)
                  {
                   Cls_RSI_By=true;
                  } 
               }            

    if(otkr_MFI==true)
              {
            if (iMFI(NULL,0,MFI_Period,0)>MFI_High)
                  {
                   MFI_By=true;
                  }    
            if (iMFI(NULL,0,MFI_Period,0)<MFI_Low)
    

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

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

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

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

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

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

Стоимость полного кода
2 283,70₽ ≈ $27.91