[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 407

 
Сталкивался с подобной проблемой давно, как то, где то в этом коде бочина сидит, я не стал разбиратся пришлось писать собственный код. за давностью найти его сейчас не могу. посмотрите по форуму - было решение от Интежера - там правильно.
 
FAQ:
Сталкивался с подобной проблемой давно, как то, где то в этом коде бочина сидит, я не стал разбиратся пришлось писать собственный код. за давностью найти его сейчас не могу. посмотрите по форуму - было решение от Интежера - там правильно.

Спасибо
 

День добрый!

У меня, как у новечка есть такой вопрос к нижеприведённому коду будушего эксперта.
На тестировани на 5 таймфрэйме появляется ошибка 4054 - неправильное использование массива-таймсерии. Почему? Если я не могу использовать данные 15-минутного массива на 5-минутном, то зачем нужно в функции например iMA вообще указывать TimeFrame?

Данные на период тестирования имеются как и на M5 так и на M15.

Заранее благодарен за уделённое внимание!

extern int ma1_period = 015;
extern int ma1_type = 001;
extern int ma1_price = 000;
extern int ma1_shift = 000;
extern int ma1_timeframe = 015;
extern int ma2_period = 030;
extern int ma2_type = 001;
extern int ma2_price = 000;
extern int ma2_shift = 000;
extern int ma2_timeframe = 015;

double id[10,10];

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//---
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
for (int q=0;q<=5;q++)
{
id[0,q]=NormalizeDouble(iMA(NULL,ma1_timeframe,ma1_period,ma1_shift,ma1_type,ma1_price,q),Digits);
int err1=GetLastError();
id[1,q]=NormalizeDouble(iMA(NULL,ma2_timeframe,ma2_period,ma2_shift,ma2_type,ma2_price,q),Digits);
int err2=GetLastError();
}
//----
Comment("\n ma1 error: "+err1+" ma2 error: "+err2+"\n ma1: "+DoubleToStr(id[0,0],Digits)+" ma2: "+DoubleToStr(id[1,0],Digits));
//----
return(0);
}
//+------------------------------------------------------------------+

Файлы:
timeframe.mq4  2 kb
 

To wiioner

Прогнал Ваш эксперт по истории на 5-тиминутках за месяц в визуальном режиме - ни одной ошибки не высветилось.

 

здравствуйте, все!

1) как получить массив цен Close для х баров с другого инструмента (а не того, на котором висит индикатор) ?

2) как получить отношение синхронных цен Close для инструмента, на котором висит индикатор и другого инструмента, т.е. как поделить цены одного инструмента на цены другого для некоторого количества баров?

 
eternal2:

здравствуйте, все!

1) как получить массив цен Close для х баров с другого инструмента (а не того, на котором висит индикатор) ?

2) как получить отношение синхронных цен Close для инструмента, на котором висит индикатор и другого инструмента, т.е. как поделить цены одного инструмента на цены другого для некоторого количества баров?

вот так не получается...

double a, b;
    int i;
    double Ratio(double a, double b) 
    {a = iClose(NULL, PERIOD_H1, i);
     b = iClose("NZDUSD",PERIOD_H1,i);
     return (a/b);
    }
 
eternal2:

вот так не получается...


А ошибки пробовали обрабатывать.

Есть несколько условий.

1. Второй инструмент должен быть открыт в обзоре рынка. А еще лучше, если открыт график с нужным таймфреймом (хотя и не обязательно)

2. Ошибка 4066 должна отсутствовать

3. Надо предоставлять для обзора весь код, а не его кусочек, в котором по Вашему сидит проблема

 

Всем здравствуйте!!! Подскажите пожалуйста, как сделать так, чтобы советник совершал сделки в момент открытия каждого бара?

 
Ruslan1:

Всем здравствуйте!!! Подскажите пожалуйста, как сделать так, чтобы советник совершал сделки в момент открытия каждого бара?

Сделка состоит из 2х событий: открытия и закрытия. Давайте все условия.
 
Ruslan1:

1. Всем здравствуйте!!!

2. Подскажите пожалуйста, как сделать так, чтобы советник совершал сделки в момент открытия каждого бара?

1. Взаимно.

2. Учитесь юзать гугл!

Причина обращения: