Помогите Чайнику

 
Господа помогите…
Мне нужно написать формулу в МS 8
Вот её кусок:

If(C>O,((C-O)*2),0)

А теперь как сделать так чтоб она считала, например за 50 дней???

А то вариант:

If(Ref(C,-1)>Ref(O,-1),((Ref(C,-1) - Ref(O,-1))*2),0)
If(Ref(C,-2)>Ref(O,-2),((Ref(C,-2) - Ref(O,-2))*2),0)
If(Ref(C,-3)>Ref(O,-3),((Ref(C,-3) - Ref(O,-3))*2),0)
………………………………………………..
………………………………………………..
If(Ref(C,-50)>Ref(O,-50),((Ref(C,-50) - Ref(O,-50))*2),0)

Слишком длинный, неудобный и места не хватает((((((

Заранее огромное спасибо!!
 
что-то типа
for ( int i = -1; i > -50; i -- )
{ if(Ref(C,i)....) }


???

что такое МS 8 не знаю, точнее помочь не могу ;)

 
komposter спасибо, но это не работает (((((

А МS 8 - MetaStock 8 ))))

Помогите, очень надо!!!!!
 
komposter спасибо, но это не работает (((((
в смысле, конструкции for нет в языке? Если есть, чуть-чуть доделать, и будет работать, как миленькая ;)

А МS 8 - MetaStock 8 ))))
не пользуюсь =)
 
Господа помогите…
Мне нужно написать формулу в МS 8
Вот её кусок:
If(C>O,((C-O)*2),0)

Ты заранее ограничил круг тех кто тебе может помочь, ведь здесь знакомых с MQL гораздо больше чем тех кто знаком, и с МТ4, и с MS8. Хотя бы разъяснил что означают второй и третий параметр в условии (те что после запятых), а также назначение функции Ref (O,C я так понимаю значения опен клоз? а далее индексы баров?). Что касается второй части вопроса - то явно использование цикла тебе поможет.
наверняка как в фокс про, ексцеле если условие выполняется действие после первой запятой иначе - после второй? если правильно то будет так (приведенный код можно использовать в скрипте или советнике, для индикатора нужно будет цикл описать немного по-другому)
int cb; // от курент бар
int Range; // период за который ведется расчет
объявление переменной (допустим tmp) ;

for(cb=0;cb<Range;cb++)
{
    If( Ref(C,-1)>Ref(O,-1) )
    {
          tmp=((Ref(C,-1) - Ref(O,-1))*2);
    }
    else
    {
          tmp=0;
    }
}

если нужно хранить все 50 значений , и они будут потом использоаться , то их нужно либо в массив, либо в буфер (тоже массив), либо использовать 50 переменных, имена которых будут генерироваться и содержать индекс. Впрочем komposter написал тебе тоже самое, а я только "разжевал".

PS. если предположение насчет O,C верно, то вместо них будет так:
(C,-1) -> Close[1] (в коде вместо конкретной цифры ставишь cb) , соответственно
(O,-1) -> Open[1] ( - || -) , а с Ref придется уточнять иначе я никак ;) успехов

 
Ничего не понял, но всё равно всем спасибо))))))))

Попробую объяснить по другому))

Смысл формулы:

Рассматриваем дневную Японскую свеч.

If [Если] (C [закрытие] > O [открытие],[то](( C [закрытие] - O [открытие])*2),[в противном случае] 0[ничего не делать])

а,

Ref(O,-1) – цена открытия предыдущего дня, Ref(O,-2) – цена открытия два дня назад, Ref(O,-50) – цена открытия пятьдесят дней назад)))))))

Ref(С,-1) - цена закрытия предыдущего дня, и тд.))))


А в MetaStock 8 нет For :(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((


Вот так!!
 
А в MetaStock 8 нет For :(
а while есть?) или какой-нить другой оператор цикла?
И ещё не совсем понятно, что значит "ничего не делаем". А в первом случае - что делаем? Кроме подсчёта какого-то значения (C-O)*2)?

Хотя, это, наверное, специфика языка =)
Попробуй на других форумах, где есть специалисты по метастоку, а то мы тут и с МКЛ4 разобраться до конца не можем =)))
 
int cb; // от курент бар
int Range; // период за который ведется расчет
double tmp ;

for(cb=0;cb<Range;cb++)
{
    If( Close[cb]>Open[cb] )
    {
          tmp=((Close[cb]- Open[cb] )*2);
    }
    else
    {
          tmp=0;
    }
}

теперь осталось выяснить где это будет использоваться

И ещё не совсем понятно, что значит "ничего не делаем". А в первом случае - что делаем? Кроме подсчёта какого-то значения (C-O)*2)?
Наверняка если в эксперте, то оставляем все без изменений, а если в индикаторе, то емпти валуе пишем (предположения в моих постах оказались верными)

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