Коллеги,
как узнать, сколько раз часовые свечки тестили уровень ?
Пример тесте уровня и его "пробой"
Для начала надо узнать, как определять уровень.
уровень может быть любой. например,
double MaxPrice=NormalizeDouble(iHigh(Symbol(),TimeCandle,1)+Delta*Point,Digits);
уровень может быть любой. например,
double MaxPrice=NormalizeDouble(iHigh(Symbol(),TimeCandle,1)+Delta*Point,Digits);
Как понял по картинке входим после второго касания растущими свечами?
да, всё верно
да, всё верно
Примерно так:
extern int bar=50;//число баров для поиска extern int I=5; //индекс где произошло любое касание уровня больше или равен I extern int b1=5;//кол-во баров для поиска первой растущей и пересекающей "MaxPrice" свечи начиная от index //////////////////////////////////////////////////////////////////////////////////////////////////// int tiket=0; int index=0; double MaxPrice=NormalizeDouble(iHigh(Symbol(),TimeCandle,1)+Delta*Point,Digits); if (Close[0] > Open[0] && Close[0] > MaxPrice) { for (int x=1;x<=bar;x++) { if (High[x] > MaxPrice){index=x;break;}//получили индекс на котором было касание уровня } if (index >= I) { for (int y=index;y<=index+b1;y++)//ищем в диапазоне баров растущий бар, который пересекает уровень первый раз { if (Close[y] > Open[y] && Close[y] > MaxPrice){tiket=1;break;} } } } if (tiket==1) { //Ваш код }
Придумаете, как лучше находить напишите.
А вот так можно посчитать все свечи в заданном диапазоне, которые пересекают уровень
extern int bar=50;//число баров для поиска extern int T =7;//Кол-во свечей пересекающих уровень ////////////////////////////////////////////////////////////////////////////////////////////////////////// int k=0; double MaxPrice=NormalizeDouble(iHigh(Symbol(),TimeCandle,1)+Delta*Point,Digits); if (Close[0] > Open[0] && Close[0] > MaxPrice) { for (int x=1;x<=bar;x++) { if (High[x] > MaxPrice && Low[x] < MaxPrice){k=k+1;}//счетчик количества свечей пересекающих уровень } } if (k>=T) { //Ваш код }
Придумаете, как лучше находить напишите.
А вот так можно посчитать все свечи в заданном диапазоне, которые пересекают уровень
спасибо за помощь.. к сожалению, не удалось "прикрутить" функцию к своему советнику и проверить работоспособность.
число баров для поиска нужно считать от начала новой торговой сессии (H1) или от начала торговой недели (H4)
спасибо за помощь.. к сожалению, не удалось "прикрутить" функцию к своему советнику и проверить работоспособность.
число баров для поиска нужно считать от начала новой торговой сессии (H1) или от начала торговой недели (H4)
Вот так можно считать с начала дня:
extern int T =7;//Кол-во свечей пересекающих уровень //////////////////////////////////////////////////////////////////////////////// int k=0; double MaxPrice=NormalizeDouble(iHigh(Symbol(),TimeCandle,1)+Delta*Point,Digits); datetime TIME=iTime(NULL,PERIOD_D1,0); int bar =iBarShift(NULL,0,TIME); if (Close[0] > Open[0] && Close[0] > MaxPrice && Time[1] > TIME) { for (int x=1;x<=bar;x++) { if (High[x] > MaxPrice && Low[x] < MaxPrice){k=k+1;}//счетчик количества свечей пересекающих уровень } } if (k>=T) { //Ваш код }
Посчитать-то не проблемма. На самом деле проблема -а ЧТО ДЕЛАТЬ когда уровень явно многократно потроган и что-то назревает.
У меня пока тестятся два подхода -
1. Ничего не делать, т.е. просто блокировать отскок.
2. Напортив, уменьшать паузы и масштаб крайностей для отскоков с тем, что последний микроотскок совпадет по направлению с пробоем.
Интересно, но ни один пока не получил явного преимущества в тестах.
Посчитать-то не проблемма. На самом деле проблема -а ЧТО ДЕЛАТЬ когда уровень явно многократно потроган и что-то назревает.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Коллеги,
как узнать, сколько раз часовые свечки тестили уровень ?
Пример тесте уровня и его "пробой"