Чем?
extern int nn=60; // интервал
.
.
double ss,sr,smax,smin,xx;
.
.
.
.
if(nn>Bars) nn=Bars-1;
smax=iHigh(NULL,0,nn);
smin=iLow(NULL,0,nn);
for(int i=nn; i>=1; i--)
{
ss=ss+iClose(NULL,0,i);
N=N+1.0;
if( smax<iHigh(NULL,0,i) ) smax=iHigh(NULL,0,i);
if( smin>iLow(NULL,0,i) ) smin=iLow(NULL,0,i);
}
sr=ss/N; // среднее
xx= smax-smin; // размах
Захотелось помочь. Скрипт:
#property show_inputs extern int MinPips = 100; extern datetime StartTime = D'2010.01.01'; extern datetime EndTime = D'2011.01.01'; #define MAX_POINTS 10000 // Заполняет массив размерами колен ЗигЗага с условием колена >= MinPips пунктов int GetZigZagData( int MinPips, datetime& StartTime, datetime& EndTime, int& Data[] ) { bool FlagUP = TRUE; int Pos = iBarShift(Symbol(), Period(), StartTime); int PosEnd = iBarShift(Symbol(), Period(), EndTime); int Max = High[Pos] / Point + 0.1; int Min = Low[Pos] / Point + 0.1; int Count = 0; int PriceHigh, PriceLow; StartTime = Time[Pos]; EndTime = Time[PosEnd]; ArrayResize(Data, MAX_POINTS); Pos--; while (Pos >= PosEnd) { PriceHigh = High[Pos] / Point + 0.1; PriceLow = Low[Pos] / Point + 0.1; if (FlagUP) { if (PriceHigh > Max) Max = PriceHigh; else if (Max - PriceLow >= MinPips) { Data[Count] = Max - Min; Count++; FlagUP = FALSE; Min = PriceLow; } } else { if (PriceLow < Min) Min = PriceLow; else if (PriceHigh - Min >= MinPips) { Data[Count] = Max - Min; Count++; FlagUP = TRUE; Max = PriceHigh; } } Pos--; } ArrayResize(Data, Count); return(Count); } void start() { int ZigZagData[]; int Amount = GetZigZagData(MinPips, StartTime, EndTime, ZigZagData); ArraySort(ZigZagData); Print("На интервале " + TimeToStr(StartTime) + " - " + TimeToStr(EndTime) + " максимальное безоткатное (> " + MinPips + " пунктов) движение " + ZigZagData[Amount - 1] + " пунктов."); return; }
hrenfx:
Захотелось помочь. Скрипт:
Большое спасибо! Лихо работаете.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не могу сообразить. Хочу написать скрипт, который рассчитывает максимальную величину движения цены без отката на n-пунктов(например 100) за определенный промежуток времени (к примеру за 2010 год).
Вроде задача простая, но что-то меня заклинило. Профи, помогите!