реклама
Бургер менюБургер меню

Алексей Боровков – 10 роботов для автоматической торговли на Форекс (страница 26)

18

if(iHigh(_Symbol, _Period, i) <= iHigh(_Symbol, _Period, i+j) ||

iHigh(_Symbol, _Period, i) <= iHigh(_Symbol, _Period, i-j))

{

isSwingHigh = false;

break;

}

}

if(isSwingHigh)

{

int size = ArraySize(highs);

ArrayResize(highs, size + 1);

ArrayResize(highTimes, size + 1);

highs[size] = iHigh(_Symbol, _Period, i);

highTimes[size] = iTime(_Symbol, _Period, i);

}

// Проверяем swing low

bool isSwingLow = true;

for(int j = 1; j <= lookback; j++)

{

if(iLow(_Symbol, _Period, i) >= iLow(_Symbol, _Period, i+j) ||

iLow(_Symbol, _Period, i) >= iLow(_Symbol, _Period, i-j))

{

isSwingLow = false;

break;

}

}

if(isSwingLow)

{

int size = ArraySize(lows);

ArrayResize(lows, size + 1);

ArrayResize(lowTimes, size + 1);

lows[size] = iLow(_Symbol, _Period, i);

lowTimes[size] = iTime(_Symbol, _Period, i);

}

}

}

//+–+

//| Фильтр паттернов по дополнительным критериям |

//+–+

bool ValidatePattern(const PatternPoints &pattern)

{

// 1. Проверяем объемы в точках разворота

// 2. Проверяем временные соотношения

// 3. Проверяем наличие дивергенций

// 4. Проверяем контекст рынка

// Пример: проверяем, что в точке D объем выше среднего

int barD = iBarShift(_Symbol, _Period, pattern.timeD);

long volumeD = iVolume(_Symbol, _Period, barD);

long avgVolume = iMA(_Symbol, _Period, 20, 0, MODE_SMA, VOLUME_TICK, barD);

if(volumeD < avgVolume * 0.8) return false;

// Проверяем временные соотношения

double timeAB = double(pattern.timeB – pattern.timeA);

double timeBC = double(pattern.timeC – pattern.timeB);

double timeCD = double(pattern.timeD – pattern.timeC);

// Время CD не должно быть меньше времени BC (для большинства паттернов)

if(timeCD < timeBC * 0.5) return false;

return true;

}

```

Ключевые особенности робота:

1. Алгоритм распознавания:

· Использует индикатор ZigZag для поиска экстремумов

· Проверяет соотношения Фибоначчи с заданным допуском

· Распознает 6 основных гармонических паттернов

2. Точность распознавания: