# Советник TMA

Раздел: Советники, эксперты, форекс роботы
Автор темы: azmir
Создана: 2023-02-11 05:06
Ответов: 115 | Просмотров: 26622
Страница 5 из 6
Источник: https://forexsystemru.com/threads/91401/page-5

---

## azmir — 2023-02-23 06:02

> Цитата (den77777):
> Попробуй отфильтровать через pz swing, пока он красный, открываемся только от верхней границы тма(шортим), зеленый, от нижней(покупаем), таймфрейм часовой. Стоп,  переворот в обратную сторону pz swing.

Оказывается их много,  посоветуйте пожалуйста какой из них лучше.

## WayToTheTop — 2023-02-23 16:18

> Цитата (den77777):
> Попробуй отфильтровать через pz swing, пока он красный, открываемся только от верхней границы тма(шортим), зеленый, от нижней(покупаем), таймфрейм часовой. Стоп,  переворот в обратную сторону pz swing.

Привет можете мне помочь с кодом

//+------------------------------------------------------------------+

// --- Входные параметры эксперта
input int MA_Period = 20;  // Период скользящей средней
input double LotSize = 0.1;  // Размер лота

// --- Переменные эксперта
double MA;  // Значение скользящей средней
double MaxPrice;  // Максимальная цена бычьей свечи
double MinPrice;  // Минимальная цена медвежьей свечи

//+------------------------------------------------------------------+
//| Инициализация эксперта                                          |
//+------------------------------------------------------------------+
int OnInit()
{
    // Установить значение скользящей средней
    MA = iMA(NULL, 0, MA_Period, 0, MODE_SMA, PRICE_CLOSE, 0);

    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Обработка тика                                                  |
//+------------------------------------------------------------------+
void OnTick()
{
    // Определить текущую цену
    double price = SymbolInfoDouble(_Symbol, SYMBOL_BID);

    // Определить цену закрытия предыдущей свечи
    double prev_close = iClose(NULL, 0, 1);

    // Определить минимальную цену медвежьей свечи находящейся перед текущей свечей
    double prev_min = iLow(NULL, 0, 2);

    // Определить максимальную цену бычьей свечи находящейся перед текущей свечей
    double prev_max = iHigh(NULL, 0, 2);

    // Определить тип текущей свечи (бычья или медвежья)
    bool bullish = price > prev_close;
    bool bearish = price < prev_close;

    // Проверить сигнал на покупку
    if (bullish && price > MA && prev_close < prev_min)
    {
        // Открыть сделку на покупку
        OrderSend(_Symbol, OP_BUY, LotSize, price, 3, 0, 0, "Paradox", 0, 0, Green);
    }

    // Проверить сигнал на продажу
    if (bearish && price < MA && prev_close > prev_max)
    {
        // Открыть сделку на продажу
        OrderSend(_Symbol, OP_SELL, LotSize, price, 3, 0, 0, "Paradox", 0, 0, Red);
    }
}

//+------------------------------------------------------------------+
//| Закрытие эксперта                                               |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
    // Ничего не делать
}

## den77777 — 2023-02-23 17:50

> Цитата (azmir):
> Оказывается их много,  посоветуйте пожалуйста какой из них лучше.

## azmir — 2023-02-24 05:45

> Цитата (den77777):
> Попробуй отфильтровать через pz swing, пока он красный, открываемся только от верхней границы тма(шортим), зеленый, от нижней(покупаем), таймфрейм часовой. Стоп,  переворот в обратную сторону pz swing.

Почему-то индикатор не вшивается в сов через "ресурсы" (* успешно компилируется  но при работе сова выдает ошибку что не видит индюка*) по этому для работы советника инди долж находится в папке Indicators

## Genry_05 — 2023-02-24 10:53

> Цитата (Genry_05):
> Фактор восстановления (Recovery Factor) — данный показатель отображает рискованность стратегии, какой суммой советник рискует чтобы заработать полученную прибыль. Он вычисляется как отношение полученной прибыли к максимальной просадке;
> //+------------------------------------------------------------------+
> //|                                                                  |
> //+------------------------------------------------------------------+
> double OnTester( void ) {
>    //---
>    return(NormalizeDouble(GetRecoveryFactor(), 4));
> }
>
> //+------------------------------------------------------------------+
> //|                                                                  |
> //+------------------------------------------------------------------+
> double GetRecoveryFactor( void ) {
>   double MaxDD = TesterStatistics(STAT_EQUITY_DD);
>   return((MaxDD != 0)?TesterStatistics(STAT_PROFIT) / MaxDD : 0.0);
> }

