Советник TMA

  • Автор темы Автор темы azmir
  • Дата начала Дата начала

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
 

Вложения

Последнее редактирование:

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
    code.txt
    15,8 КБ · Просмотры: 38
Последнее редактирование:

azmir

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

Вложения

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

azmir

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

Вложения

NewYork

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

megapont

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

azmir

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

azmir

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