exp_icustom_v12_martingale_os_v1.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «exp_icustom_v12_martingale_os_v1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный код представляет собой торгового советника (эксперта) для платформы MetaTrader 4 на языке MQL4. Советник использует пользовательские индикаторы (через iCustom) для формирования сигналов на покупку и продажу, поддерживает несколько режимов анализа сигналов и фильтрацию по скользящим средним (MA2). Реализует открытие и закрытие рыночных ордеров, стоп-ордеров и лимитных ордеров, а также управление позициями через трейлинг-стопы, безубыток, виртуальные стопы и проверку прибыли/стоп-лосса.
Настройки программы
| Настройка | Описание |
|---|---|
| ??????? ????????? ????????: 0 - ????????? ??????? ?? ??????? ???????? ??????? ??? ??????? ?????? ? ? (TimeFrame) | Таймфрейм — Таймфрейм для анализа сигналов; 0 означает текущий период графика. |
| ????????? ?????? buy (Buy) | Разрешить покупку — Включает/выключает возможность открытия покупочных позиций. |
| ????????? ?????? sell (Sell) | Разрешить продажу — Включает/выключает возможность открытия продажных позиций. |
| ??????????? ??????, ????? ???? ????? ????? ??????? ?????? ???? ?????? ??? ?????? ?? ?????? ????????? (Order_Comment) | Комментарий ордера — Текстовый комментарий, добавляемый к ордерам; к нему автоматически добавляются суффиксы BUY/SELL и тип ордера. |
| s0 | Разделитель режима открытия — Текстовый разделитель для группы настроек режима открытия позиций. |
| 1-????????? ?????? ???????, ???????? ?? ????????, 2-? ?????????? ??????? ? ?????????? ?????, ??????? (_O_Mode) | Режим сигнала открытия — Режим формирования сигнала на открытие: 1 — по стрелкам индикатора, 2 — пересечение буферов, 3 — по уровню линии, 4 — по взаимному расположению линий, 5 — по направлению буфера. |
| ??? Custom ?????????? (_O_iCustomName) | Имя индикатора открытия — Имя пользовательского индикатора для получения сигналов открытия. |
| ?????? ?????????? ????? ??????????? "/". ??? ?????????? ???? bool ?????? ???????? true ???????????? (_O_iCustomParam) | Параметры индикатора открытия — Строка параметров индикатора, разделённых символом '/'. |
| ?????? ?????? ?? ????????? ?? ??????? (_O_M1_iBuyBufIndex) | Индекс буфера покупки M1 — Индекс буфера со стрелками покупки для режима 1. |
| ?????? ?????? ?? ????????? ?? ??????? (_O_M1_iSellBufIndex) | Индекс буфера продажи M1 — Индекс буфера со стрелками продажи для режима 1. |
| ?????? ?????? ??????? ????? (_O_M2_iMainBufIndex) | Индекс главного буфера M2 — Индекс главного буфера для режима 2. |
| ?????? ?????? ?????????? ????? (_O_M2_iSignalBufIndex) | Индекс сигнального буфера M2 — Индекс сигнального буфера для режима 2. |
| ?????? ?????? ????? (_O_M3_iBufIndex) | Индекс буфера M3 — Индекс буфера линии для режима 3. |
| ??????? ??????? (??????????? ????? ?????) (_O_M3_BuyLevel) | Уровень покупки M3 — Уровень линии для сигнала на покупку в режиме 3. |
| ??????? ??????? (??????????? ?????? ????) (_O_M3_SellLevel) | Уровень продажи M3 — Уровень линии для сигнала на продажу в режиме 3. |
| ?????? ?????? ????? (_O_M4_iBufIndex) | Индекс буфера M4 — Индекс буфера для режима 4. |
| ?????? ?????? ????? ???????????? ??? ?????? ????? (_O_M5_iBuyBufIndex) | Индекс буфера покупки M5 — Индекс буфера покупки для режима 5. |
| ?????? ?????? ????? ???????????? ??? ?????? ???? (_O_M5_iSellBufIndex) | Индекс буфера продажи M5 — Индекс буфера продажи для режима 5. |
| ????? ??????????. 1 - ?? ?????????????? ?????, 0 - ?? ????????????? ???? (?? ?????????????). ????? ? (_O_iShift) | Сдвиг сигнала открытия — Сдвиг номера бара для получения сигнала; 1 — текущий бар, 0 — предыдущий. |
| ????????? ????????????? ?????????????? ?????????? 1. ??? ????????? ?????????????? ?????????? ?????? (_O_Opt_1_Use) | Использовать доп. параметр 1 открытия — Включает использование дополнительного параметра 1 для индикатора открытия. |
| ?????? ?????????????? ?????????? 1 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_O_Opt_1_Index) | Индекс параметра 1 открытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 1. |
| ???????? ?????????????? ?????????? 1 (_O_Opt_1_Value) | Значение параметра 1 открытия — Значение дополнительного параметра 1. |
| ????????? ????????????? ?????????????? ?????????? 2 (_O_Opt_2_Use) | Использовать доп. параметр 2 открытия — Включает использование дополнительного параметра 2 для индикатора открытия. |
| ?????? ?????????????? ?????????? 2 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_O_Opt_2_Index) | Индекс параметра 2 открытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 2. |
| ???????? ?????????????? ?????????? 2 (_O_Opt_2_Value) | Значение параметра 2 открытия — Значение дополнительного параметра 2. |
| ????????? ????????????? ?????????????? ?????????? 3 (_O_Opt_3_Use) | Использовать доп. параметр 3 открытия — Включает использование дополнительного параметра 3 для индикатора открытия. |
| ?????? ?????????????? ?????????? 3 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_O_Opt_3_Index) | Индекс параметра 3 открытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 3. |
| ???????? ?????????????? ?????????? 3 (_O_Opt_3_Value) | Значение параметра 3 открытия — Значение дополнительного параметра 3. |
| ????????? ????????????? ?????????????? ?????????? 4 (_O_Opt_4_Use) | Использовать доп. параметр 4 открытия — Включает использование дополнительного параметра 4 для индикатора открытия. |
| ?????? ?????????????? ?????????? 4 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_O_Opt_4_Index) | Индекс параметра 4 открытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 4. |
| ???????? ?????????????? ?????????? 4 (_O_Opt_4_Value) | Значение параметра 4 открытия — Значение дополнительного параметра 4. |
| ????????? ????????????? ?????????????? ?????????? 5 (_O_Opt_5_Use) | Использовать доп. параметр 5 открытия — Включает использование дополнительного параметра 5 для индикатора открытия. |
| ?????? ?????????????? ?????????? 5 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_O_Opt_5_Index) | Индекс параметра 5 открытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 5. |
| ???????? ?????????????? ?????????? 5 (_O_Opt_5_Value) | Значение параметра 5 открытия — Значение дополнительного параметра 5. |
| ma2 | Разделитель MA2 — Текстовый разделитель для группы настроек фильтра скользящих средних. |
| ???????? ???????? ???? ?? (MA2_ON) | Включить MA2 фильтр — Включает/выключает фильтр скользящих средних для подтверждения сигналов. |
| ??? ?? ??????? ??????????? ????????? (MA2_Shift) | Сдвиг MA2 — Сдвиг индикатора скользящей средней. |
| ??????. ?????? ???????? - ?????? ??????? (MA2_Symbol) | Символ MA2 — Символ для расчёта скользящих средних; пустая строка означает текущий символ. |
| ?????????: 0 - ????????? ??????? ?? ??????? ???????? ??????? ??? ??????? ?????? ? ???????. ??? ????? (MA2_TimeFrame) | Таймфрейм MA2 — Таймфрейм для расчёта скользящих средних; 0 — текущий период. |
| ?????? ??????? ?? (MA2_FastMAPeriod) | Период быстрой MA2 — Период быстрой скользящей средней. |
| ????? ??????? ??: 0-SMA, 1-EMA, 2-SMMA, 3-LWMA (MA2_FastMAMethod) | Метод быстрой MA2 — Метод расчёта быстрой MA: 0-SMA, 1-EMA, 2-SMMA, 3-LWMA. |
| ???? ??????? ??: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted (MA2_FastMAPrice) | Цена быстрой MA2 — Тип цены для быстрой MA: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted. |
| ???????? ??????? ?? (MA2_FastMAShift) | Сдвиг быстрой MA2 — Горизонтальный сдвиг быстрой скользящей средней. |
| ?????? ????????? ?? (MA2_SlowMAPeriod) | Период медленной MA2 — Период медленной скользящей средней. |
| ????? ????????? ??: 0-SMA, 1-EMA, 2-SMMA, 3-LWMA (MA2_SlowMAMethod) | Метод медленной MA2 — Метод расчёта медленной MA: 0-SMA, 1-EMA, 2-SMMA, 3-LWMA. |
| ???? ????????? ??: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted (MA2_SlowMAPrice) | Цена медленной MA2 — Тип цены для медленной MA: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted. |
| ???????? ????????? ?? (MA2_SlowMAShift) | Сдвиг медленной MA2 — Горизонтальный сдвиг медленной скользящей средней. |
| s1 | Разделитель режима закрытия — Текстовый разделитель для группы настроек режима закрытия позиций. |
| s2 | Разделитель режима сигнала закрытия — Текстовый разделитель для группы настроек режима сигнала закрытия. |
| 1-????????? ?????? ???????, ???????? ?? ????????, 2-? ?????????? ??????? ? ?????????? ?????, ??????? (_C_Mode) | Режим сигнала закрытия — Режим формирования сигнала на закрытие: 1 — по стрелкам, 2 — пересечение, 3 — по уровню, 4 — по взаимному расположению, 5 — по направлению буфера. |
| ?????????? ??? ????????? ? ?????????? ???????? (????? ? ??? ??????????). ??????? ?? ?????? ????????? (_C_UseOpenParam) | Использовать параметры открытия для закрытия — При true используются параметры индикатора открытия для закрытия; при false — собственные параметры _C_. |
| ??? Custom ?????????? (_C_iCustomName) | Имя индикатора закрытия — Имя пользовательского индикатора для получения сигналов закрытия. |
| ?????? ?????????? ????? ??????????? "/". ??? ?????????? ???? bool ?????? ???????? true ???????????? (_C_iCustomParam) | Параметры индикатора закрытия — Строка параметров индикатора закрытия, разделённых символом '/'. |
| ?????? ?????? ?? ????????? ?? ??????? (_C_M1_iCloseBuyBufIndex) | Индекс буфера закрытия покупки M1 — Индекс буфера закрытия покупки для режима 1. |
| ?????? ?????? ?? ????????? ?? ??????? (_C_M1_iCloseSellBufIndex) | Индекс буфера закрытия продажи M1 — Индекс буфера закрытия продажи для режима 1. |
| ?????? ?????? ??????? ????? (_C_M2_iMainBufIndex) | Индекс главного буфера закрытия M2 — Индекс главного буфера для режима закрытия 2. |
| ?????? ?????? ?????????? ????? (_C_M2_iSignalBufIndex) | Индекс сигнального буфера закрытия M2 — Индекс сигнального буфера для режима закрытия 2. |
| ?????? ?????? ????? (_C_M3_iBufIndex) | Индекс буфера закрытия M3 — Индекс буфера линии для режима закрытия 3. |
| ??????? ???????? ??????? (??????????? ?????? ????) (_C_M3_CloseBuyLevel) | Уровень закрытия покупки M3 — Уровень линии для сигнала на закрытие покупки в режиме 3. |
| ??????? ???????? ??????? (??????????? ????? ?????) (_C_M3_CloseSellLevel) | Уровень закрытия продажи M3 — Уровень линии для сигнала на закрытие продажи в режиме 3. |
| ?????? ?????? ????? (_C_M4_iBufIndex) | Индекс буфера закрытия M4 — Индекс буфера для режима закрытия 4. |
| ?????? ?????? ????? ???????????? ??? ?????? ????? (_C_M5_iBuyBufIndex) | Индекс буфера закрытия покупки M5 — Индекс буфера закрытия покупки для режима 5. |
| ?????? ?????? ????? ???????????? ??? ?????? ???? (_C_M5_iSellBufIndex) | Индекс буфера закрытия продажи M5 — Индекс буфера закрытия продажи для режима 5. |
| ????? ??????????. 1 - ?? ?????????????? ?????, 0 - ?? ????????????? ???? (?? ?????????????). ????? ? (_C_iShift) | Сдвиг сигнала закрытия — Сдвиг номера бара для получения сигнала закрытия. |
| ????????? ????????????? ?????????????? ?????????? 1. ??? ????????? ?????????????? ?????????? ?????? (_C_Opt_1_Use) | Использовать доп. параметр 1 закрытия — Включает использование дополнительного параметра 1 для индикатора закрытия. |
| ?????? ?????????????? ?????????? 1 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_C_Opt_1_Index) | Индекс параметра 1 закрытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 1 закрытия. |
| ???????? ?????????????? ?????????? 1 (_C_Opt_1_Value) | Значение параметра 1 закрытия — Значение дополнительного параметра 1 закрытия. |
| ????????? ????????????? ?????????????? ?????????? 2 (_C_Opt_2_Use) | Использовать доп. параметр 2 закрытия — Включает использование дополнительного параметра 2 для индикатора закрытия. |
| ?????? ?????????????? ?????????? 2 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_C_Opt_2_Index) | Индекс параметра 2 закрытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 2 закрытия. |
| ???????? ?????????????? ?????????? 2 (_C_Opt_2_Value) | Значение параметра 2 закрытия — Значение дополнительного параметра 2 закрытия. |
| ????????? ????????????? ?????????????? ?????????? 3 (_C_Opt_3_Use) | Использовать доп. параметр 3 закрытия — Включает использование дополнительного параметра 3 для индикатора закрытия. |
| ?????? ?????????????? ?????????? 3 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_C_Opt_3_Index) | Индекс параметра 3 закрытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 3 закрытия. |
| ???????? ?????????????? ?????????? 3 (_C_Opt_3_Value) | Значение параметра 3 закрытия — Значение дополнительного параметра 3 закрытия. |
| ????????? ????????????? ?????????????? ?????????? 4 (_C_Opt_4_Use) | Использовать доп. параметр 4 закрытия — Включает использование дополнительного параметра 4 для индикатора закрытия. |
| ?????? ?????????????? ?????????? 4 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_C_Opt_4_Index) | Индекс параметра 4 закрытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 4 закрытия. |
| ???????? ?????????????? ?????????? 4 (_C_Opt_4_Value) | Значение параметра 4 закрытия — Значение дополнительного параметра 4 закрытия. |
| ????????? ????????????? ?????????????? ?????????? 5 (_C_Opt_5_Use) | Использовать доп. параметр 5 закрытия — Включает использование дополнительного параметра 5 для индикатора закрытия. |
| ?????? ?????????????? ?????????? 5 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? (_C_Opt_5_Index) | Индекс параметра 5 закрытия — Индекс параметра в массиве iCustomParam для дополнительного параметра 5 закрытия. |
| ???????? ?????????????? ?????????? 5 (_C_Opt_5_Value) | Значение параметра 5 закрытия — Значение дополнительного параметра 5 закрытия. |
| s22 | Разделитель проверки прибыли — Текстовый разделитель для группы настроек проверки прибыли и стоп-лосса. |
| ????????? ??????? ?????? ??? ????????, ?????? ? ??????, ??? MinimalProfit ???????? ?? ??????????? (CheckProfit) | Проверка прибыли при закрытии — Проверять минимальную прибыль перед закрытием позиции. |
| ??. ?????????? CheckProfit (MinimalProfit) | Минимальная прибыль — Минимальная прибыль в пунктах для подтверждения закрытия при включённом CheckProfit. |
| ???? ???????? ?????? ????????? ??????? ?? ?????? ??? MinimalSLProfit, ????? ?? ??????????? (CheckSL) | Проверка стоп-лосса при закрытии — Проверять минимальный размер стоп-лосса перед закрытием позиции. |
| ??. ?????????? CheckSL (MinimalSLProfit) | Минимальная прибыль по стоп-лоссу — Минимальная прибыль стоп-лосса в пунктах для подтверждения закрытия при включённом CheckSL. |
| s3 | Разделитель управления размером — Текстовый разделитель для группы настроек управления размером позиции. |
| ????? ??: 0-Lots, 1-????? (Risk) ?? ????????? ???????, 2-????? (Risk) ?? ????????? ??????? ????????? (MMMethod) | Метод управления размером — Метод расчёта размера лота: 0 — фиксированные лоты, 1 — риск от баланса, 2 — риск от средств с шагом, 3 — мартингейл. |
| ??????????? ?????????? ???? ??? MMMethod = 3 (KotMMMetod3) | Коэффициент мартингейла — Множитель увеличения лота при убыточной сделке для метода 3. |
| ?????????? ????? ??? MMMethod=0 (Lots) | Размер лота — Фиксированный размер лота при MMMethod=0. |
| ????. ???????? ?? ??????? ??? FixedLot=false (Risk) | Риск — Процент риска от средств для расчёта размера лота. |
| ??? ??????? ???????????? ??? ??????? ??????? ????. 1 - Balance, 2 - Equity, 3 - FreeMargin (MeansType) | Тип средств — Базовый тип средств для расчёта: 1 — Balance, 2 — Equity, 3 — FreeMargin. |
| ??? ???????. ???????????? ??? MMMethod=2 (MeansStep) | Шаг средств — Минимальный шаг средств для расчёта лота при MMMethod=2. |
| ?????????? ?????? ????? ??????? ? ??????? ???? (LotsDigits) | Знаков после запятой лота — Количество знаков после запятой для нормализации размера лота. |
| s4 | Разделитель типа ордера — Текстовый разделитель для группы настроек типа ордера. |
| ??? ???????: 0 - ????????, 1 - ????, 2 - ?????. ??? ????? 1 ? 2 ??. ?????????? (OrdType) | Тип ордера — Тип ордера: 0 — рыночный, 1 — стоп, 2 — лимитный. |
| ?????????? ?????????? ?? ??????????? ???? (Slippage) | Проскальзывание — Максимальное допустимое проскальзывание в пунктах. |
| ???????? (StopLoss) | Стоп-лосс — Размер стоп-лосса в пунктах или процентах. |
| ?????????? (TakeProfit) | Тейк-профит — Размер тейк-профита в пунктах или процентах. |
| ???./????. ???????????? ???? ????? (VirtualStops) | Виртуальные стопы — Включает автоматическое закрытие позиций при достижении виртуального стоп-уровня. |
| ???????? ???????????? ???? ????? ? ??????? (VirtualSL) | Виртуальный стоп-лосс — Уровень виртуального стоп-лосса в пунктах от цены открытия. |
| ??????? ????? ???????? ?????? ? ?????????? ????? ???????? ?????????? (SleepBars) | Баров ожидания — Минимальное количество баров между последовательными сделками по одному сигналу. |
Поиск по коду файла
/*
????????? ??????????? "???????????" ???? ?????????????? ?????????????? ???????????.
??? ????? ? ????? experts/includes ?????? ?????????? ????? inc_CT1TF.mqh ? inc_CT2TF.mqh.
??????? ???????? ?? ?????? ?? ????????, ??? ???????? ?????????. ?? ???????? ?????????
???? ?????? ?? ????? ????, ? ?????????????? ?? ???? ?????. ???????? ???????????
??????????? ??????. ???????? ????????? ??? ?? ?????? ?????? ?? ????? ????, ?? ??????,
?? ?????? ???????? ????? ???? ??????. ?????????????? ???? ?????? ?? ???? ?????, ?? ???????
???????? ?????????? ???? ??????.
????????? ????????????? ??????????? ?????????? ? iOCT1 ? iOCT2.
???????? ????????? ?????? ???????:
==== ????????? ????????????? ???????? (?????) - 1 ====
iOCT1_ON - ????? ?????????/?????????? ????????????? ??????????
iOCT1_Symb - ??????. ?????? ???????? - ?????? ???????
iOCT1_TimeFrame - ?????????. 0 - ????????? ???????.
iOCT1_Invert - ????????? ???????? (???????? ??? ? ??? ???????)
iOCT1_CustomName - ??? ????????????????? ??????????
iOCT1_CustomParam - ?????? ?????????? ????? ??????????? "/". ??? ?????????? ?????????? ???????? true ???????????? 1, ?????? false - 0. ???? ? ?????????? ?????????? ???? ????????? ??????????, ??????? ???????? ?? ?????!!!
iOCT1_ModeHelp - ????????? ?? ?????????? ??? ????????? iOCT1_Mode
iOCT1_Mode - 1 - ????????? ?????? ???????, ???????????? ?? ??????????? ????????? ??????? (??????? ??? ?????????, ????? ?????? ????????? ???????? ? ???????),
2 - ? ?????????? ??????? ? ?????????? ?????, ???????????? ?? ????????? ????? ????? ???????????? ??????,
3 - ???????????? ???? ????? ? ?? ????????? ???????????? ?????? (???? ?????? - ???, ???? ?????? - ????),
4 - ??????
5 - ?????
6 - ????? ????? ????? ????
iOCT1_M1_BuyBufIndex - ?????? ?????? ?? ????????? ?? ???????
iOCT1_M1_SellBufIndex - ?????? ?????? ?? ????????? ?? ???????
iOCT1_M2_MainBufIndex - ?????? ?????? ??????? ?????
iOCT1_M2_SignalBufIndex - ?????? ?????? ?????????? ?????
iOCT1_M3_BufIndex - ?????? ?????? ?????
iOCT1_M3_BuyLevel - ??????? ??????? (???? ?????? - ????????????? ???)
iOCT1_M3_SellLevel - ??????? ??????? (???? ?????? - ????????????? ????)
iOCT1_M4_BufIndex - ?????? ?????? ?????
iOCT1_M5_BuyBufIndex - ?????? ?????? ????? ???????????? ??? ?????? ?????
iOCT1_M5_SellBufIndex - ?????? ?????? ????? ???????????? ??? ?????? ????
iOCT1_Shift - ????? ??????????. 1 - ?? ?????????????? ?????, 0 - ?? ????????????? ???? (?? ?????????????). ????? ????? ???? ?????? ???????? 2,3,4...
iOCT1_Opt_1_Use - ????????? ????????????? ?????????????? ?????????? 1. ??? ????????? ?????????????? ?????????? ?????? ???????? ?? ?????? iCustomParam, ????????????? ?????????? Opt_X_Index ????? ?????????????? ???????? ?????????? Opt_X_Value
iOCT1_Opt_1_Index - ?????? ?????????????? ?????????? 1 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
iOCT1_Opt_1_Value - ???????? ?????????????? ?????????? 1
iOCT1_Opt_2_Use - ????????? ????????????? ?????????????? ?????????? 2
iOCT1_Opt_2_Index - ?????? ?????????????? ?????????? 2 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
iOCT1_Opt_2_Value - ???????? ?????????????? ?????????? 2
iOCT1_Opt_3_Use - ????????? ????????????? ?????????????? ?????????? 3
iOCT1_Opt_3_Index - ?????? ?????????????? ?????????? 3 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
iOCT1_Opt_3_Value - ???????? ?????????????? ?????????? 3
iOCT1_Opt_4_Use - ????????? ????????????? ?????????????? ?????????? 4
iOCT1_Opt_4_Index - ?????? ?????????????? ?????????? 4 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
iOCT1_Opt_4_Value - ???????? ?????????????? ?????????? 4
iOCT1_Opt_5_Use - ????????? ????????????? ?????????????? ?????????? 5
iOCT1_Opt_5_Index - ?????? ?????????????? ?????????? 5 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
iOCT1_Opt_5_Value - ???????? ?????????????? ?????????? 5
* * *
? ???????? ???????? ???????? ???? ??. ???? ??? ??????? ????????? ?????? 1 ??? ????? ????.
?????????:
==== ??? ?? ====
MA2_ON - ????????? ???????? ???? ??
MA2_Shift - ??? ?? ??????? ??????????? ?????????
MA2_Symbol - ??????. ?????? ???????? - ?????? ???????
MA2_TimeFrame - ?????????: 0 - ????????? ??????? ?? ??????? ???????? ??????? ??? ??????? ?????? ? ???????. ??? ?????????? ???????? 1,5,15,30,60,240,1440...
MA2_FastMAPeriod - ?????? ??????? ??
MA2_FastMAMethod - ????? ??????? ??: 0-SMA, 1-EMA, 2-SMMA, 3-LWMA
MA2_FastMAPrice - ???? ??????? ??: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
MA2_FastMAShift - ???????? ??????? ??
MA2_SlowMAPeriod - ?????? ????????? ??
MA2_SlowMAMethod - ????? ????????? ??: 0-SMA, 1-EMA, 2-SMMA, 3-LWMA
MA2_SlowMAPrice - ???? ????????? ??: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
MA2_SlowMAShift - ???????? ????????? ??
*/
extern int TimeFrame = 0; // ??????? ????????? ????????: 0 - ????????? ??????? ?? ??????? ???????? ??????? ??? ??????? ?????? ? ???????. ??? ?????????? ???????? 1,5,15,30,60,240,1440...
extern bool Buy = true; // ????????? ?????? buy
extern bool Sell = true; // ????????? ?????? sell
extern string Order_Comment = ""; // ??????????? ??????, ????? ???? ????? ????? ??????? ?????? ???? ?????? ??? ?????? ?? ?????? ?????????????
extern string s0 = "==== ????????? ??? ???????? (Mode: 1 - ???????, 2 - ??????? ? ??????????, 3 - ????? ? ??????, 4 - ?????????, 5 - ????? ?????) ====";
extern int _O_Mode = 1; // 1-????????? ?????? ???????, ???????? ?? ????????, 2-? ?????????? ??????? ? ?????????? ?????, ???????? ??? ??????????? ?????, 3-???????????? ???? ????? ? ?? ??????????? ? ????????, 4-?????????, 5-????? ?????
extern string _O_iCustomName = "??????? ??? ??????????"; // ??? Custom ??????????
extern string _O_iCustomParam = "??????? ?????? ?????????? ????? ??????????? /"; // ?????? ?????????? ????? ??????????? "/". ??? ?????????? ???? bool ?????? ???????? true ???????????? 1, ?????? false - 0. ???? ? ?????????? ?????????? ???? ????????? ??????????, ??????? ???????? ?? ?????!!!
extern int _O_M1_iBuyBufIndex = 0; // ?????? ?????? ?? ????????? ?? ???????
extern int _O_M1_iSellBufIndex = 1; // ?????? ?????? ?? ????????? ?? ???????
extern int _O_M2_iMainBufIndex = 0; // ?????? ?????? ??????? ?????
extern int _O_M2_iSignalBufIndex = 1; // ?????? ?????? ?????????? ?????
extern int _O_M3_iBufIndex = 0; // ?????? ?????? ?????
extern double _O_M3_BuyLevel = 20; // ??????? ??????? (??????????? ????? ?????)
extern double _O_M3_SellLevel = 80; // ??????? ??????? (??????????? ?????? ????)
extern int _O_M4_iBufIndex = 0; // ?????? ?????? ?????
extern int _O_M5_iBuyBufIndex = 0; // ?????? ?????? ????? ???????????? ??? ?????? ?????
extern int _O_M5_iSellBufIndex = 1; // ?????? ?????? ????? ???????????? ??? ?????? ????
extern int _O_iShift = 1; // ????? ??????????. 1 - ?? ?????????????? ?????, 0 - ?? ????????????? ???? (?? ?????????????). ????? ????? ???? ?????? ???????? 2,3,4...
extern bool _O_Opt_1_Use = false; // ????????? ????????????? ?????????????? ?????????? 1. ??? ????????? ?????????????? ?????????? ?????? ???????? ?? ?????? iCustomParam, ????????????? ?????????? Opt_X_Index ????? ?????????????? ???????? ?????????? Opt_X_Value
extern int _O_Opt_1_Index = 0; // ?????? ?????????????? ?????????? 1 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _O_Opt_1_Value = 0; // ???????? ?????????????? ?????????? 1
extern bool _O_Opt_2_Use = false; // ????????? ????????????? ?????????????? ?????????? 2
extern int _O_Opt_2_Index = 0; // ?????? ?????????????? ?????????? 2 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _O_Opt_2_Value = 0; // ???????? ?????????????? ?????????? 2
extern bool _O_Opt_3_Use = false; // ????????? ????????????? ?????????????? ?????????? 3
extern int _O_Opt_3_Index = 0; // ?????? ?????????????? ?????????? 3 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _O_Opt_3_Value = 0; // ???????? ?????????????? ?????????? 3
extern bool _O_Opt_4_Use = false; // ????????? ????????????? ?????????????? ?????????? 4
extern int _O_Opt_4_Index = 0; // ?????? ?????????????? ?????????? 4 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _O_Opt_4_Value = 0; // ???????? ?????????????? ?????????? 4
extern bool _O_Opt_5_Use = false; // ????????? ????????????? ?????????????? ?????????? 5
extern int _O_Opt_5_Index = 0; // ?????? ?????????????? ?????????? 5 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _O_Opt_5_Value = 0; // ???????? ?????????????? ?????????? 5
#include <inc_CT1TF.mqh>
#include <inc_CT2TF.mqh>
extern string ma2 = "==== ??? ?? ====";
extern bool MA2_ON = false; // ???????? ???????? ???? ??
extern int MA2_Shift = 1; // ??? ?? ??????? ??????????? ?????????
extern string MA2_Symbol = ""; // ??????. ?????? ???????? - ?????? ???????
extern int MA2_TimeFrame = 0; // ?????????: 0 - ????????? ??????? ?? ??????? ???????? ??????? ??? ??????? ?????? ? ???????. ??? ?????????? ???????? 1,5,15,30,60,240,1440...
extern int MA2_FastMAPeriod = 1; // ?????? ??????? ??
extern int MA2_FastMAMethod = 0; // ????? ??????? ??: 0-SMA, 1-EMA, 2-SMMA, 3-LWMA
extern int MA2_FastMAPrice = 0; // ???? ??????? ??: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int MA2_FastMAShift = 0; // ???????? ??????? ??
extern int MA2_SlowMAPeriod = 21; // ?????? ????????? ??
extern int MA2_SlowMAMethod = 0; // ????? ????????? ??: 0-SMA, 1-EMA, 2-SMMA, 3-LWMA
extern int MA2_SlowMAPrice = 0; // ???? ????????? ??: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int MA2_SlowMAShift = 0; // ???????? ????????? ??
extern string s1 = "==== == (_O?_Mode: 1 - ?? sl ? tp, 2 - ????????, 3 - _?_...) == ====";
extern int _O?_Mode = 2; // 1-???????? ?? ???????? ? ??????????, 2-????? ????????? ??????????? ??????????????? ?????? ?? ???????? ???????? ?????????? _O_, 3-???????????? ??????? ???????? ?????????? _C_
extern string s2 = "==== ????????? ??? ???????? (Mode: 1 - ???????, 2 - ??????? ? ??????????, 3 ????? ? ??????, 4 ?????????, 5 - ????? ?????) ====";
extern int _C_Mode = 1; // 1-????????? ?????? ???????, ???????? ?? ????????, 2-? ?????????? ??????? ? ?????????? ?????, ???????? ??? ??????????? ?????, 3-???????????? ???? ????? ? ?? ??????????? ? ????????, 4-?????????, 5-????? ?????
extern bool _C_UseOpenParam = false; // ?????????? ??? ????????? ? ?????????? ???????? (????? ? ??? ??????????). ??????? ?? ?????? ????????????? ?????????? ?? ????????? ???????? ? ????????? ????????, ? ????? ??????????? ?????????? ?????????? _C_UseOpenParam=true ? ??????? ?????? ??????? _C_M1_..., _C_M2_..., _C_M3_... ? ?????????? ????? _C_Mode (???????? ?? ???????? ???????????? ???????, ? ?? ???????? ??????????? ?????)
extern string _C_iCustomName = "??????? ??? ??????????"; // ??? Custom ??????????
extern string _C_iCustomParam = "??????? ?????? ?????????? ????? ??????????? /"; // ?????? ?????????? ????? ??????????? "/". ??? ?????????? ???? bool ?????? ???????? true ???????????? 1, ?????? false - 0. ???? ? ?????????? ?????????? ??? ????????? ??????????, ??????? ???????? ?? ?????!!!
extern int _C_M1_iCloseBuyBufIndex = 0; // ?????? ?????? ?? ????????? ?? ???????
extern int _C_M1_iCloseSellBufIndex = 1; // ?????? ?????? ?? ????????? ?? ???????
extern int _C_M2_iMainBufIndex = 0; // ?????? ?????? ??????? ?????
extern int _C_M2_iSignalBufIndex = 1; // ?????? ?????? ?????????? ?????
extern int _C_M3_iBufIndex = 0; // ?????? ?????? ?????
extern double _C_M3_CloseBuyLevel = 80; // ??????? ???????? ??????? (??????????? ?????? ????)
extern double _C_M3_CloseSellLevel = 20; // ??????? ???????? ??????? (??????????? ????? ?????)
extern int _C_M4_iBufIndex = 0; // ?????? ?????? ?????
extern int _C_M5_iBuyBufIndex = 0; // ?????? ?????? ????? ???????????? ??? ?????? ?????
extern int _C_M5_iSellBufIndex = 1; // ?????? ?????? ????? ???????????? ??? ?????? ????
extern int _C_iShift = 1; // ????? ??????????. 1 - ?? ?????????????? ?????, 0 - ?? ????????????? ???? (?? ?????????????). ????? ????? ???? ?????? ???????? 2,3,4...
extern bool _C_Opt_1_Use = false; // ????????? ????????????? ?????????????? ?????????? 1. ??? ????????? ?????????????? ?????????? ?????? ???????? ?? ?????? iCustomParam, ????????????? ?????????? Opt_X_Index ????? ?????????????? ???????? ?????????? Opt_X_Value
extern int _C_Opt_1_Index = 0; // ?????? ?????????????? ?????????? 1 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _C_Opt_1_Value = 0; // ???????? ?????????????? ?????????? 1
extern bool _C_Opt_2_Use = false; // ????????? ????????????? ?????????????? ?????????? 2
extern int _C_Opt_2_Index = 0; // ?????? ?????????????? ?????????? 2 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _C_Opt_2_Value = 0; // ???????? ?????????????? ?????????? 2
extern bool _C_Opt_3_Use = false; // ????????? ????????????? ?????????????? ?????????? 3
extern int _C_Opt_3_Index = 0; // ?????? ?????????????? ?????????? 3 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _C_Opt_3_Value = 0; // ???????? ?????????????? ?????????? 3
extern bool _C_Opt_4_Use = false; // ????????? ????????????? ?????????????? ?????????? 4
extern int _C_Opt_4_Index = 0; // ?????? ?????????????? ?????????? 4 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _C_Opt_4_Value = 0; // ???????? ?????????????? ?????????? 4
extern bool _C_Opt_5_Use = false; // ????????? ????????????? ?????????????? ?????????? 5
extern int _C_Opt_5_Index = 0; // ?????? ?????????????? ?????????? 5 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _C_Opt_5_Value = 0; // ???????? ?????????????? ?????????? 5
extern string s22 = "==== ?????????????? ??????? ???????? ====";
extern bool CheckProfit = false; // ????????? ??????? ?????? ??? ????????, ?????? ? ??????, ??? MinimalProfit ???????? ?? ???????????
extern int MinimalProfit = 0; // ??. ?????????? CheckProfit
extern bool CheckSL = false; // ???? ???????? ?????? ????????? ??????? ?? ?????? ??? MinimalSLProfit, ????? ?? ???????????
extern int MinimalSLProfit = 0; // ??. ?????????? CheckSL
extern string s3 = "=== ??????????? ??????? ???? ===";
extern int MMMethod = 0; // ????? ??: 0-Lots, 1-????? (Risk) ?? ????????? ???????, 2-????? (Risk) ?? ????????? ??????? ????????????? ?? ???????? MeansStep (???????? Risk=0.1, MeansStep=1000, ???? ??????? ?????? 2000, ??? ????? 0.1, ???? ??????? ????? 2000 ??? ????? - 0.2 ????, 3000 ? ????? - 0.3 ???? ? ?.?. )
extern double KotMMMetod3 = 2.1; //??????????? ?????????? ???? ??? MMMethod = 3
extern double Lots = 0.1; // ?????????? ????? ??? MMMethod=0
extern double Risk = 0.1; // ????. ???????? ?? ??????? ??? FixedLot=false
extern int MeansType = 3; // ??? ??????? ???????????? ??? ??????? ??????? ????. 1 - Balance, 2 - Equity, 3 - FreeMargin
extern double MeansStep = 1000; // ??? ???????. ???????????? ??? MMMethod=2
extern int LotsDigits = 2; // ?????????? ?????? ????? ??????? ? ??????? ????
extern string s4 = "=== ????? (OrdType: 0-Market, 1-Stop, 2-Limit) ===";
extern int OrdType = 0; // ??? ???????: 0 - ????????, 1 - ????, 2 - ?????. ??? ????? 1 ? 2 ??. ??????????
extern int Slippage = 3; // ?????????? ?????????? ?? ??????????? ????
extern double StopLoss = 25; // ????????
extern double TakeProfit = 25; // ??????????
extern bool VirtualStops = false; // ???./????. ???????????? ???? ?????
extern int VirtualSL = 2; // ???????? ???????????? ???? ????? ? ???????
extern int SleepBars = 1; // ??????? ????? ???????? ?????? ? ?????????? ????? ???????? ??????????
extern bool CancelSleeping = true; // ????????? ?????? ???????? ??? ???????? ?????? ???????????????? ???????????.
extern int Magic_N = 96778; // ?????
extern bool MW_Mode = false; // ????? ???????? ??? ????????/?????????? ? ????????? ????????/?????????? ????? ???????? ??????
extern string s41 = "---- ---- ?????????? ?????? (PendNewSigMode: 1-??? ?????????????, 2-??????? ?????????????, 3-????????????? ?? ?????? ???????) ---- ----";
extern double PendLevel = 20; // ??????? ????????? ??????????? ?????? ?? ?????? ???????? ????
extern int PendPromPrice = 1; // ???? ????????? ??????????? ?????? ????????????? ?? ???? ???????? ????, ??? ???????? PendPromPrice=0 - ?? ???? ???????? (????????????? ??????? ???????? ????), 1 - ?? ???? ???????? ????
extern int PendNewSigMode = 2; // ?????? ?????????? ?????????? ??????? ?? ?????? ????????? ???????: ??????. 0 - ???? ????? ??? ??? ??????????, ?? ??? ????????? ?????? ????????? ??????? ?? ??????????? ?? ????? ????????, 1 - ????????????? ?????? ?? ?????? ???????, 2 - ?? ?????? ??????? ????? ??????????????????? ?? "?????? ???????" - ??????? ?????? ????, ???????? ?????? ?????, ???????? ?????? ?????, ???????? ?????? ????
extern bool PendPriceFollow = false; // ????? ?????????? ?? ?????. ????? ?????????????? ??? ?????? ????????? ???? ???????????? ?????????? PendPromPrice, ????? ??????????????????? ?????? ?? "?????? ????" (??. ???????? ?????????? PendNewSigMode)
extern bool PendDelete = true; // ???????? ??????????? ?????? ?? ???????????????? ????????? ???????. ??? ???????? false, ???????? ????????????? ????????????? ???? ??????? ??????? ???????????
extern int PendExpiration = 0; // ???? ??????????? ?????? ? ??????? (??????????? ???????? 11 ?????)
extern string s42 = "---- ---- ???? ???????? ??????? ---- ----";
extern int MaxOrdersCount = 1; // ?????????? ????? ?????????? ???????? ???????. -1 - ?? ??????????
extern int MaxBuyCount = 1; // ?????????? ?????????? ???????? ??????? buy. -1 - ?? ??????????
extern int MaxSellCount = 1; // ?????????? ?????????? ???????? ??????? sell. -1 - ?? ??????????
extern string s5 = "=== ???????? ===";
extern bool TrailingStop_Use = false; // ????????? ??????? ?????????????
extern double TrailingStopStart = 50; // ??????? ?????? ??? ??????? ???????? ???????? ????????????
extern double TrailingStop = 15; // ??????? ?????????????
extern string s6 = "=== ????????? ===";
extern bool BreakEven_Use = false; // ????????? ??????? ?????????
extern double BreakEvenStart = 30; // ??????? ?????? ??? ??????? ??????????? ?????????
extern double BreakEvenLevel = 15; // ??????? ?? ??????? ??????????????? ???????? ?? ???? ???????????? ?????????
extern string s7 = "=== ???????? ?? ?????????? ===";
extern bool _TS_ON = false; // ????????? ????????? ?? ??????????
extern string _TS_iCustomName = "??????? ??? ??????????"; // ??? Custom ??????????
extern string _TS_iCustomParam = "??????? ?????? ?????????? ????? ??????????? /"; // ?????? ?????????? ????? ??????????? "/". ??? ?????????? ???? bool ?????? ??????? true ???????????? 1, ?????? false - 0. ???? ? ?????????? ?????????? ??? ????????? ??????????, ??????? ???????? ?? ?????!!!
extern int _TS_iForBuyBufIndex = 0; // ?????? ?????? ??? ??????? buy
extern int _TS_iForSellBufIndex = 1; // ?????? ?????? ??? ??????? sell
extern int _TS_iShift = 1; // ????? ??????????. 1 - ?? ?????????????? ?????, 0 - ?? ????????????? ???? (?? ?????????????). ????? ????? ???? ?????? ???????? 2,3,4...
extern bool _TS_Opt_1_Use = false; // ????????? ????????????? ?????????????? ?????????? 1. ??? ????????? ?????????????? ?????????? ?????? ???????? ?? ?????? iCustomParam, ????????????? ?????????? Opt_X_Index ????? ?????????????? ???????? ?????????? Opt_X_Value
extern int _TS_Opt_1_Index = 0; // ?????? ?????????????? ?????????? 1 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _TS_Opt_1_Value = 0; // ???????? ?????????????? ?????????? 1
extern bool _TS_Opt_2_Use = false; // ????????? ????????????? ?????????????? ?????????? 2
extern int _TS_Opt_2_Index = 0; // ?????? ?????????????? ?????????? 2 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _TS_Opt_2_Value = 0; // ???????? ?????????????? ?????????? 2
extern bool _TS_Opt_3_Use = false; // ????????? ????????????? ?????????????? ?????????? 3
extern int _TS_Opt_3_Index = 0; // ?????? ?????????????? ?????????? 3 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _TS_Opt_3_Value = 0; // ???????? ?????????????? ?????????? 3
extern bool _TS_Opt_4_Use = false; // ????????? ????????????? ?????????????? ?????????? 4
extern int _TS_Opt_4_Index = 0; // ?????? ?????????????? ?????????? 4 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _TS_Opt_4_Value = 0; // ???????? ?????????????? ?????????? 4
extern bool _TS_Opt_5_Use = false; // ????????? ????????????? ?????????????? ?????????? 5
extern int _TS_Opt_5_Index = 0; // ?????? ?????????????? ?????????? 5 ? ??????? ?????????? (? ?????? iCustomParam). ?????? ?????????? ? ????.
extern double _TS_Opt_5_Value = 0; // ???????? ?????????????? ?????????? 5
extern double _TS_Indent = 0; // ?????? ? ??????? ?? ???????? ??????????
extern double _TS_TrailInProfit = 0; // ??????????? ??????????? ???????. ???????? ?????????????? ? ??? ??????, ???? ?? ????????? ?? ????? ??? _TS_TrailInProfit ??????? ???????
extern string s8 = "=== ????? ===";
extern bool UseTime = false; // ????????? ???????? ???????
extern int StartHour = 10; // ??? ?????? ???????
extern int StartMinute = 0; // ?????? ?????? ???????
extern int EndHour = 14; // ??? ????????? ???????
extern int EndMinute = 0; // ?????? ????????? ???????
extern int ExpirationTime = 0; // ?????????? ?????, ????? ??????? ?????? ??????????? ?????????? (0 - ??? ????????)
extern string s9 = "=== ?????? ===";
extern bool Auto5Digits = true; // ?????????????? ????????? ?????????? ????????? ???????????? ? ??????? ?? 10 ?? 5-?? ? 3-?? ??????? ??????????. ?????????? ?????????: Slippage, StopLoss, TakeProfit, PendLevel, TrailingStopStart, TrailingStop, BreakEvenStart, BreakEvenLevel, _TS_Indent, _TS_TrailInProfit
extern bool InPercents = false; // ??? ????????? ????????? ???????????? ? ??????? (StopLoss, TakeProfit, PendLevel, TrailingStopStart, TrailingStop, BreakEvenStart, BreakEvenLevel, _TS_Indent, _TS_TrailInProfit) ???????? ? ????????? ?? ???????? ????. ? ???? ?????? Auto5Digits ?? ????????. ???????? Slippage ???????? ???????.
double _O_ParArr[];
double _C_ParArr[];
double _TS_ParArr[];
int LastBuyTime,LastSellTime;
string BuyComment;
string SellComment;
string BuyStopComment;
string SellStopComment;
string BuyLimitComment;
string SellLimitComment;
double x_StopLoss;
double x_TakeProfit;
double x_PendLevel;
double x_TrailingStopStart;
double x_TrailingStop;
double x_BreakEvenStart;
double x_BreakEvenLevel;
double x_TS_Indent;
double x_TS_TrailInProfit;
int init(){
// код доступен только после оплаты
}
void fConvertColorToDouble(string & aArr[]){
for(int i=0;i<ArraySize(aArr);i++){
aArr[i]=StringTrimLeft(StringTrimRight(aArr[i]));
if(StringFind(aArr[i],"color:",0)==0){
aArr[i]=StringSubstr(aArr[i],6,StringLen(aArr[i])-6);
if(StringFind(aArr[i],",",0)!=-1){
string tmp[];
fStrSplit(aArr[i],tmp,",");
aArr[i]=fRGB(StrToInteger(tmp[0]),StrToInteger(tmp[1]),StrToInteger(tmp[2]));
}
else{
aArr[i]=fColFromString(aArr[i]);
}
}
else if(StringFind(aArr[i],"date:",0)==0){
aArr[i]=StringSubstr(aArr[i],5,StringLen(aArr[i])-5);
aArr[i]=StrToTime(aArr[i]);
}
}
}
color fRGB(int aR,int aG, int aB){
return(aR+256*aG+65536*aB);
}
color fColFromString(string aName){
color tColor[]={ Black, DarkGreen, DarkSlateGray, Olive, Green, Teal, Navy, Purple,
Maroon, Indigo, MidnightBlue, DarkBlue, DarkOliveGreen, SaddleBrown,
ForestGreen, OliveDrab, SeaGreen, DarkGoldenrod, DarkSlateBlue,
Sienna, MediumBlue, Brown, DarkTurquoise, DimGray, LightSeaGreen,
DarkViolet, FireBrick, MediumVioletRed, MediumSeaGreen, Chocolate,
Crimson, SteelBlue, Goldenrod, MediumSpringGreen, LawnGreen,
CadetBlue, DarkOrchid, YellowGreen, LimeGreen, OrangeRed, DarkOrange,
Orange, Gold, Yellow, Chartreuse, Lime, SpringGreen, Aqua, DeepSkyBlue,
Blue, Magenta, Red, Gray, SlateGray, Peru, BlueViolet, LightSlateGray,
DeepPink, MediumTurquoise, DodgerBlue, Turquoise, RoyalBlue, SlateBlue,
DarkKhaki, IndianRed, MediumOrchid, GreenYellow, MediumAquamarine,
DarkSeaGreen, Tomato, RosyBrown, Orchid, MediumPurple, PaleVioletRed,
Coral, CornflowerBlue, DarkGray, SandyBrown, MediumSlateBlue, Tan,
DarkSalmon, BurlyWood, HotPink, Salmon, Violet, LightCoral, SkyBlue,
LightSalmon, Plum, Khaki, LightGreen, Aquamarine, Silver, LightSkyBlue,
LightSteelBlue, LightBlue, PaleGreen, Thistle, PowderBlue, PaleGoldenrod,
PaleTurquoise, LightGray, Wheat, NavajoWhite, Moccasin, LightPink,
Gainsboro, PeachPuff, Pink, Bisque, LightGoldenrod, BlanchedAlmond,
LemonChiffon, Beige, AntiqueWhite, PapayaWhip, Cornsilk, LightYellow,
LightCyan, Linen, Lavender, MistyRose, OldLace, WhiteSmoke, Seashell,
Ivory, Honeydew, AliceBlue, LavenderBlush, MintCream, Snow, White
};
string tName[]={ "Black", "DarkGreen", "DarkSlateGray", "Olive", "Green", "Teal", "Navy", "Purple",
"Maroon", "Indigo", "MidnightBlue", "DarkBlue", "DarkOliveGreen", "SaddleBrown",
"ForestGreen", "OliveDrab", "SeaGreen", "DarkGoldenrod", "DarkSlateBlue",
"Sienna", "MediumBlue", "Brown", "DarkTurquoise", "DimGray", "LightSeaGreen",
"DarkViolet", "FireBrick", "MediumVioletRed", "MediumSeaGreen", "Chocolate",
"Crimson", "SteelBlue", "Goldenrod", "MediumSpringGreen", "LawnGreen",
"CadetBlue", "DarkOrchid", "YellowGreen", "LimeGreen", "OrangeRed", "DarkOrange",
"Orange", "Gold", "Yellow", "Chartreuse", "Lime", "SpringGreen", "Aqua", "DeepSkyBlue",
"Blue", "Magenta", "Red", "Gray", "SlateGray", "Peru", "BlueViolet", "LightSlateGray",
"DeepPink", "MediumTurquoise", "DodgerBlue", "Turquoise", "RoyalBlue", "SlateBlue",
"DarkKhaki", "IndianRed", "MediumOrchid", "GreenYellow", "MediumAquamarine",
"DarkSeaGreen", "Tomato", "RosyBrown", "Orchid", "MediumPurple", "PaleVioletRed",
"Coral", "CornflowerBlue", "DarkGray", "SandyBrown", "MediumSlateBlue", "Tan",
"DarkSalmon", "BurlyWood", "HotPink", "Salmon", "Violet", "LightCoral", "SkyBlue",
"LightSalmon", "Plum", "Khaki", "LightGreen", "Aquamarine", "Silver", "LightSkyBlue",
"LightSteelBlue", "LightBlue", "PaleGreen", "Thistle", "PowderBlue", "PaleGoldenrod",
"PaleTurquoise", "LightGray", "Wheat", "NavajoWhite", "Moccasin", "LightPink",
"Gainsboro", "PeachPuff", "Pink", "Bisque", "LightGoldenrod", "BlanchedAlmond",
"LemonChiffon", "Beige", "AntiqueWhite", "PapayaWhip", "Cornsilk", "LightYellow",
"LightCyan", "Linen", "Lavender", "MistyRose", "OldLace", "WhiteSmoke", "Seashell",
"Ivory", "Honeydew", "AliceBlue", "LavenderBlush", "MintCream", "Snow", "White"
};
aName=StringTrimLeft(StringTrimRight(aName));
for(int i=0;i<ArraySize(tName);i++){
if(aName==tName[i])return(tColor[i]);
}
return(Red);
}
void fCopyStrToDouble(string aStr[],double & aDoub[]){
ArrayResize(aDoub,ArraySize(aStr));
for(int i=0;i<ArraySize(aStr);i++){
aDoub[i]=StrToDouble(aStr[i]);
}
}
int deinit()
{
return(0);
}
int start(){
// код доступен только после оплаты
}
void fPendingPriceFollow(){
for(int i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic_N){
switch (OrderType()){
case OP_BUYSTOP:
double OpPrice=iMA(NULL,TimeFrame,1,0,0,PendPromPrice,0)+Point*PendLevel+(Ask-Bid);
if(ND(OpPrice)<ND(OrderOpenPrice())){
fModifyBuyStop(OrderTicket(),OpPrice,OrderExpiration());
}
break;
case OP_SELLSTOP:
OpPrice=iMA(NULL,TimeFrame,1,0,0,PendPromPrice,0)-Point*PendLevel;
if(ND(OpPrice)>ND(OrderOpenPrice())){
fModifySellStop(OrderTicket(),OpPrice,OrderExpiration());
}
break;
case OP_BUYLIMIT:
OpPrice=iMA(NULL,TimeFrame,1,0,0,PendPromPrice,0)-Point*PendLevel+(Ask-Bid);
if(ND(OpPrice)>ND(OrderOpenPrice())){
fModifyBuyLimit(OrderTicket(),OpPrice,OrderExpiration());
}
break;
case OP_SELLLIMIT:
OpPrice=iMA(NULL,TimeFrame,1,0,0,PendPromPrice,0)+Point*PendLevel;
OpPrice=iMA(NULL,TimeFrame,1,0,0,PendPromPrice,0)-Point*PendLevel+(Ask-Bid);
if(ND(OpPrice)<ND(OrderOpenPrice())){
fModifySellLimit(OrderTicket(),OpPrice,OrderExpiration());
}
break;
}
}
}
}
}
double fGetLotsSimple(int aTradeType){
double retlot;
double Means;
switch(MMMethod){
case 0:
retlot=Lots;
break;
case 1:
switch (MeansType){
case 1:
Means=AccountBalance();
break;
case 2:
Means=AccountEquity();
break;
case 3:
Means=AccountFreeMargin();
break;
default:
Means=AccountBalance();
}
retlot=AccountBalance()/1000*Risk;
break;
case 2:
switch (MeansType){
case 1:
Means=AccountBalance();
break;
case 2:
Means=AccountEquity();
break;
case 3:
Means=AccountFreeMargin();
break;
default:
Means=AccountBalance();
}
if(Means<MeansStep){
Means=MeansStep;
}
retlot=(MeansStep*MathFloor(Means/MeansStep))/1000*Risk;
break;
case 3:
double k=1; // ??????????, ?? ???????? ??????? ???????, ????? ?? ??????????? ????????? ???
if (OrdersHistoryTotal()==0) return(Lots); // ???? ??????? ??????, ??????? ????????? ?????
for (int i=OrdersHistoryTotal()-1;i>-1;i--) // ??????? ???? ???????? ??????? ? ????????? ???????
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); // ???????? ?????
if(OrderCloseTime()!=0 && OrderProfit()>0) bool mart=true; // ???? ????????? ????? - ?????? ? ????????, ????????? ?????? ???????? ???? ?? ???????????, ?????? ????????? ? ????????? ????????...
if(OrderCloseTime()!=0 && OrderProfit()<0 && !mart) k*=KotMMMetod3; // ???? ????????? ????? - ?????? ? ???????, ????????? ??????????? ???????????
}
double MartinLot=k*Lots; // ???????????? ??? ?? ???????????, ?????? k ??????? ?? ?????????? ?????? ?????? ????????? ??????
if(MartinLot>MarketInfo(Symbol(),MODE_MAXLOT)) {Alert("???????????? ??? ?????? ??????????? ???????????!"); return(0.0);} // ???? ???????????? ??? ?????? ???????????, ???????
if(MartinLot*MarketInfo(Symbol(),MODE_MARGINREQUIRED)>AccountFreeMargin()) {Alert("?????? ????????? ??????? ?? ????????? ??????? ??????? ? ???????????? ?????!"); return(0.0);}// ???? ?????? ????????? ??????? ?? ????????? ??????? ??????? ? ???????????? ?????, ???????
retlot=MartinLot;
break;
default:
retlot=Lots;
}
if(retlot<1.0/MathPow(10,LotsDigits))retlot=1.0/MathPow(10,LotsDigits) ;
retlot=NormalizeDouble(retlot,LotsDigits);
if(AccountFreeMarginCheck(Symbol(),aTradeType,retlot)<=0){
return(-1);
}
if(GetLastError()==134){
return(-2);
}
return(retlot);
}
int fOrderOpenBuy(){
RefreshRates();
double lts=fGetLotsSimple(OP_BUY);
if(lts>0){
if(!IsTradeContextBusy()){
double slts=0;
double tpts=0;
if(!MW_Mode){
if(StopLoss!=0)slts=ND(Ask-Point*StopLoss);
if(TakeProfit!=0)tpts=ND(Ask+Point*TakeProfit);
}
int irv=OrderSend(Symbol(),OP_BUY,lts,ND(Ask),Slippage,slts,tpts,BuyComment,Magic_N,0,CLR_NONE);
if(irv>0){
LastBuyTime=iTime(NULL,TimeFrame,0);
if(CancelSleeping)LastSellTime=0;
if(MW_Mode){
fMW();
}
return(irv);
}
else{
Print ("Error open BUY. "+fMyErDesc(GetLastError()));
return(-1);
}
}
else{
static int lt2=0;
if(lt2!=iTime(NULL,TimeFrame,0)){
lt2=iTime(NULL,TimeFrame,0);
Print("Need open buy. Trade Context Busy");
}
return(-2);
}
}
else{
static int lt3=0;
if(lt3!=iTime(NULL,TimeFrame,0)){
lt3=iTime(NULL,TimeFrame,0);
if(lts==-1)Print("Need open buy. No money");
if(lts==-2)Print("Need open buy. Wrong lots size");
}
return(-3);
}
}
int fOrderOpenSell(){
RefreshRates();
double lts=fGetLotsSimple(OP_SELL);
if(lts>0){
if(!IsTradeContextBusy()){
double slts=0;
double tpts=0;
if(!MW_Mode){
if(StopLoss!=0)slts=ND(Bid+Point*StopLoss);
if(TakeProfit!=0)tpts=ND(Bid-Point*TakeProfit);
}
int irv=OrderSend(Symbol(),OP_SELL,lts,ND(Bid),Slippage,slts,tpts,SellComment,Magic_N,0,CLR_NONE);
if(irv>0){
LastSellTime=iTime(NULL,TimeFrame,0);
if(CancelSleeping)LastBuyTime=0;
if(MW_Mode){
fMW();
}
return(irv);
}
else{
Print ("Error open SELL. "+fMyErDesc(GetLastError()));
return(-1);
}
}
else{
static int lt2=0;
if(lt2!=iTime(NULL,TimeFrame,0)){
lt2=iTime(NULL,TimeFrame,0);
Print("Need open sell. Trade Context Busy");
}
return(-2);
}
}
else{
static int lt3=0;
if(lt3!=iTime(NULL,TimeFrame,0)){
lt3=iTime(NULL,TimeFrame,0);
if(lts==-1)Print("Need open sell. No money");
if(lts==-2)Print("Need open sell. Wrong lots size");
}
return(-3);
}
}
void fMW(){
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic_N){
RefreshRates();
if(OrderType()==OP_BUY || OrderType()==OP_SELL){
if((ND(OrderStopLoss())==0 && StopLoss!=0) || (ND(OrderTakeProfit())==0 && TakeProfit!=0)){
if(OrderType()==OP_BUY){
double slts=ND(OrderStopLoss());
if(slts==0){
if(StopLoss==0)slts=0;else{
slts=ND(OrderOpenPrice()-Point*StopLoss);
double msl=ND(Bid-Point*MarketInfo(Symbol(),MODE_STOPLEVEL)-Point);
slts=MathMin(slts,msl);
}
}
double tpts=ND(OrderTakeProfit());
if(tpts==0){
if(TakeProfit==0)tpts=0;else {
tpts=ND(OrderOpenPrice()+Point*TakeProfit);
double mtp=ND(Bid+Point*MarketInfo(Symbol(),MODE_STOPLEVEL)+Point);
tpts=MathMax(tpts,mtp);
}
}
}
if(OrderType()==OP_SELL){
slts=ND(OrderStopLoss());
if(slts==0){
if(StopLoss==0)slts=0;else {
slts=ND(OrderOpenPrice()+Point*StopLoss);
msl=ND(Ask+Point*MarketInfo(Symbol(),MODE_STOPLEVEL)+Point);
slts=MathMax(slts,msl);
}
}
tpts=ND(OrderTakeProfit());
if(tpts==0){
if(TakeProfit==0)tpts=0;else {
tpts=ND(OrderOpenPrice()-Point*TakeProfit);
mtp=ND(Ask-Point*MarketInfo(Symbol(),MODE_STOPLEVEL)-Point);
tpts=MathMin(tpts,mtp);
}
}
}
if(OrderStopLoss()!=slts || OrderTakeProfit()!=tpts){
bool brv=OrderModify(OrderTicket(),OrderOpenPrice(),slts,tpts,0,CLR_NONE);
int check=GetLastError();
if(brv){
Print("SL/TP ??? ?????? "+OrderTicket()+" ??????????");
}
else{
Print("?? ??????? ?????????? SL/TP ??? ?????? "+OrderTicket()+". "+fMyErDesc(check));
}
}
}
}
}
}
}
}
string fMyErDesc(int aErrNum){
string pref="Err Num: "+aErrNum+" - ";
switch(aErrNum){
case 0: return(pref+"NO ERROR");
case 1: return(pref+"NO RESULT");
case 2: return(pref+"COMMON ERROR");
case 3: return(pref+"INVALID TRADE PARAMETERS");
case 4: return(pref+"SERVER BUSY");
case 5: return(pref+"OLD VERSION");
case 6: return(pref+"NO CONNECTION");
case 7: return(pref+"NOT ENOUGH RIGHTS");
case 8: return(pref+"TOO FREQUENT REQUESTS");
case 9: return(pref+"MALFUNCTIONAL TRADE");
case 64: return(pref+"ACCOUNT DISABLED");
case 65: return(pref+"INVALID ACCOUNT");
case 128: return(pref+"TRADE TIMEOUT");
case 129: return(pref+"INVALID PRICE");
case 130: return(pref+"INVALID STOPS");
case 131: return(pref+"INVALID TRADE VOLUME");
case 132: return(pref+"MARKET CLOSED");
case 133: return(pref+"TRADE DISABLED");
case 134: return(pref+"NOT ENOUGH MONEY");
case 135: return(pref+"PRICE CHANGED");
case 136: return(pref+"OFF QUOTES");
case 137: return(pref+"BROKER BUSY");
case 138: return(pref+"REQUOTE");
case 139: return(pref+"ORDER LOCKED");
case 140: return(pref+"LONG POSITIONS ONLY ALLOWED");
case 141: return(pref+"TOO MANY REQUESTS");
case 145: return(pref+"TRADE MODIFY DENIED");
case 146: return(pref+"TRADE CONTEXT BUSY");
case 147: return(pref+"TRADE EXPIRATION DENIED");
case 148: return(pref+"TRADE TOO MANY ORDERS");
case 4000: return(pref+"NO MQLERROR");
case 4001: return(pref+"WRONG FUNCTION POINTER");
case 4002: return(pref+"ARRAY INDEX OUT OF RANGE");
case 4003: return(pref+"NO MEMORY FOR FUNCTION CALL STACK");
case 4004: return(pref+"RECURSIVE STACK OVERFLOW");
case 4005: return(pref+"NOT ENOUGH STACK FOR PARAMETER");
case 4006: return(pref+"NO MEMORY FOR PARAMETER STRING");
case 4007: return(pref+"NO MEMORY FOR TEMP STRING");
case 4008: return(pref+"NOT INITIALIZED STRING");
case 4009: return(pref+"NOT INITIALIZED ARRAYSTRING");
case 4010: return(pref+"NO MEMORY FOR ARRAYSTRING");
case 4011: return(pref+"TOO LONG STRING");
case 4012: return(pref+"REMAINDER FROM ZERO DIVIDE");
case 4013: return(pref+"ZERO DIVIDE");
case 4014: return(pref+"UNKNOWN COMMAND");
case 4015: return(pref+"WRONG JUMP");
case 4016: return(pref+"NOT INITIALIZED ARRAY");
case 4017: return(pref+"DLL CALLS NOT ALLOWED");
case 4018: return(pref+"CANNOT LOAD LIBRARY");
case 4019: return(pref+"CANNOT CALL FUNCTION");
case 4020: return(pref+"EXTERNAL EXPERT CALLS NOT ALLOWED");
case 4021: return(pref+"NOT ENOUGH MEMORY FOR RETURNED STRING");
case 4022: return(pref+"SYSTEM BUSY");
case 4050: return(pref+"INVALID FUNCTION PARAMETERS COUNT");
case 4051: return(pref+"INVALID FUNCTION PARAMETER VALUE");
case 4052: return(pref+"STRING FUNCTION INTERNAL ERROR");
case 4053: return(pref+"SOME ARRAY ERROR");
case 4054: return(pref+"INCORRECT SERIES ARRAY USING");
case 4055: return(pref+"CUSTOM INDICATOR ERROR");
case 4056: return(pref+"INCOMPATIBLE ARRAYS");
case 4057: return(pref+"GLOBAL VARIABLES PROCESSING ERROR");
case 4058: return(pref+"GLOBAL VARIABLE NOT FOUND");
case 4059: return(pref+"FUNCTION NOT ALLOWED IN TESTING MODE");
case 4060: return(pref+"FUNCTION NOT CONFIRMED");
case 4061: return(pref+"SEND MAIL ERROR");
case 4062: return(pref+"STRING PARAMETER EXPECTED");
case 4063: return(pref+"INTEGER PARAMETER EXPECTED");
case 4064: return(pref+"DOUBLE PARAMETER EXPECTED");
case 4065: return(pref+"ARRAY AS PARAMETER EXPECTED");
case 4066: return(pref+"HISTORY WILL UPDATED");
case 4067: return(pref+"TRADE ERROR");
case 4099: return(pref+"END OF FILE");
case 4100: return(pref+"SOME FILE ERROR");
case 4101: return(pref+"WRONG FILE NAME");
case 4102: return(pref+"TOO MANY OPENED FILES");
case 4103: return(pref+"CANNOT OPEN FILE");
case 4104: return(pref+"INCOMPATIBLE ACCESS TO FILE");
case 4105: return(pref+"NO ORDER SELECTED");
case 4106: return(pref+"UNKNOWN SYMBOL");
case 4107: return(pref+"INVALID PRICE PARAM");
case 4108: return(pref+"INVALID TICKET");
case 4109: return(pref+"TRADE NOT ALLOWED");
case 4110: return(pref+"LONGS NOT ALLOWED");
case 4111: return(pref+"SHORTS NOT ALLOWED");
case 4200: return(pref+"OBJECT ALREADY EXISTS");
case 4201: return(pref+"UNKNOWN OBJECT PROPERTY");
case 4202: return(pref+"OBJECT DOES NOT EXIST");
case 4203: return(pref+"UNKNOWN OBJECT TYPE");
case 4204: return(pref+"NO OBJECT NAME");
case 4205: return(pref+"OBJECT COORDINATES ERROR");
case 4206: return(pref+"NO SPECIFIED SUBWINDOW");
case 4207: return(pref+"SOME OBJECT ERROR");
default: return(pref+"WRONG ERR NUM");
}
}
double ND(double v){return(NormalizeDouble(v,Digits));}
int fOrdersTotal(int & aBuyCount,int & aSellCount,int & aBuyStopCount,int & aSellStopCount,int & aBuyLimitCount,int & aSellLimitCount,int & aBuyStopTicket,int & aSellStopTicket,int & aBuyLimitTicket,int & aSellLimitTicket){
aBuyCount=0;
aSellCount=0;
aBuyStopCount=0;
aSellStopCount=0;
aBuyLimitCount=0;
aSellLimitCount=0;
aBuyStopTicket=0;
aSellStopTicket=0;
aBuyLimitTicket=0;
aSellLimitTicket=0;
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic_N){
switch (OrderType()){
case OP_BUY:
aBuyCount++;
break;
case OP_SELL:
aSellCount++;
break;
case OP_BUYSTOP:
aBuyStopCount++;
aBuyStopTicket=OrderTicket();
break;
case OP_SELLSTOP:
aSellStopCount++;
aSellStopTicket=OrderTicket();
break;
case OP_BUYLIMIT:
aBuyLimitCount++;
aBuyLimitTicket=OrderTicket();
break;
case OP_SELLLIMIT:
aSellLimitCount++;
aSellLimitTicket=OrderTicket();
break;
}
}
}
else{
return(-1);
}
}
return(aBuyCount+aSellCount);
}
int fOrderCloseMarket(bool aCloseBuy=true,bool aCloseSell=true){
int tErr=0;
for(int i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic_N){
if(OrderType()==OP_BUY && aCloseBuy){
RefreshRates();
if(CheckProfit){
if(ND(Bid-OrderOpenPrice())<ND(Point*MinimalProfit)){
continue;
}
}
if(CheckSL){
if(ND(OrderStopLoss())!=0){
if(ND(OrderStopLoss()-OrderOpenPrice())>=ND(Point*MinimalSLProfit)){
continue;
}
}
}
Показано первые 50% кода (символов: 92041)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.