Автор |
Сообщение |
Rybak
Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука
|
Подскажите как написать код.
Нужно в сканере получить таблицу корреляций, но отфильтровать создаваемые колонки по индустриям. Т.е. сделать так, чтобы акции из другой индустрии не создавали свои (лишние) колонки.
Код от Томаша с моими поправками ниже:
Код: |
// read the list of symbols from Watchlist 0
symlist = CategoryGetSymbols( categoryWatchlist, 0 );
Industry1 = IndustryID() ; // получаем номер индустрии текушего символа
Filter = Status( "lastbarinrange" );
for ( i = 0; ( sym = StrExtract( symlist, i ) ) != ""; i++ )
{
// calculate correlation over 252 bars
Corr = Correlation( C, Foreign( sym, "C" ), 252 );
Clr = 32 + SelectedValue( Corr ) * 32;
// Industry2 = IndustryID() ; // получаем номер индустрии символа внутри цикла
// Filter = Industry2 == Industry1 ; // Добавлять колонки только при совпадении индустрии
// - Почему не работает ?
AddColumn( Corr, sym, 1.2, ColorHSB( 128 + Clr, 255, 255 ), ColorHSB( Clr, 255, 255 ) ) ;
}
SetSortColumns( 1 ); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вероятно ты не понял работу этого кода. Не могу понять что именно надо. Как ты хочешь его усовершенствовать? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Аааа. Кажись понял как хочешь.
Код: |
Industry1 = IndustryID() ; // получаем номер индустрии текушего символа
// read the list of symbols from Watchlist 0
symlist = CategoryGetSymbols( categoryIndustry, Industry1 );
// display only last bar from the Analysis range
Filter = Status( "lastbarinrange" );
// iterate through symbols
for ( i = 0; ( sym = StrExtract( symlist, i ) ) != ""; i++ )
{
// calculate correlation over 252 bars
Corr = Correlation( C, Foreign( sym, "C" ), 252 );
// set color dynamically based on correlation values
// and display the output in exploration column
Clr = 32 + SelectedValue( Corr ) * 32;
AddColumn( Corr, sym, 1.2,
ColorHSB( 128 + Clr, 255, 255 ),
ColorHSB( Clr, 255, 255 ) );
}
SetSortColumns( 1 );
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Rybak
Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука
|
Задача такая:
1. Допустим я в неким образом обнаружил акцию для торговли.
2. Мне нужно с помощью сканера (данного скрипта) найти акции из ЭТОЙ ЖЕ индустрии по полученной таблице (наилучшей) корреляции с бумагой из п.1
Если коротко - по сути это поиск пары в одной индустрии.
Иными словами
выглядеть это должно так - выбираем в сканере
В окне Apply to -*Current жмём Explore, результатом должна выплюнуться таблица корреляций бумаг из этой же индустрии.
Объяснил как мог, вроде должно быть понятно |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Угу. Я вроде так и понял и так и написал код. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Rybak
Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука
|
000 писал(а): |
Угу. Я вроде так и понял и так и написал код. |
Не понял...
Первый код от второго ничем не отличается
.................
Сорри -увидел |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну если не видишь отличий в коде, то поробуй его в Ами. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Rybak
Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука
|
000 писал(а): |
Ну если не видишь отличий в коде, то поробуй его в Ами. |
Амиброкер лучший!
Не, серьёзно - пересмотрел кучу программ - и не нашёл чего мне надо.
И сразу вспоминается удивительно гибкий Ами и наш замечательный ООО
Олег Спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Rybak
Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука
|
000 писал(а): |
Аааа. Кажись понял как хочешь.
Код: |
Industry1 = IndustryID() ; // получаем номер индустрии текушего символа
symlist = CategoryGetSymbols( categoryIndustry, Industry1 );
Filter = Status( "lastbarinrange" );
// iterate through symbols
for ( i = 0; ( sym = StrExtract( symlist, i ) ) != ""; i++ )
{
// calculate correlation over 252 bars
Corr = Correlation( C, Foreign( sym, "C" ), 252 );
Clr = 32 + SelectedValue( Corr ) * 32;
AddColumn( Corr, sym, 1.2,
ColorHSB( 128 + Clr, 255, 255 ),
ColorHSB( Clr, 255, 255 ) );
}
|
|
А ещё - подскажите, как поставить фильтр - т.е. разрешить вывод колонки если
if ( Corr > 0.77) - то AddColumn разрешено? Я внутри циклов теряюсь... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробуй так
Код: |
if(Corr > 0.77)
{
AddColumn( Corr, sym, 1.2,
ColorHSB( 128 + Clr, 255, 255 ),
ColorHSB( Clr, 255, 255 ) );
} |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Rybak
Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука
|
000 писал(а): |
Попробуй так
Код: |
if(Corr > 0.77)
{
AddColumn( Corr, sym, 1.2,
ColorHSB( 128 + Clr, 255, 255 ),
ColorHSB( Clr, 255, 255 ) );
} |
|
Ругается.
Filter тоже почему-то не работает |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Rybak
Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука
|
Понял, надо
if(LastValue (Corr) > 0.77) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|