Там забиваешь в переменную какой флет в пунктах вас интересует на протяжении всей истории, и он выдает самый длинный флет в указанных количествах пунктах, когда и сколько он продолжался.
Rayder69: Там забиваешь в переменную какой флет в пунктах вас интересует на протяжении всей истории, и он выдает самый длинный флет в указанных количествах пунктах, когда и сколько он продолжался.
Ошибка: Скрипт не может работать на таком графике.
возможно исправить? и осмелюсь просить внести в переменные временной интервал, на котором он ищет флет
//////////////////////////////////////////////////////////////////////// ПОИСК САМОГО ДЛИННОГО ФЛЕТА ПО ВРЕМЕНИ +111.mq4 ////////////////////////////////////////////////////////////////////////
#property show_inputs
externint ПУНКТЫ=300;
extern datetime НАЧАЛО=D'2010.9.3';
extern datetime КОНЕЦ=D'2010.1.1';
//----------Переменные для вывода данных-------------- int FBars, //кол-во баров в коридоре
SiftBars; //индекс бараdouble PriceMin, //минимум коридора
PriceMax; //максимум коридора//----------------------------------------------------int init()
{
НАЧАЛО=iBarShift(0,0,НАЧАЛО);
КОНЕЦ=iBarShift(0,0,КОНЕЦ);
}
//----------------------------------------------------int start()
{
int i,n,D,ST,Bar;
//----
Alert("*********************");
int Shift_Min=iLowest(Symbol(),0,MODE_LOW,Bars,0); //Находим индекс минимального бараint Shift_Max=iHighest(Symbol(),0,MODE_HIGH,Bars,0); //Находим индекс максимального бараdouble Min=iLow(Symbol(),0,Shift_Min); //Находим минимум на графикеdouble Max=iHigh(Symbol(),0,Shift_Max); //Нходим максимум на графикеdouble Z=(Max-Min)/Point; //Растояние в пунктах от минимума до максимума на всем графикеdouble W=Z-ПУНКТЫ; //Переменная W нужна для ограничения бесполезных циклов по ценам ось(Y) //-------------------------------------------------------- for (i=0;i<=W;i++)//Цикл по ценам ось(Y)
{
ST=0;
for(n=НАЧАЛО;n<=КОНЕЦ&&n<Bars;n++)//Цикл по барам ось(X)
{
if(Low[n]>Min && High[n]<Min+ПУНКТЫ*Point)
{
if(ST==0)
{
Bar=n;
}
ST++;
}else
{
if(FBars<ST)
{
FBars=ST; //Сохраним кол-во баров в коридоре
PriceMin=Min; //Сохраним минимум коридора
PriceMax=Min+ПУНКТЫ*Point; //Сохраним максимум коридора
SiftBars=Bar; //Сохраним индекс бара
ST=0; //Обнуляем счетчик
}else
{
ST=0; //Обнуляем счетчик
}
}
}
Min+=1*Point; //Сдвигаем коридор на один пункт вверх
}
//--------------------- ВЫВОД ДАННЫХ --------------------
ObjectDelete("q9w8e5");
ObjectCreate("q9w8e5",OBJ_RECTANGLE,0,Time[SiftBars],PriceMin,Time[SiftBars+FBars],PriceMax);
datetime Нач=Time[SiftBars+FBars];
datetime Кон=Time[SiftBars];
Alert("Самый длинны флет в ",ПУНКТЫ," пунктов был с ",TimeDay(Нач),".",TimeMonth(Нач),".",TimeYear(Нач)," ",TimeHour(Нач),":",TimeMinute(Нач),
" по ",TimeDay(Кон),".",TimeMonth(Кон),".",TimeYear(Кон)," ",TimeHour(Кон),":",TimeMinute(Кон)," Цена : MAX = ",PriceMax," MIN = ",PriceMin,
" Кол-во баров в коридоре = ",FBars," :)");
return(0);
}
//+------------------------------------------------------------------+
Если Вы хотите использовать скрипт для оценки работоспособности лавиноподобных советников, то это годится только для классической лавины со стационарными каналами. Если используются нестационарные каналы, то в этом случае наибольшую опасность создают расходящиеся треугольники.
khorosh: Если Вы хотите использовать скрипт для оценки работоспособности лавиноподобных советников, то это годится только для классической лавины со стационарными каналами. Если используются нестационарные каналы, то в этом случае наибольшую опасность создают расходящиеся треугольники.
стационарные- это канал с двумя параллельными границами?
Вот такой скрипт, уж не помню где и когда отыскал.
Может кому пригодится!?
что он делает?
спасибо
Там забиваешь в переменную какой флет в пунктах вас интересует на протяжении всей истории, и он выдает самый длинный флет в указанных количествах пунктах, когда и сколько он продолжался.
Ошибка: Скрипт не может работать на таком графике.
Что не так делаю?
он не работает на пятизнаке
возможно исправить? и осмелюсь просить внести в переменные временной интервал, на котором он ищет флет
возможно исправить? и осмелюсь просить внести в переменные временной интервал, на котором он ищет флет
Если Вы хотите использовать скрипт для оценки работоспособности лавиноподобных советников, то это годится только для классической лавины со стационарными каналами. Если используются нестационарные каналы, то в этом случае наибольшую опасность создают расходящиеся треугольники.