Автор |
Сообщение |
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
Хочу реализовать звуковую сигнализацию при пересечении цены (по закрытию) с руками нарисованной линией(назвал 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
|
Правильно так:
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
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
Рано обрадовался, почему то не работает. Проверял на таком коде
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
|
Вообще никогда не болел рисованием на графике цен, так как назвать это системной торговлей язык не поворачивается - каждый человек по-своему проведет тренд на одинаковом графике, уж очень это субъективно.
В хелпе есть описалово с примером, может поможет:
http://www.amibroker.com/guide/h_studies.html |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Чтото постоянно у людей проблемы с AlertIf.
А сам я его ни разу не использовал. Несколько раз пробовал, вроде работало... Но понемногу.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
Действительно глючная формула.
Сначала тестил
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
|
Я лично 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
|
Отмучился с 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 );
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|