**azmir**, день добрый!
Если добавить этот код в советник, то в результатах оптимизации появится еще один столбец и он покажет значение "Фактора восстановления" .

Таким образом можно использовать и другие методы оценки качества торговли.
Это экономит уйму времени при анализе результатов оптимизации и выборе наилучшего варианта.
Подробности и варианты оценки здесь:
[URL unfurl="true"]https://forexsystemsru.com/threads/ocenka-kachestva-torgovli-metodami-van-tarpa-i-sortino.89942/post-1665758
Успехов!

## ИванМН — 2023-02-24 13:21

> Цитата (WayToTheTop):
> Привет можете мне помочь с кодом
>
> //+------------------------------------------------------------------+
>
> // --- Входные параметры эксперта
> input int MA_Period = 20;  // Период скользящей средней
> input double LotSize = 0.1;  // Размер лота
>
> // --- Переменные эксперта
> double MA;  // Значение скользящей средней
> double MaxPrice;  // Максимальная цена бычьей свечи
> double MinPrice;  // Минимальная цена медвежьей свечи
>
> //+------------------------------------------------------------------+
> //| Инициализация эксперта                                          |
> //+------------------------------------------------------------------+
> int OnInit()
> {
>     // Установить значение скользящей средней
>     MA = iMA(NULL, 0, MA_Period, 0, MODE_SMA, PRICE_CLOSE, 0);
>
>     return(INIT_SUCCEEDED);
> }
>
> //+------------------------------------------------------------------+
> //| Обработка тика                                                  |
> //+------------------------------------------------------------------+
> void OnTick()
> {
>     // Определить текущую цену
>     double price = SymbolInfoDouble(_Symbol, SYMBOL_BID);
>
>     // Определить цену закрытия предыдущей свечи
>     double prev_close = iClose(NULL, 0, 1);
>
>     // Определить минимальную цену медвежьей свечи находящейся перед текущей свечей
>     double prev_min = iLow(NULL, 0, 2);
>
>     // Определить максимальную цену бычьей свечи находящейся перед текущей свечей
>     double prev_max = iHigh(NULL, 0, 2);
>
>     // Определить тип текущей свечи (бычья или медвежья)
>     bool bullish = price > prev_close;
>     bool bearish = price < prev_close;
>
>     // Проверить сигнал на покупку
>     if (bullish && price > MA && prev_close < prev_min)
>     {
>         // Открыть сделку на покупку
>         OrderSend(_Symbol, OP_BUY, LotSize, price, 3, 0, 0, "Paradox", 0, 0, Green);
>     }
>
>     // Проверить сигнал на продажу
>     if (bearish && price < MA && prev_close > prev_max)
>     {
>         // Открыть сделку на продажу
>         OrderSend(_Symbol, OP_SELL, LotSize, price, 3, 0, 0, "Paradox", 0, 0, Red);
>     }
> }
>
> //+------------------------------------------------------------------+
> //| Закрытие эксперта                                               |
> //+------------------------------------------------------------------+
> void OnDeinit(const int reason)
> {
>     // Ничего не делать
> }

Во-первых, Вы ошиблись веткой, Вам в "Ваши вопросы по языку MQL4" или в больницу ("Исправляем ошибки").
Во-вторых, как минимум надо изложить суть того, в чём надо помочь.

## WayToTheTop — 2023-02-24 14:15

> Цитата (ИванМН):
> 
>
> 
>
> Во-первых, Вы ошиблись веткой, Вам в "Ваши вопросы по языку MQL4" или в больницу ("Исправляем ошибки").
> Во-вторых, как минимум надо изложить суть того, в чём надо помочь.

> Цитата (ИванМН):
> 
>
> 
>
> Во-первых, Вы ошиблись веткой, Вам в "Ваши вопросы по языку MQL4" или в больницу ("Исправляем ошибки").
> Во-вторых, как минимум надо изложить суть того, в чём надо помочь.

