Алексей Боровков – 10 роботов для автоматической торговли на Форекс (страница 14)
return pattern1 || pattern2;
}
//+–+
//| Проверка медвежьего микро-паттерна |
//+–+
bool CheckBearishMicroPattern()
{
MqlRates rates[];
ArraySetAsSeries(rates, true);
if(CopyRates(_Symbol, PERIOD_M1, 0, 5, rates) < 5) return false;
// Паттерн: рост-рост-снижение (поглощение)
bool pattern1 = rates[3].close > rates[3].open && // Бычья свеча
rates[2].close > rates[2].open && // Бычья свеча
rates[1].close < rates[1].open && // Медвежья свеча
rates[1].close < rates[2].close; // Закрытие ниже предыдущего закрытия
// Паттерн: повешенный или доджи после роста
bool pattern2 = rates[2].close > rates[2].open && // Бычья свеча
(rates[1].high – rates[1].low) > 3 * (rates[1].open – rates[1].close) && // Длинная тень
rates[1].close < rates[1].open; // Закрытие ниже открытия
return pattern1 || pattern2;
}
//+–+
//| Обновление данных индикаторов |
//+–+
bool UpdateIndicators()
{
if(CopyBuffer(handleFastMA, 0, 0, 3, fastMA) <= 0) return false;
if(CopyBuffer(handleSlowMA, 0, 0, 3, slowMA) <= 0) return false;
if(CopyBuffer(handleMomentum, 0, 0, 3, momentum) <= 0) return false;
return true;
}
//+–+
//| Проверка спреда |
//+–+
bool CheckSpread()
{
MqlTick lastTick;
if(!SymbolInfoTick(_Symbol, lastTick)) return false;
double currentSpread = (lastTick.ask – lastTick.bid) / _Point;
return currentSpread <= MaxSpread_Pips;
}
//+–+
//| Проверка скорости тиков |
//+–+
bool CheckTickSpeed()
{
return tickSpeed >= MinTickSpeed;
}
//+–+
//| Проверка времени новостей |
//+–+
bool IsNewsTime()
{
// В реальной реализации здесь должен быть доступ к календарю новостей
// Это примерная заглушка
TimeToStruct(TimeCurrent(), currentTime);
// Пример: не торговать в 8:30-9:00 и 13:30-14:00 (важные релизы)
bool newsTime1 = (currentTime.hour == 8 && currentTime.min >= 30) ||
(currentTime.hour == 9 && currentTime.min == 0);
bool newsTime2 = (currentTime.hour == 13 && currentTime.min >= 30) ||
(currentTime.hour == 14 && currentTime.min == 0);
return newsTime1 || newsTime2;
}
//+–+
//| Проверка защиты по эквити |