При появлении бокового тренда
ГЛАВА 5. РАЗЛИЧНЫЕ ПОДХОДЫ К ПОСТРОЕНИЮ СТРАТЕГИЙ НА РЫНКЕ FOREX
В настоящей главе изложены некоторые подходы к автоматизированному анализу условий открытия и закрытия позиций в информационно-торговой системе Metatrader, предложены алгоритмы, положенные в основу механических торговых систем, используемых на рынке Forex. Основой создания механических торговых систем, позволяющих автоматизировать процесс ведения торговли на валютном рынке, являются рассмотренные в предыдущей главе программные средства.
Визуализация линий поддержки и сопротивления
при появлении бокового тренда
Появление бокового тренда на графике цен некоторой валютной пары свидетельствует в большинстве случаев о том, что в ближайшее время возможны резкие изменения цены.
Характерным свойством наличия бокового тренда является небольшой диапазон изменения цен при выбранном временном интервале. Обозначим величину временного интервала n=CoridCandleAmount, определяемом количеством свечей в рассматриваемом графике
Величину диапазона изменения цен, характеризующую наличие бокового тренда обозначим в пунктах CoridWidth. Для вычисления величины диапазона изменения цен используем следующие выражения.
Минимальное значение вычислим по формуле для значения Low каждой свечи:
.
Максимальное значение вычислим по формуле для значения High каждой свечи:
.
Вычисление параметров коридора изменения цен, выполним, например, с помощью встроенных функций:
//вычислить параметры коридора
CoridPeriods=CoridCandleAmount;
CoridMax=High[Highest(MODE_HIGH, CoridCandleAmount,CoridPeriods)];
CoridMin=Low[Lowest(MODE_LOW, CoridCandleAmount,CoridPeriods)];
Пусть диапазон изменения цен мал, т.е. можно говорить о наличии бокового тренда. Визуально этот факт можно отобразить двумя горизонтальными красными линиями. Дополнительно рекомендуется вывести на экран сообщение alert, сопровождаемое звуковым сигналом.
В противном случае считаем, что диапазон изменения цен сравнительно большой, т.е. невозможно на исследуемом временном интервале выделить боковой тренд. Визуально этот факт можно отобразить двумя горизонтальными зелеными линиями.
if CoridMax - CoridMin <= CoridWidth*Point then
{ // коридор узкий
// нарусуем линии коридора КРАСНЫМ цветом
alert(Symbol," Появился боковой тренд ",CoridMax," ",CoridMin);
MoveObject("CorMax1",OBJ_HLINE,CurTime,CoridMax,
CurTime,CoridMax,Red,1,STYLE_SOLID);
MoveObject("CorMin1",OBJ_HLINE,CurTime,CoridMin,
CurTime,CoridMin,Red,1,STYLE_SOLID);
}
else
{ // коридор широкий
// нарусуем линии коридора Зеленым цветом
MoveObject("CorMax1",OBJ_HLINE,CurTime,CoridMax,
CurTime,CoridMax,LightGreen,1,STYLE_SOLID);
MoveObject("CorMin1",OBJ_HLINE,CurTime,CoridMin,
CurTime,CoridMin,LightGreen,1,STYLE_SOLID);
};
Определение наличия бокового тренда рекомендуется выполнять один раз для каждой новой завершенной свечки, т.е. после проверки:
vars:
PrevBarTime(0);
. . . . . . . .
if PrevBarTime <> Time then // обнаружена новая завершенная свечка
{
PrevBarTime = Time;
. . . . . . . .
};