Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Прошу помощи по AlertIf Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
vadimal



Зарегистрирован: 02.02.2011
Сообщения: 78

СообщениеДобавлено: Пт Июн 24, 2011 3:44 pm Ответить с цитатой Вернуться к началу

Хочу реализовать звуковую сигнализацию при пересечении цены (по закрытию) с руками нарисованной линией(назвал qq). Код написал такой:
AlertIf( Cross( Close, Study( "qq", GetChartID()), "SOUND C:\\Windows\\Media\\Sounds\\BOOT-111-loud.wav", "Audio alert", 2 ) );
Формула с ошибкой "Too many arguments ". Что в формуле не так?
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пт Июн 24, 2011 4:27 pm Ответить с цитатой Вернуться к началу

Правильно так:
AlertIf( Cross( Close, Study( "qq", GetChartID())), "SOUND C:\\Windows\\Media\\Sounds\\BOOT-111-loud.wav", "Audio alert", 2 );
Посмотреть профиль Отправить личное сообщение ICQ Number
vadimal



Зарегистрирован: 02.02.2011
Сообщения: 78

СообщениеДобавлено: Пт Июн 24, 2011 4:40 pm Ответить с цитатой Вернуться к началу

Спасибо!
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
vadimal



Зарегистрирован: 02.02.2011
Сообщения: 78

СообщениеДобавлено: Пт Июн 24, 2011 5:07 pm Ответить с цитатой Вернуться к началу

Рано обрадовался, почему то не работает. Проверял на таком коде
AlertIf( Cross( EMA( Close, 1),EMA( Close, 2)), "SOUND C:\\Windows\\Media\\Sounds\\BOOT-111-loud.wav", "Audio alert", 2 );
- Работает нормально: пишет в alert output и подаёт звуковой сигнал.
Подскажите что не так сделал?
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пт Июн 24, 2011 10:23 pm Ответить с цитатой Вернуться к началу

Вообще никогда не болел рисованием на графике цен, так как назвать это системной торговлей язык не поворачивается - каждый человек по-своему проведет тренд на одинаковом графике, уж очень это субъективно.
В хелпе есть описалово с примером, может поможет:
http://www.amibroker.com/guide/h_studies.html
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Июн 25, 2011 8:38 am Ответить с цитатой Вернуться к началу

Чтото постоянно у людей проблемы с AlertIf.
А сам я его ни разу не использовал. Несколько раз пробовал, вроде работало... Но понемногу....

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vadimal



Зарегистрирован: 02.02.2011
Сообщения: 78

СообщениеДобавлено: Сб Июн 25, 2011 1:36 pm Ответить с цитатой Вернуться к началу

Спасибо! Буду пробовать.
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
vadimal



Зарегистрирован: 02.02.2011
Сообщения: 78

СообщениеДобавлено: Вт Июн 28, 2011 1:22 pm Ответить с цитатой Вернуться к началу

Действительно глючная формула.
Сначала тестил
Buy = Open > Study( "SU", GetChartID());
Sell= Open < Study( "SU", GetChartID());
AlertIf( Buy, "SOUND C:\\Windows\\Media\\Sounds\\BOOT-111-loud.wav", "Buy", 2 );
AlertIf( Sell, "SOUND C:\\Windows\\Media\\Sounds\\BOOT-111-loud.wav", "Sell", 2 );
Работало нормально минут 10. Решил что ура, ан нет. Перенёс линию вправо до баров(для проверки) и всё - песня кончилась.
Стабильно работает только
Buy = Open > 74;
Sell= Open < 74;
AlertIf( Buy, "SOUND C:\\Windows\\Media\\Sounds\\BOOT-111-loud.wav", "Buy", 2 );
AlertIf( Sell, "SOUND C:\\Windows\\Media\\Sounds\\BOOT-111-loud.wav", "Sell", 2 );
Да, вот в хелпе написано что последняя цыфра обозначает на сколько баров назад будет активен сигнал(если я правильно понял), в данном примере это "2". Так вот у меня постоянно на каждой минуте при тестировании с пересечением цены и линии были сигналы, а не только на два бара назад.
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Вт Июн 28, 2011 1:54 pm Ответить с цитатой Вернуться к началу

Я лично AlertIf использую в связке с обычными условными конструкциями If или IIf, в сам Алерт ставя 1:
Код:

if(condition)
   AlertIf( 1, "SOUND c:/WINDOWS/Media/tada.wav", "Длинная позиция",0,1+2+4+8);
Посмотреть профиль Отправить личное сообщение ICQ Number
MOAX



Зарегистрирован: 13.03.2011
Сообщения: 44

СообщениеДобавлено: Вт Июл 05, 2011 5:48 pm Ответить с цитатой Вернуться к началу

Отмучился с AlertIf(...)

Пришел к тому, что для звуковых алертов надо ставить Flags = 2 или Flags = 1 + 2 и какое нибудь значение type, лучше type = 0:


Код:
AlertIf( BOOLEAN_EXPRESSION, command, text, type = 0, flags = 1+2+4+8, lookback = 1 );

AlertIF( True, "SOUND C:\\Windows\\Media\\Ding.wav", "Audio alert", 0, 1+2 );
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen