Советник TMA

azmir

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

WayToTheTop

Интересующийся
Попробуй отфильтровать через 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)
{
// Ничего не делать
}
 

azmir

Местный житель
Попробуй отфильтровать через pz swing, пока он красный, открываемся только от верхней границы тма(шортим), зеленый, от нижней(покупаем), таймфрейм часовой. Стоп, переворот в обратную сторону pz swing.
Почему-то индикатор не вшивается в сов через "ресурсы" ( успешно компилируется но при работе сова выдает ошибку что не видит индюка) по этому для работы советника инди долж находится в папке Indicators
 

Вложения

  • EA TMA+PZST.ex4
    79 КБ · Просмотры: 58
  • PZ_Swing_Trading.ex4
    20,3 КБ · Просмотры: 46
Последнее редактирование:

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, день добрый!
Если добавить этот код в советник, то в результатах оптимизации появится еще один столбец и он покажет значение "Фактора восстановления" .
1677225021102.png
Таким образом можно использовать и другие методы оценки качества торговли.
Это экономит уйму времени при анализе результатов оптимизации и выборе наилучшего варианта.
Подробности и варианты оценки здесь:
Успехов!
 
Последнее редактирование:

ИванМН

Местный знаток
Привет можете мне помочь с кодом

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

// --- Входные параметры эксперта
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

Интересующийся

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

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

Вложения

  • code.txt
    15,8 КБ · Просмотры: 35
Последнее редактирование:

azmir

Местный житель
azmir, день добрый!
Если добавить этот код в советник, то в результатах оптимизации появится еще один столбец и он покажет значение "Фактора восстановления" .
Уже добавил, действительно полезная функция , СПАСИБО БОЛЬШОЕ
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    183,1 КБ · Просмотры: 102

azmir

Местный житель
Обновления
 

Вложения

  • TMA v3.1_M5.ex4
    91,5 КБ · Просмотры: 69
  • TMA Plus_M5.ex4
    171,6 КБ · Просмотры: 87
  • TMA 3 Elder_M5.ex4
    130,9 КБ · Просмотры: 59
  • TMA 3 TF_M5.ex4
    120 КБ · Просмотры: 60
  • Tma Lock_M5.ex4
    49,6 КБ · Просмотры: 74

NewYork

Местный знаток
Первые тесты...
AUDNZD
M15
2018-2023
депо 10000
 

Вложения

  • AUDNSD M15 фильтры.png
    AUDNSD M15 фильтры.png
    68,7 КБ · Просмотры: 145
  • ТМА плюс.set
    4,2 КБ · Просмотры: 66

NewYork

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

megapont

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

NewYork

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

azmir

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

azmir

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