Кого интересует CandleCode?

 

Всем привет!

Прочитала интересную инфу (прикрепляю ее).  Написала функцию.  

Ошибок компайлер не выдает, а запуская в терминале пишет:

"invalid integer nuvber 2 for iSeries function".

Кто- то может подсказать причину?

Файлы:
candlecode.rar  125 kb
 
А это моя функция
Файлы:
 
liza:
А это моя функция

double iOpen( string symbol, int timeframe, int shift)

int timeframe, а у Вас extern string P = "PERIOD_D1"

Т.е. PERIOD_D1 etc - это не строковые переменные, а целые константы, соответственно во внешних параметрах надо указывать либо 1, 5, 15 и т.д., либо, для возможности перебора при оптимизации, целые знвчения от 0 до 9, а в советнике (в модуле init) писать case, в котором и выбирается конкретная константа.


Период графика может быть любым из следующих величин:

Константа Значение Описание
PERIOD_M1 1 1 минута
PERIOD_M5 5 5 минут
PERIOD_M15 15 15 минут
PERIOD_M30 30 30 минут
PERIOD_H1 60 1 час
PERIOD_H4 240 4 часа
PERIOD_D1 1440 1 день
PERIOD_W1 10080 1 неделя
PERIOD_MN1 43200 1 месяц
0 (ноль) 0 Период текущего графика

 

Cпасибо!!!

А как бы это использовать по эффективнее?

 
liza:

Cпасибо!!!

А как бы это использовать по эффективнее?

Я - как-то так

extern int     iPeriod  = 0;
int    ePeriod;

...
int init()  {
   switch(iPeriod)
   {
    case 0: ePeriod = 0; break;
    case 1: ePeriod = PERIOD_M1; break;
    case 2: ePeriod = PERIOD_M5; break;
    case 3: ePeriod = PERIOD_M15; break;
    case 4: ePeriod = PERIOD_M30; break;
    case 5: ePeriod = PERIOD_H1; break;
    case 6: ePeriod = PERIOD_H4; break;
    case 7: ePeriod = PERIOD_D1; break;
    case 8: ePeriod = PERIOD_W1; break;
    case 9: ePeriod = PERIOD_MN1; break;
    default: ePeriod = 0; break;
   }
   return(0);
}

int start() 
{
...
double hb0 = iOpen(Symbol(),ePeriod,i);
}

Или, чтобы минимизировать правку советника (уж больно много, причем не оправдано, вызовов iClose etc), написать вместо ePeriod - P, поменяв extern string на фрагмент выше.

Но это при условии, что будут перебираться таймфреймы. Иначе - зачем выность это во внешний параметр.

По этой же причине, я никогда не выношу во внешние параметры логические переменные. 1 и 0 вполне хватает.


 
liza:

Cпасибо!!!

А как бы это использовать по эффективнее?

Привет Лиза! давай знакомиться))

 

бегло просмотрел информацию, очень интересно, вот как это в торговле использовать. Неужто придется опять браться за дело

 
liza:

Всем привет!

Прочитала интересную инфу (прикрепляю ее). Написала функцию.

Ошибок компайлер не выдает, а запуская в терминале пишет:

"invalid integer nuvber 2 for iSeries function".

Кто- то может подсказать причину?

Посмотри тут 'Умная голова хорошо, две еще лучше'

 
 
Вообще-то у меня появилась идея написать скрипт - который будет выдавать статистику зависимости кода от предыдущей свечи.  А уже по этой статистике можно было бы и что-то создать!!!
 
liza:
Вообще-то у меня появилась идея написать скрипт - который будет выдавать статистику зависимости кода от предыдущей свечи. А уже по этой статистике можно было бы и что-то создать!!!

По одной последней мало, а вот по трём предыдущим - в самый раз.

Группы про три. Слева направо. Зеленый бар - вверх, красный - вниз. Куда пойдёт четвёртый? Это уже статистика.



И так далее.

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