| Price Action на MQL |
//+------------------------Доджи------------------------------------------+
bool Dodge()
{
bool result;
if(Open[1]==Close[1])
{
if(High[1]>=Open[1] && Low[1]<=Close[1])
result=true;
}
else result=false;
return(result);
}
//+--------------------Пинбар вверх--------------------------------------------+
bool Pinbar_Hight()
{
int Pin,hvost;
bool Pinbar;
if(Open[1]<Close[1])
{
telo=Close[1]-Open[1]/Point;
Pin=High[1]-Close[1]/Point;
hvost=Open[1]-Low[1]/Point;
if(Pin>telo*2 && hvost<Pin/2)
{
if(Low[2]<Open[1] && High[2]>Close[1])
Pinbar=true;
}
else Pinbar=false;
}
if(Open[1]>Close[1])
{
telo=Open[1]-Close[1]/Point;
Pin=High[1]-Open[1]/Point;
hvost=Close[1]-Low[1]/Point;
if(Pin>telo*2 && hvost<Pin/2)
{
if(High[2]>Open[1] && Low[2]<Close[1])
Pinbar=true;
}
else Pinbar=false;
}
return(Pinbar);
}
//+--------------------Пинбар вниз--------------------------------------------+
bool Pinbar_Low()
{
int Pin,hvost;
bool Pinbar;
if(Open[1]<Close[1])
{
telo=Close[1]-Open[1]/Point;
Pin=Open[1]-Low[1]/Point;
hvost=High[1]-Close[1]/Point;
if(Pin>telo*2 && hvost<Pin/2)
{
if(High[2]>Close[1] && Low[2]<Open[1])
Pinbar=true;
}
else Pinbar=false;
}
if(Open[1]>Close[1])
{
telo=Open[1]-Close[1]/Point;
Pin=Close[1]-Low[1]/Point;
hvost=High[1]-Open[1]/Point;
if(Pin>telo*2 && hvost<Pin/2)
{
if(High[2]>Open[1] && Low[2]<Close[1])
Pinbar=true;
}
else Pinbar=false;
}
return(Pinbar);
}
31 октября 2014
|
01 мая 2015
|
Комментарии (8)
35 AM2 Сообщений: 16665 - Андрей
3 Внутренний бар. Бар, ценовой диапазон которого, от хая до лоя, не выходит за ценовой диапазон пред идущей (материнской) свечи.
написал интовую функцию которая возвращает либо бычий паттерн либо медвежий, если паттерн не состоялся возвращает 0
<code>//+---------------------Внутрений бар------------------------------------+ int Inside_Bar() { int In_bar=0; // Переменная в которую будем записывать тип внутреннего бара // присвоим 1 если паттерн бычий, присвоим 2 если паттерн медвежий. // вернем 0 если паттерн не состоялся. // Проверим направление материнской свечи int mat_buch=0; // Бычая свеча int mat_med=0; // Медвежья свеча if (iOpen(Symbol(),0,2)>iClose(Symbol(),0,2)) mat_med++; if (iOpen(Symbol(),0,2)<iClose(Symbol(),0,2)) mat_buch++; // Проверяем направление внутреннего бара int in_buch=0; // Бычий бар int in_med =0; // Медвежий бар if (iOpen(Symbol(),0,1)>iClose(Symbol(),0,1)) in_med++; if (iOpen(Symbol(),0,1)<iClose(Symbol(),0,1)) in_buch++; // Бычий сетап : Материнская свеча - медвежья, внутренний бар - бычий if(mat_med>0 && in_buch>0) { // проверим ценовой дипазон внутреннего бара, что б он не выходил за ценовой диапазон // материнской свечи и присвоим переменной In_bar значение 1 if(iHigh(Symbol(),0,1)<=iHigh(Symbol(),0,2) && iLow(Symbol(),0,1)>=iLow(Symbol(),0,2))In_bar=1; } // Медвежий сетап : Материнская свеча - Бычья, внутренний бар - Медвежий if(mat_buch>0 && in_med>0) { // проверим ценовой дипазон внутреннего бара, что б он не выходил за ценовой диапазон // материнской свечи и присвоим переменной In_bar значение 2 if(iHigh(Symbol(),0,1)<=iHigh(Symbol(),0,2) && iLow(Symbol(),0,1)>=iLow(Symbol(),0,2))In_bar=2; } return(In_bar); }</code>Редактирован: 9 ноября 2014, 00:1412 levs01 Автор Сообщений: 37 - Алексей
По аналогии с внутренним баром написал интовую функцию
<code> //+-----------Модель поглащения---------------------------------------------+ int Poglashenie() { int Pogl=0;/* Переменная в которую будем записывать тип модели поглащения присвоим 1 если паттерн бычий, присвоим 2 если паттерн медвежий. вернем 0 если паттерн не состоялся.*/ // Проверим направление материнской свечи int mat_buch=0; // Бычая свеча int mat_med=0; // Медвежья свеча if (iOpen(Symbol(),0,2)>iClose(Symbol(),0,2)) mat_med++; if (iOpen(Symbol(),0,2)<iClose(Symbol(),0,2)) mat_buch++; // Проверяем направление сигнальной свечи int in_buch=0; // Бычий бар int in_med =0; // Медвежий бар if (iOpen(Symbol(),0,1)>iClose(Symbol(),0,1)) in_med++; if (iOpen(Symbol(),0,1)<iClose(Symbol(),0,1)) in_buch++; // Бычий сетап : Материнская свеча - меньше сигнальной, сигнальная свеча - бычья if(in_buch>0) { /* Проверяем ценовой диапозон материнской свечи, чтоб он не выходил за ценовой диапазон сигнальной свечи и присваеваем переменной Pogl значение 1*/ if(iHigh(Symbol(),0,2)<iHigh(Symbol(),0,1) && iLow(Symbol(),0,2)>iLow(Symbol(),0,1))Pogl=1; } // Медвежий сетап : Материнская свеча - меньше сигнальной, сигнальная свеча - Медвежья if(in_med>0) { /* проверим ценовой дипазон материнской свечи, что б он не выходил за ценовой диапазон сигнальной свечи и присвоим переменной Pogl значение 2*/ if(iHigh(Symbol(),0,2)<iHigh(Symbol(),0,1) && iLow(Symbol(),0,2)>iLow(Symbol(),0,1))Pogl=2; } return(Pogl); } </code>Ну и вот чего показал тестер с этим паттерном:
тестил EURUSD D1 очень быстро, впрочем как и писал сову.
Вот советник, заработал на D1. В любом случае нужны подтверждения на вход (индикаторы, лини поддержки и сопративления).
Редактирован: 13 ноября 2014, 00:26
12 levs01 Автор Сообщений: 37 - Алексей
4 hinin Сообщений: 88
ГЭП — разрыв цены между открытием текущей свечи и закрытием пред идущей.
По правилам паттерна ГЭПом можно считать разрыв цены от 20 пунктов и более.
Функция на MQL простенькая.
Чуть позже выложу код советника.
12 levs01 Автор Сообщений: 37 - Алексей
Результаты не фонтан, в умелых руках может и что-нибудь получится.
Желаю удачи!!!
12 levs01 Автор Сообщений: 37 - Алексей
На продажу добавляем
на покупку
Хуже этому советнику уже не будет, за-то избавим его от ошибок модификации ордеров.
12 levs01 Автор Сообщений: 37 - Алексей
0 Strannik Сообщений: 685 - Алексей (деактивирован)
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий