Подскажите как можно отследить пробой наклонной.
На данный момент пробовала сделать так:
Отнять от верхней точки нижнюю точку и разделить
Однако в некоторых местах высота больше, где-то меньше...
А по сути (по задумке) нужно отследить пробитие наклонной.
Однако пока моих знаний не достаточно.
Наклонная рисуется графически.
Но это на стадии разработке, возможно нужно вообще иначе, поэтому и прошу совета, так как пока даже не понимаю в каком направлении мыслить.
Была задумка, нарисовать буферную наклонную, но не получается.
Может быть подскажите как лучше это сделать (отследить пробитие или нарисовать буферную наклонную)
при установке линии, цена в буфере = откуда_ведём. далее на каждом следующем баре цена=цена_на_пред_баре + delta
Подскажите как можно отследить пробой наклонной.
по сути нужно отследить пробитие наклонной.
Однако пока моих знаний не достаточно.
Может быть подскажите как лучше это сделать (отследить пробитие или нарисовать буферную наклонную)
Как-то так можно отследить пробитие линии
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick(void) { // Условие пересечения линии вверх текущей ценой открытия double PriceBar0 = PriceLine(TimeTochka1, PriceTochka1, TimeTochka2, PriceTochka2, 0); double PriceBar1 = PriceLine(TimeTochka1, PriceTochka1, TimeTochka2, PriceTochka2, 1); bool SignalBuy=false; if(PriceBar0>0 && PriceBar1>0 && Open[0]>PriceBar0 && Open[1]<=PriceBar1) SignalBuy=true; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double PriceLine(datetime t1, double p1, datetime t2, double p2, int bar){ double kKoef = 0.0, price=0.0; double bKoef = Koeff(iBarShift(NULL,0,t1), p1, iBarShift(NULL,0,t2), p2, kKoef); if(bKoef == DBL_MAX) return; // Цена линии на N-баре (bar=0 текущий бар, =1 предыдущий бар) int BarIndex = bar; price=kKoef*BarIndex+bKoef; return(price);} //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double Koeff(int x1, double y1, int x2, double y2, double &kKoef){ if (x1==x2) return(DBL_MAX); kKoef=(y2-y1)/(x2-x1); return(y1 - kKoef * x1);} //+------------------------------------------------------------------+
Подскажите как можно отследить пробой наклонной.
На данный момент пробовала сделать так:
Отнять от верхней точки нижнюю точку и разделить
Однако в некоторых местах высота больше, где-то меньше...
А по сути (по задумке) нужно отследить пробитие наклонной.
Однако пока моих знаний не достаточно.
Наклонная рисуется графически.
Но это на стадии разработке, возможно нужно вообще иначе, поэтому и прошу совета, так как пока даже не понимаю в каком направлении мыслить.
Была задумка, нарисовать буферную наклонную, но не получается.
Может быть подскажите как лучше это сделать (отследить пробитие или нарисовать буферную наклонную)
Посмотрите этот код. Там всё есть.

Вот так можно в МТ4:
// Поиск точки пробоя линии на графике void fLineBreak(string Name // Имя линии ,int& Bar1,double& Price1 // Точка начала ,int& Bar2,double& Price2 // Точка касания ,int& Bar3,double& Price3 // Точка пробоя ,double& Speed){ // Наклон линии datetime Time1, Time2; int Type; Bar1=LastBar-1; Bar2=LastBar-1; Bar3=LastBar-1; Price1=0; Price2=0; Price3=0; Speed=0; if( ObjectFind(Name)!=0 ){ if( РежимОтладки ) Print("*** "+Name+" не найден"); return; } Time1=ObjectGet(Name,OBJPROP_TIME1); Bar1=iBarShift(NULL,0,Time1); Price1=ObjectGet(Name,OBJPROP_PRICE1); Type=ObjectType(Name); switch( Type ){ case OBJ_TREND : // Наклонная линия(основной тип) Time2=ObjectGet(Name,OBJPROP_TIME2); Bar2=iBarShift(NULL,0,Time2); Price2=ObjectGet(Name,OBJPROP_PRICE2); break; case OBJ_HLINE : // Горизонтальная линия Bar2=LastBar; Time2=Time[Bar2]; Price2=Price1; break; default : // Необрабатываемый объект Print("*** "+Name+" недопустимый тип: "+Type); return; } if( Bar1<=Bar2 || Bar1<=LastBar || Bar2<LastBar || Price1<Zero || Price2<Zero ){ if( РежимОтладки ) Print("*** "+Name+" не обработан, параметры: " +DoubleToStr(Price1,Digits)+" ("+Bar1+"/"+TimeToStr(Time1)+")..." +DoubleToStr(Price2,Digits)+" ("+Bar2+"/"+TimeToStr(Time2)+")"); return; } Speed=fSpeed(Name,Bar1,Price1,Bar2,Price2); // "3"-первый слева пробой на интервале "2" ... LastBar fBreakPoint(Name,Bar2,Price2,Speed,LastBar,Bar3,Price3); return; }

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите как можно отследить пробой наклонной.

На данный момент пробовала сделать так:
Отнять от верхней точки нижнюю точку и разделить
Однако в некоторых местах высота больше, где-то меньше...
А по сути (по задумке) нужно отследить пробитие наклонной.
Однако пока моих знаний не достаточно.
Наклонная рисуется графически.
Но это на стадии разработке, возможно нужно вообще иначе, поэтому и прошу совета, так как пока даже не понимаю в каком направлении мыслить.
Была задумка, нарисовать буферную наклонную, но не получается.
Может быть подскажите как лучше это сделать (отследить пробитие или нарисовать буферную наклонную)