Покажите на примере как искать допустим цены закрытия, максимум, минимум за опред кол-во нами выбранное.
Например найти в массиве 2 значения:
1) Максимум за 30 баров
2) Ближайшие максимальное число после максимального
Обьясните плз.
2) После это слева или справа?
Покажите на примере как искать допустим цены закрытия, максимум, минимум за опред кол-во нами выбранное.
Например найти в массиве 2 значения:
1) Максимум за 30 баров
2) Ближайшие максимальное число после максимального
Обьясните плз.
Я вот таким пользуюсь, на выходе номера баров, а не цена, нужно по номеру бара узнавать цену, а можно и время. Может и не красиво, но работает
два Low: lkey1, lkey2
два High: hkey1, hkey2
{
int lkey1=-1, lkey2=-1, hkey1=-1, hkey2=-1;
int Range = 300; // Диапазон поиска
int Skip = 96; // С какого бара начинать
ENUM_TIMEFRAMES TFRange = PERIOD_CURRENT; // Таймфрейм поиска
LowHighRange(lkey1, lkey2, hkey1, hkey2, dSymbol, TFRange, Range, Skip);
if(lkey1<0 || lkey2<0 || hkey1<0 || hkey2<0) { Print("Not History. Search Bars= ",Range); return;}
double RangeLows_1= Low(dSymbol,TFRange,lkey1);
double RangeLows_2= Low(dSymbol,TFRange,lkey2);
double RangeHigh_1= High(dSymbol,TFRange,hkey1);
double RangeHigh_2= High(dSymbol,TFRange,hkey2);
}
//===============================================================================================
//------------------- Функция расчёта Двух High/Low для заданного промежутка -------------------+
//===============================================================================================
void LowHighRange(int &_lkey1, int &_lkey2, int &_hkey1, int &_hkey2,
string symb, ENUM_TIMEFRAMES timeframe, int ne=5, int skip=1) {
_lkey1=-1; _lkey2=-1; _hkey1=-1; _hkey2=-1;
ArraySetAsSeries(_Low,true);
ArraySetAsSeries(_High,true);
int lcopy=CopyLow(symb,timeframe,skip,ne,_Low);
int hcopy=CopyHigh(symb,timeframe,skip,ne,_High);
if(lcopy==ne && hcopy==ne) {
_low1=_Low[ArrayMinimum(_Low)];
_lkey1=ArrayMinimum(_Low)+skip;
_high1=_High[ArrayMaximum(_High)];
_hkey1=ArrayMaximum(_High)+skip;
for(int z=0;z<ne;z++) {
// Low
if((_Low[z]!=_low1 && _low2>_Low[z]) || _low2<0) {
_low2=_Low[z];
_lkey2=z+skip;
}
// High
if(_High[z]!=_high1 && _high2<_High[z]) {
_high2=_High[z];
_hkey2=z+skip;
}
}// for
}//if
}
2) После это слева или справа?
слева или справа? допстим макс за 30 баров 1,06500 а ближайшие закрытие свечи с такой же ценой только 1,06450 , значит берем его, берем то которое больше подходит.
Тогда можно скопировать в массив цены закрытия и применить ArraySort(num_array,WHOLE_ARRAY,0,MODE_DESCEND);
Первое значение и будет максимум, а второе, соответственно, искомое "Ближайшие максимальное число после максимального". Ну и последним будет как раз минмиум цены в заданном диапазоне баров.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Покажите на примере как искать допустим цены закрытия, максимум, минимум за опред кол-во нами выбранное.
Например найти в массиве 2 значения:
1) Максимум за 30 баров
2) Ближайшие максимальное число после максимального
Обьясните плз.