artem:
Попробуйте подставлять цену в кастумный индикатор - Relative Strength Index.
Задача следующего характера: нужно найти цену при которой индикатор
RSI будет равен некоему исуомому значению.
Вот рабочий код.
//+------------------------------------------------------------------+
//| searchRSIvalue.mq4 |
//| nigilist |
//| nigilist_t@mail.ru |
//+------------------------------------------------------------------+
#property copyright "nigilist"
#property link "nigilist_t@mail.ru"
#property show_inputs
//внешние переменные<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
extern int RSIt = 21; //-период Relative Strength Index
extern int RSIv = 43; //-искомое значение Relative Strength Index
extern double RSIvslippage = 1; //-допустимое отклонение
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<START<<<START<<<START<<<START<<<START<<<START<<<START<<<START<<<<<<<<
int start()
{
int i;
double RSI;
for (i=0; i < Bars; i++)
{
RSI = iRSI(NULL, 0, RSIt, PRICE_CLOSE, i);
if (RSI < RSIv + RSIvslippage && RSI > RSIv - RSIvslippage)
{
Print ("RSI(",RSIt,") = ", RSIv, " на ", i, " баре");
i = Bars + 10; //флаг прекращения поиска
}
}
return(0);
}
//<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<<<<<<<<
nigilist:
Вот рабочий код.
Вот рабочий код.
//+------------------------------------------------------------------+ //| searchRSIvalue.mq4 | //| nigilist | //| nigilist_t@mail.ru | //+------------------------------------------------------------------+ #property copyright "nigilist" #property link "nigilist_t@mail.ru" #property show_inputs //внешние переменные<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< extern int RSIt = 21; //-период Relative Strength Index extern int RSIv = 43; //-искомое значение Relative Strength Index extern double RSIvslippage = 1; //-допустимое отклонение //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //<<<START<<<START<<<START<<<START<<<START<<<START<<<START<<<START<<<<<<<< int start() { int i; double RSI; for (i=0; i < Bars; i++) { RSI = iRSI(NULL, 0, RSIt, PRICE_CLOSE, i); if (RSI < RSIv + RSIvslippage && RSI > RSIv - RSIvslippage) { Print ("RSI(",RSIt,") = ", RSIv, " на ", i, " баре"); i = Bars + 10; //флаг прекращения поиска } } return(0); } //<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<<<<<<<<
artem писал (а): Спасибо за то что отозвался. У меня не компилируется,
ты у себя пробовал?
nigilist:
Вот рабочий код.
Вот рабочий код.
//+------------------------------------------------------------------+ //| searchRSIvalue.mq4 | //| nigilist | //| nigilist_t@mail.ru | //+------------------------------------------------------------------+ #property copyright "nigilist" #property link "nigilist_t@mail.ru" #property show_inputs //внешние переменные<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< extern int RSIt = 21; //-период Relative Strength Index extern int RSIv = 43; //-искомое значение Relative Strength Index extern double RSIvslippage = 1; //-допустимое отклонение //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //<<<START<<<START<<<START<<<START<<<START<<<START<<<START<<<START<<<<<<<< int start() { int i; double RSI; for (i=0; i < Bars; i++) { RSI = iRSI(NULL, 0, RSIt, PRICE_CLOSE, i); if (RSI < RSIv + RSIvslippage && RSI > RSIv - RSIvslippage) { Print ("RSI(",RSIt,") = ", RSIv, " на ", i, " баре"); i = Bars + 10; //флаг прекращения поиска } } return(0); } //<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<FINISH<<<<<<<<<<
artem, код nigilistа не выполнит твою задачу. он по истории ищет бар на котором РСИ==значению
по твоему коду - ты не задаешь ArraySetAsSeries для массива ExtBuffer4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Задача следующего характера: нужно найти цену при которой индикатор RSI будет равен некоему исуомому значению.
Например, индикатор RSI(7) равен 52,1761 при цене1,2041 нужно найти при какой цене он будет равен 37.3518.
Делаю следующее:
int start()
{
int i;
for(i=0;i<Bars;i++)ExtBuffer4[i]=Close[i];
for(i=0;i<Bars;i++)
{
ExtBuffer4[0]=ExtBuffer4[0]-Point;
if(iRSIOnArray(ExtBuffer4,0,7,0)<20)return(0);
Alert(iRSIOnArray(ExtBuffer4,0,7,0));
}
return(0);
}
показывает все время одну цену.Складывается такое ощущение что iRSIonArray при первом вызове делает пересчет а потом не хочет.
Кто может помочь решить задачу отзовитесь. Можно на мыло Artem777@obninsk. com