Помогите как сделать чтобы этот робот работал? Это торговый робот которого сделал ChatGPT по ТЗ

## azmir — 2023-02-24 19:02

> Цитата (Genry_05):
> **azmir**, день добрый!
> Если добавить этот код в советник, то в результатах оптимизации появится еще один столбец и он покажет значение "Фактора восстановления" .

Уже добавил, действительно полезная функция , **СПАСИБО БОЛЬШОЕ**

## azmir — 2023-03-01 19:07

**Обновления**

## NewYork — 2023-03-04 23:19

Первые тесты...
AUDNZD
M15
2018-2023
депо 10000

## megapont — 2023-03-04 23:32

> Цитата (NewYork):
> Первые тесты...
> AUDNZD
> M15
> 2018-2023
> депо 10000

ну все, можно продавать! :)

## NewYork — 2023-03-04 23:55

> Цитата (megapont):
> ну все, можно продавать! :)

рано... надо еще кучу тестов провести. 
хотя в таком виде можно и продать.

## Genry_05 — 2023-03-05 00:42

> Цитата (NewYork):
> рано... надо еще кучу тестов провести.

**azmir**, день добрый.
"Tma Lock_M5.ex4"
на хаяйх - бай, на лоу - селл 
так задумано?

## NewYork — 2023-03-05 00:44

> Цитата (Genry_05):
> **azmir**, день добрый.
> "Tma Lock_M5.ex4"
> на хаяйх - бай, на лоу - селл
> так задумано?

Я как бы не **Azmir**

## Genry_05 — 2023-03-05 01:00

> Цитата (NewYork):
> Я как бы не **Azmir**

так это про кучу тестов ;)
один из них

## NewYork — 2023-03-05 01:11

> Цитата (Genry_05):
> так это про кучу тестов ;)
> один из них

Тут много вариантов. Например, шагами 0.01 с множителем 1 я уже отмахал от шага 1 до 30, и самый лучший был 8.
Можно конечно поставить на оптимизацию, но она как известно дает результаты 50/50, т.е. если даст лот 0.3, то надо ставить 0.15 и не выше. Поэтому лучше в ручную.

## megapont — 2023-03-05 01:13

а почему у совы тренда на графике нет?
только покупки нужны или только продажи. вы чего, первый день на форексе что ли? :LOL:
по тренду зарабатывает против тренда сливает, это же очевидно.

## NewYork — 2023-03-05 01:17

> Цитата (megapont):
> а почему у совы тренда на графике нет?
> только покупки нужны или только продажи. вы чего, первый день на форексе что ли? :LOL:
> по тренду зарабатывает против тренда сливает, это же очевидно.

Можно поподробнее?

## azmir — 2023-03-05 06:19

> Цитата (Genry_05):
> **azmir**, день добрый.
> "Tma Lock_M5.ex4"
> на хаяйх - бай, на лоу - селл
> так задумано?

**TMA Lock** задумано так, Если цены выше канала, Buy если ниже канала Sell, и вместо усреднение используется Пирамидинг (*обратное усреднение*)) допустим когда цена выше Влинии и открылся ордер Buy и но не достигнув указанного профита цена развернулся в этом случае когда цена будет ниже канала откроется ордер Sell *(локируется)* а дальше уже включается пирамидинг, то есть будет усредняться не против тренда а по тренду.)) Таким образом сова всегда будет плюсе когда тренд. И не важно куда идет тренд вверх или вниз, лишь  бы цена не топтался в одном месте образуя пилу)) *Главное правильно канал TMA что бы фильтровать флет.*
PS. Другие совы наоборот  торгует отбой по TMA  и использует усреднение что не очень любят безоткатное движение.

## azmir — 2023-03-05 06:34

> Цитата (megapont):
> ну все, можно продавать! :)

Нееет уж .  :D:D:D У нас  уже есть один "Высокоуважаемый" человек который продает сов показав результаты из тестера. Нам его хватает. Не хочу быть вторым. Ни кому не рекомендую покупать сов без мониторинга как минимум на 6 мес.

---

Следующая страница: https://forexsystemru.com/threads/91401/page-6
