Автор |
Сообщение |
SImple
Зарегистрирован: 31.12.2009
Сообщения: 31
|
Я пока только стартую, поэтому заранее прошу не судить строго... но прошу помочь =). Вобщем так, есть два индикатора, один типа измеряет волатильность, назовем "х", а второй, построенный от него, чтото типа боллинджера... топ пускай будет "у1", а бот - "y2"...
так вот я хочу чтобы сигнал на продажу был когда x больше y1, а покупка когда x меньше y2.
SELL = IIf ( "x" (15, 3) > "Y1" (15, 3) 15, 2), Cond1, Cond2 );
а как нужно записать Cond2 чтобы он ничего не делал?
Buy = IIf ( "x" (15, 3) < "y2", Cond3, Cond);
Через cross так вообще транзакций никаких нету.
Если поняли - плиз, помогите чайнику.
your help will be kindly appreciated. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ronski писал(а): |
так вот я хочу чтобы сигнал на продажу был когда x больше y1, а покупка когда x меньше y2.
SELL = IIf ( "x" (15, 3) > "Y1" (15, 3) 15, 2), Cond1, Cond2 );
а как нужно записать Cond2 чтобы он ничего не делал?
|
Можно так
Cond2 = 0;
SELL = IIf ( "x" (15, 3) > "Y1" ((15, 3) 15, 2), Cond1, Cond2 );
Но лучше и проще так
SELL = "x" (15, 3) > "Y1" ((15, 3) 15, 2); |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
tlt-vlad
Зарегистрирован: 19.01.2008
Сообщения: 162
Откуда: ... теперь Москва
|
А это так , для общего развития ... выписка из AmiHelp
....
Функция ''условий'' IIF()
Функция iif() предназначена для создания условий. Содержит в себе три параметра , как показано в примере .
dynamicrsi = IIf( Close > MA(C,10), RSI(9), RSI(14) );
Здесь каждый раз динамическому РСИ присваивается разное значение в зависимости от того, где находится КЛОУЗ по отношению к 10 периодному мувингу.
Дословно приведенный пример звучит так – если КЛОУЗ больше 10 пер. мувинга, то dynamicrsi равно значению РСИ с периодом 9. Если условие не выполняется dynamicrsi присваивается значение РСИ с периодом 14.
Следующий пример это пример с объемом.
volresult = IIf( Close > (High+Low)/2, Volume, -Volume );
Если КЛОУЗ больше средней цены тогда присваивается положительное значение объему, если наоборот тогда отрицательное.
Если требуется присвоить значение типа ''ВЕРНО'' или ''НЕВЕРНО''
Тогда можно обойтись следующей строкой.
result = RSI(14) > 70;
с функцией IIF() можно получить такой же результат, но длинна формулы будет больше.
result = IIf(RSI(14) > 70, 1, 0 );
Нельзя забывать что IIF() это функция и результатом ее действия возвращается значение, которое дальше присваивается переменной.
Нельзя так же забывать что эта функция, а не стандартные условия IF –THEN , что будут описаны ниже. Функция IIF() возвращает значение в массив той переменной, какую вы назначите.
Вот стандартная ошибка при использовании IIF() функции.
IIf( condition, result = 7, result = 9 ); // это не верно.
Вот правильно.
result = IIf( condition, 7, 9 );
/* 7 или 9 возвращается переменной в зависимости от выполнения условия*/
....
Удачи +)) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
SImple
Зарегистрирован: 31.12.2009
Сообщения: 31
|
Но лучше и проще так
SELL = "x" (15, 3) > "Y1" ((15, 3) 15, 2);[/quote]
Спасибо большое! Для меня как для человека никогда не сталкивавшегося с программированием подобные действия сложны очень) Но это же challenge) C Новым Годом! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
SImple
Зарегистрирован: 31.12.2009
Сообщения: 31
|
tlt-vlad писал(а): |
А это так , для общего развития ... выписка из AmiHelp
....
....
Удачи +)) |
Спасибо! Но если бы все было так просто - прочитал выписку и все понял ) Я бы не стал просить о помощи, верно? )
Kind regards |
|
|
Посмотреть профиль Отправить личное сообщение |
|
snowkam
Зарегистрирован: 12.07.2010
Сообщения: 62
|
Почему нельзя использовать IIF со строками
проимер
str1= iif( i >x ,"XXX", "YYY") ;
ВЫдает ошибку
Может синтаксис не такой? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Функция IIF возвращает массив, а стока в Ами может быть только константой, вот поэтому и ругается.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|