MQL4 - automated forex trading   /  

Форум

Каким образом возможно осуществить перебор тайм-фреймов в советнике...

К списку тем Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
5006
Roman. 10.06.2010 11:17 

Всем доброго времени суток. Если сталкивались с подобным подскажите, какая существует возможная схема перебора  

тайм-фреймов в советнике для проведения его оптимизации (выбора наилучшего ТФ)  - допустим от Period_M5...  до ... Period_D1 -

 например, для определения уровня:  1. установки  пробоя максимума свечи на найденном (оптимальном) тайм - фрейме... 

2. расчета показаний индикатора на оптимальном ТФ : iМА, iMACD... и т.д. 

double PRICE = NormalizeDouble((iHigh (Symbol(),PERIOD_M1..D1) + indent_Hight*Point), Digits );// Цена установки отложенного ордера BuyStop
Как в советнике осуществить перебор возможных тайм-фреймов для оптимизации - свечки от минут до дней? 

Организуйте багтрекинг и техсаппорт для своей компании

В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем.


avatar
691
grell 10.06.2010 11:28 
Измеряйте его в минутах, например от одного до семи, и используйте условие перед вашей строчкой. 1-1, 2-5, 3-15, 4-30, 5-60, 6-240, 7-1440. Хотя, есть наверняка и проще варианты.

avatar
691
grell 10.06.2010 11:31 
extern int timeframe=6;
//////////////////
if(timeframe==1)int tf=1;
if(timeframe==2)    tf=5;
..........
if(timeframe==6)    tf=240;
if(timeframe==7)    tf=1440;
double PRICE = NormalizeDouble((iHigh (Symbol(),tf..D1) + indent_Hight*Point), Digits );
Приблизительно.

avatar
1632
DDFedor 10.06.2010 13:51 
// список таймфреймов в массиве для образования циклов по списку ТФ
int AllTF[] = {1,5,15,30,60,240,1440,10080,43200};
далее - цикл по массиву...

avatar
1160
Techno 10.06.2010 13:57 
int tf[7]={1,5,15,30,60,240,1440};

int start()
{
// code
double PRICE;
  for(int i=0;i<ArrayRange(tf,0);i++)
    {
    //code
    PRICE = NormalizeDouble((iHigh (Symbol(),tf[i]) + indent_Hight*Point),Digits);
    //code
    }
}


avatar
691
grell 10.06.2010 15:55 
Цикл не подойдет.

avatar
1160
Techno 10.06.2010 15:57 
grell:
Цикл не подойдет.
уже подошел, просто это часть кода.

avatar
691
grell 10.06.2010 16:05 
Можно поинтересоваться, а как при тестировании перебирать ТФ, чтобы выбрать оптимальный? Может я топикстартера неправильно понял?

avatar
1160
Techno 10.06.2010 16:07 
grell:
Можно поинтересоваться, а как при тестировании перебирать ТФ, чтобы выбрать оптимальный? Может я топикстартера неправильно понял?
скорее всего не правильно понял, нужно не выбирать, а перебирать с 1ой минуты до дневной

avatar
691
grell 10.06.2010 16:52 
А каким образом тогда будет происходить перебор при оптимизации?

avatar
1160
Techno 10.06.2010 17:18 
grell:
А каким образом тогда будет происходить перебор при оптимизации?
при оптимизации никаким :) это только цикл перебора) Для оптимизации нужно индекс массива сделать extern, и без цикла значение в требуемую строчку вводить
К списку тем  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий