Автор |
Сообщение |
max
Зарегистрирован: 01.08.2008
Сообщения: 253
|
Привет! Продолжаю мучать тему парного трейдинга. И опять обнаружил несколько "странностей" у Ами
1.Потребовалось нарисовать на 15 минутках канал для спрэда, причем спрэд должен считаться на этих 15 минутках, а канал на дневных данных (хитрая формула считающая волатильность двух инструментов). Так вот - попытался для начала на 15 минутах иструмента А вывести в отдельном окне значения хая предыдущего дня инструмента Б. Хрен! Ами нарисовал линию, но иее значение но понять по каким таким хаям он его строит не вышло - график представляет собой прямую которая меняется раз в 5-7 -10 дней и какой хай она имеет ввиду непонятно.
Использовал конструкцию типа
Timeframeset(inDaily)
c1=foreign("C","RTSf");
Timeframeset() - тут могу соврать - не помню какой командой закрывается Таймфреймсет
С2=timeframerestore(C1,indaily);
Второй веселый косяк - на основе представленного тут кода нарисовал свой вариант спрэда, который естественно кажет одинаковое значение на любом из двух инструментов. НО!!! при этом никакой попарности входа не наблюдается в принципе. Иногда входы совпадают а иногда нет.(совпадают я имею ввиду открываются зеркально и закрываются зеркально)
С чем такая хрень связана не понимаю...куда стоит посмотреть, |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
max писал(а): |
Использовал конструкцию типа
Timeframeset(inDaily)
c1=foreign("C","RTSf");
Timeframeset() - тут могу соврать - не помню какой командой закрывается Таймфреймсет
С2=timeframerestore(C1,indaily); |
Было бы странно, если бы ЭТО заработало. )))
Код: |
TimeFrameSet(inDaily);
C1 = Foreign("RTSf", "C");
TimeFrameRestore();
C1 = TimeFrameExpand(C1, inDaily);
Plot(C1, "C_RTSf", colorRed); |
Это если нужен вчерашний клоз другого инструмента, как у вас в коде. Если же нужен всё-таки хай, то чуть сложнее:
Код: |
SetForeign("RTSf");
TimeFrameSet(inDaily);
H1 = H;
TimeFrameRestore();
H1 = TimeFrameExpand(H1, inDaily);
RestorePriceArrays();
Plot(H1, "H_RTSf", colorRed); |
|
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
max
Зарегистрирован: 01.08.2008
Сообщения: 253
|
Mechanic писал(а): |
Было бы странно, если бы ЭТО заработало. )))
|
Я писал по памяти и бегом так что сразу говорил что могу ошибиться
Код: |
TimeFrameSet(inDaily);
C1 = Foreign("RTSf", "C");
TimeFrameRestore();
C1 = TimeFrameExpand(C1, inDaily);
Plot(C1, "C_RTSf", colorRed); |
Вот так вот действительно правильно только вот она то и не работает если там Хай искать
Код: |
SetForeign("RTSf");
TimeFrameSet(inDaily);
H1 = H;
TimeFrameRestore();
H1 = TimeFrameExpand(H1, inDaily);
RestorePriceArrays();
Plot(H1, "H_RTSf", colorRed); |
А вот за это спасибо - буду смотреть - похоже это то что нужно |
|
|
Посмотреть профиль Отправить личное сообщение |
|
max
Зарегистрирован: 01.08.2008
Сообщения: 253
|
Вообщем получилось но не все
мне нужно посчитать корреляцию двух инструментов на диапазоне в 30 дней.
Но конструкция
Код: |
TimeFrameSet(inDaily);
C1 = Foreign("RTSf", "C");
TimeFrameRestore();
C1 = TimeFrameExpand(C1, inDaily);
Plot(C1, "C_RTSf", colorRed); |
корректно не работает почему то
Другой вариант так же не получается так как он вызывает в начале другой инструмент а затем уже переходит на другой ТФ. Мне же нужно в начале перейти на дневки а потом уже вызвать два инструмента |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Я в тему не вдавался, но как то странно.
По моему логичнее сперва получить доступ к внешнему символу, а уж потом все (вместе с ним) переключить на другой фрейм. Иначе как то странно выходит.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
max
Зарегистрирован: 01.08.2008
Сообщения: 253
|
000 писал(а): |
Я в тему не вдавался, но как то странно.
По моему логичнее сперва получить доступ к внешнему символу, а уж потом все (вместе с ним) переключить на другой фрейм. Иначе как то странно выходит.... |
ну вот в коде
Код: |
SetForeign("RTSf");
TimeFrameSet(inDaily);
H1 = H;
TimeFrameRestore();
H1 = TimeFrameExpand(H1, inDaily);
RestorePriceArrays();
|
так и происходит. Все работает корректно.
Но в итоге мы из этой части "выносим" Н1 в котором хранится данные про хай предыдущего дня конкретного символа.
Но это решает только часть задачи. Теперь надо взять Хай этого символа и хай другого символа (так же на дневках) и посчитать их корреляцию на Дневном ТФ
Так как у нас ТФ 15 минут, но просто написать correlation(H1,H2,30) не получится так как 30 в данном случае будет на ТФ в 15 минут. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
max писал(а): |
Теперь надо взять Хай этого символа и хай другого символа (так же на дневках) и посчитать их корреляцию на Дневном ТФ. |
Код: |
SetForeign("RTSf");
TimeFrameSet(inDaily);
H1 = H;
TimeFrameRestore();
RestorePriceArrays();
TimeFrameSet(inDaily);
Corr = Correlation(H, H1, 30);
TimeFrameRestore();
Corr = TimeFrameExpand(Corr, inDaily);
Plot(Corr, "Corr", colorRed); |
|
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
max
Зарегистрирован: 01.08.2008
Сообщения: 253
|
Mechanic писал(а): |
max писал(а): |
Теперь надо взять Хай этого символа и хай другого символа (так же на дневках) и посчитать их корреляцию на Дневном ТФ. |
Код: |
SetForeign("RTSf");
TimeFrameSet(inDaily);
H1 = H;
TimeFrameRestore();
RestorePriceArrays();
TimeFrameSet(inDaily);
Corr = Correlation(H, H1, 30);
TimeFrameRestore();
Corr = TimeFrameExpand(Corr, inDaily);
Plot(Corr, "Corr", colorRed); |
|
инструменты разные должны быть |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
Да ёлки. Добавить-то ещё один блок по аналогии какие проблемы?
Код: |
SetForeign("Символ1");
TimeFrameSet(inDaily);
H1 = H;
TimeFrameRestore();
RestorePriceArrays();
SetForeign("Символ2");
TimeFrameSet(inDaily);
H2 = H;
TimeFrameRestore();
RestorePriceArrays();
TimeFrameSet(inDaily);
Corr = Correlation(H1, H2, 30);
TimeFrameRestore();
Corr = TimeFrameExpand(Corr, inDaily);
Plot(Corr, "Corr", colorRed); |
|
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
Может уже поздно, но...
есть еще вот такая функция:
Код: |
DH = TimeFrameGetPrice( "H", inDaily, -1, expandFirst);//Максимум вчерашнего дня
|
|
_________________ Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает. |
|
Посмотреть профиль Отправить личное сообщение |
|
|