Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 709
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
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);
}
А кто такой в Вашем коде Low?
Low - Массив содержит цены Low от 0 до do
А где это видно? Массив поставьте внутрь Вашей функции. Переменную l инициализируйте "-1". И вообще, пользуйтесь, пожалуйста Стилизатором - Ваш код трудно читать. Также Вы возвращаете в любом случае что-то, даже если была ошибка. Это не есть хлрошо.
Добавлено: а зачем Вы ТАК сравниваете:
так Вы никогда не получите релультат.
//| Получим Lowest для заданного промежутка |
//+------------------------------------------------------------------+
double iLowest(string symbol,ENUM_TIMEFRAMES timeframe,int bands)
{
double Low[];
double result=-1;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,bands,Low);
if(copied==bands)
{
result=Low[ArrayMinimum(Low)];
}
return(result);
}
Владимир я думаю так будет универсальнее
//| Получим Lowest для заданного промежутка |
//+------------------------------------------------------------------+
double iLowest(
string symbol, // символ
int timeframe, // период
int count, // число элементов
int start // индекс
)
{
double Low[];
double result=-1;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,start,count,Low);
if(copied==start)
{
result=Low[ArrayMinimum(Low)];
}
return(result);
}
//| Получим Lowest для заданного промежутка |
//+------------------------------------------------------------------+
double iLowest(
string symbol, // символ
int timeframe, // период
int type, // идентификатор таймсерии
int count, // число элементов
int start // индекс
)
{
double Low[];
int copied=0.0;
double result=-1;
ArraySetAsSeries(Low,true);
if(type==PRICE_CLOSE)copied=CopyClose(symbol,timeframe,start,count,Low);
if(type==PRICE_OPEN)copied=CopyOpen(symbol,timeframe,start,count,Low);
if(type==PRICE_HIGH)copied=CopyHigh(symbol,timeframe,start,count,Low);
if(type==PRICE_LOW)copied=CopyLow(symbol,timeframe,start,count,Low);
if(copied==start)
{
result=Low[ArrayMinimum(Low)];
}
return(result);
}
//+------------------------------------------------------------------+
А где это видно? Массив поставьте внутрь Вашей функции. Переменную l инициализируйте "-1". И вообще, пользуйтесь, пожалуйста Стилизатором - Ваш код трудно читать. Также Вы возвращаете в любом случае что-то, даже если была ошибка. Это не есть хлрошо.
Спасибо!!!
Не могу понять как добавить стандартный класс трейлинг стопа к эксперту , покажите пример если не затруднит.
Пример: \MQL5\Experts\Examples\MACD\MACD Sample.mq5