Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 708
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
DoubleToString() используйте для вывода в печать.
Здравствуйте а правда, что тут можно заработать на форуме? Если да то не подскажите как?спасибо
Доброго времени, Задача: Найти H(max) или L(min) цены в заданном количестве рассматриваемых баров.
По тыркался, не могу назначить диапазон выбора, то есть куда вставить переменную(DO), для выбора интервала поиска
{
//--- объявление переменных
int n,UpperFractal_1;
//--- объявление массивов для записи значений буферов индикатора iFractal
double FractalUp[];
double UpFractal_1;
//--- сначала нужно записать в массивы значения буферов индиктора Fractal
//--- заполнение данными буфера
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp);
//--- индексация как в таймсериях
ArraySetAsSeries(FractalUp,true);
//--- далее используем оператор цикла for для поиска первого верхнего фрактала
for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++)
{
//--- если непустое значение, прерываем цикл
if(FractalUp[n]!=EMPTY_VALUE)
break;
}
//--- запишем ценовое значение первого фрактала в переменную
UpFractal_1=FractalUp[n];
//--- запишем индекс первого фрактала в переменную
UpperFractal_1=n;
return (UpFractal_1);
}
Доброго времени, Задача: Найти H(max) или L(min) цены в заданном количестве рассматриваемых баров.
По тыркался, не могу назначить диапазон выбора, то есть куда вставить переменную(DO), для выбора интервала поиска
{
//--- объявление переменных
int n,UpperFractal_1;
//--- объявление массивов для записи значений буферов индикатора iFractal
double FractalUp[];
double UpFractal_1;
//--- сначала нужно записать в массивы значения буферов индиктора Fractal
//--- заполнение данными буфера
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp);
//--- индексация как в таймсериях
ArraySetAsSeries(FractalUp,true);
//--- далее используем оператор цикла for для поиска первого верхнего фрактала
for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++)
{
//--- если непустое значение, прерываем цикл
if(FractalUp[n]!=EMPTY_VALUE)
break;
}
//--- запишем ценовое значение первого фрактала в переменную
UpFractal_1=FractalUp[n];
//--- запишем индекс первого фрактала в переменную
UpperFractal_1=n;
return (UpFractal_1);
}
Зачем через фракталы?
Сначала CopyHigh() для требуемого диапазона, а потом в массиве, в который скопирован диапазон, ищете max (ArrayMaximum()).
То же самое для min, но CopyLow() и ArrayMinimum()
Не пойму что не так, задача: найти мин значение на заданном интервале (index)
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
double low=0;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,index,Low);
if(copied>0 && index<copied) low=ArrayMinimum(Low);
return(low);
}
Не пойму что не так, задача: найти мин значение на заданном интервале (index)
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
double low=0;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,index,Low);
if(copied>0 && index<copied) low=ArrayMinimum(Low);
return(low);
}
ArrayMinimum возвращает ИНДЕКС элемента, значение которого самое минимальное. Нужно по индексу low теперь получить само значение из массива Low:
Low[low]
ArrayMinimum возвращает ИНДЕКС элемента, значение которого самое минимальное. Нужно по индексу low теперь получить само значение из массива Low:
Low[low]
Чет ничего...
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int do)
{
int low=0; double l=0;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,do,Low);
if(copied>0 && index<copied){ low=ArrayMinimum(Low);//ArrayMinimum(
l = Low[low];
}
return(l);
}
Чет ничего...
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
int low=0; double l=0;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,index,Low);
if(copied>0 && index<copied){ low=ArrayMinimum(Low);//ArrayMinimum(
l = Low[low];
}
return(l);
}