Добрый день!
Например есть индикатор RSI и хотел бы проанализировать какие значения у него было в момент закрытия
последних 10 свечей (т.е. Close[1] ...........Close[n]).
Не могу понять как узначть значение RSI например в момент Close[5]
Подскажите, куда копать?
В цикле пробежать, и заполнить массив с ценами, после цикла прочесть массив в любом месте программы.
Добрый день!
Например есть индикатор RSI и хотел бы проанализировать какие значения у него было в момент закрытия
последних 10 свечей (т.е. Close[1] ...........Close[n]).
Не могу понять как узначть значение RSI например в момент Close[5]
Подскажите, куда копать?
Для МТ4:
iRSI(NULL,PERIOD_CURRENT,period_rsi,applied_price_rsi,5);
В цикле пробежать, и заполнить массив с ценами, после цикла прочесть массив в любом месте программы.
Вот функция кода что здесь не так?
Только здесь MA
bool NBarsClosesHigher()
{
int Quant_Bars = 11;
int count = 0;
for (int i = 1;i <= Quant_Bars; i++)
{
if (Close[0] >= Ma)
{
count ++;
}
}
if (count >= 8)
{
return(TRUE);
} else return(FALSE);
}
Для МТ4:
}
т.е. вот так?
}
т.е. вот так?
Нет, просто одной строчкой что я показал. Только брать от неё значение:
double rsi_5=iRSI(NULL,PERIOD_CURRENT,period_rsi,applied_price_rsi,5);
В переменной rsi_5 будет храниться значение RSI на текущем символе, на текущем периоде и баре №5. Или вы что-то иное хотели узнать?
уберите квадратные скобки от i
Нет, просто одной строчкой что я показал. Только брать от неё значение:
В переменной rsi_5 будет храниться значение RSI на текущем символе, на текущем периоде и баре №5. Или вы что-то иное хотели узнать?
Есть функция не могу понять в чем ошибка.
bool NBarsClosesHigher()
{
int Quant_Bars = 10;
int count = 0;
double PricesClosesTenBars [];
double PriceMiddleTenBars [];
for (int i = 1;i <= Quant_Bars; i++)
{
PricesClosesTenBars[i - 1] = Close[i];
PriceMiddleTenBars[i - 1] = iCustom(NULL,0,"TMA_Fair ",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,3,i);
}
for (int i = 0;i <= 9; i++)
{
if (PricesClosesTenBars[i] >= PriceMiddleTenBars[i])
{
count ++;
}
}
if (count >= 8)
{
return(TRUE);
} else return(FALSE);
}
Суть ее в том, что бы взять 10 свечей и сравнить значения Close[i] каждой по отношению к значению средней из TMA FAIR индикатора. (iCustom(NULL,0,"TMA_Fair ",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,3,i);)
После функия ставится в условии на проверку открытия ордера по TRUE/FALSE, но пишет что ошибка в терминале не могу разобарться никак, в чем проблема.
Есть функция не могу понять в чем ошибка.
double PricesClosesTenBars [];
double PriceMiddleTenBars [];
нет размера, т. е. он нулевой. Любое обращение к этим массивам приведет к выходу за его пределы.
Нужно выделить память для этих массивов. Либо в стеке (указать размер при объявлении), либо в оперативной памяти (использовать ArrayResize()).
Опять застрял, может у кого идеи есть, Ниже фу-ция постоянно возврщает false.
Почему так не пойму никак
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Например есть индикатор RSI и хотел бы проанализировать какие значения у него было в момент закрытия
последних 10 свечей (т.е. Close[1] ...........Close[n]).
Не могу понять как узначть значение RSI например в момент Close[5]
Подскажите, куда копать?