Автор |
Сообщение |
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
Всем привет!
Пытаюсь рисовать на графике горизонтальные линии, обозначающие локальные уровни поддержки\сопротивления после получения сигнала.
Насколько я понимаю, это делается с помощью функций Plot ( LineArray ). Но вот как её привязать LineArray к Buy/Sell сигналам от ТС? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не очень понятно. Руками линии рисуешь? Если да, то из AFL обратиться к линиям нарисованным руками только один способ, при помощи функции study() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
000 писал(а): |
Не очень понятно. Руками линии рисуешь? Если да, то из AFL обратиться к линиям нарисованным руками только один способ, при помощи функции study() |
Нет, я как раз хочу чтобы Ами рисовал линии. Последовательность действий примерно такая: поступил сигнал (например Buy), Ами находит локальный минимум (например за 5 последних свечей) и чертит от этого локального минимума линию направо, обозначающюю стоп уровень для открываемой по сигналу позы. Не могу разобраться, как определить координаты, передаваемые в LineArray. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. А зачем собственно эта линия?
Ну если всетаки позарез нужна, то плюнь на LineArray воспользуйся ValueWhen() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
000 писал(а): |
Хм. А зачем собственно эта линия?
Ну если всетаки позарез нужна, то плюнь на LineArray воспользуйся ValueWhen() |
Чего-то я вообще не понимаю, как здесь применить ValueWhen
Сделал скриншот, на котором я нарисовал линию в ручную. Идея в том, чтобы её рисовал Ами. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробуй такой индикатор.
Код: |
Buy = ...; // сам напиши условия покупки
qq = ValueWhen(Buy, LLV(L, 5));
Plot(C, "", ColorBlack, StyleCandle);
Plot(qq, "", colorRed);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
000 писал(а): |
Попробуй такой индикатор.
Код: |
Buy = ...; // сам напиши условия покупки
qq = ValueWhen(Buy, LLV(L, 5));
Plot(C, "", ColorBlack, StyleCandle);
Plot(qq, "", colorRed);
|
|
Спасибо, это работает (хотя я не понимаю как )
Пара вопросов по коду:
-Зачем нужна строчка Plot(C, "", ColorBlack, StyleCandle); Попробовал закоментить, вроде ничего не изменилось.
-Как ограничить длину линии? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Саня писал(а): |
Спасибо, это работает (хотя я не понимаю как )
Пара вопросов по коду:
-Зачем нужна строчка Plot(C, "", ColorBlack, StyleCandle); Попробовал закоментить, вроде ничего не изменилось. |
Эта строка выводит график в виде свечек.
Нужна она или нет зависит от метода добавления индикатора. Если добавлять его в новое подокно, то эта строка нужна, если бросать на существующий график, то нет.
Саня писал(а): |
-Как ограничить длину линии? |
В принципе могу написать, но почему то думаю, что это только напрасно засрет мозги... Когда действительно надо будет сам разберешься....
А так... разве длинна линии как то мешает? Пускай будет...
Как работает valuewhen...
Смортит влево на график (может и вправо. это зависит от параметра n (по умолчанию 1 и смотрит влево)) и когда первый параметр выполнился берет второй параметр и растягивает его вправо до момента когда первый опять выполняется...
Вот как то так. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
В итоге получилось! Олег, спасибо за помощь!
Код: |
for( i = 0; i < BarCount; i++ )
{
if( Buy[i] ) {
Line=LineArray(i, C[i], i+10, C[i]);
Plot( Line, "Sup Line", colorGreen, styleDots );
}
if( Sell[i] ) {
Line=LineArray(i, C[i], i+10, C[i]);
Plot( Line, "Res Line", colorRed, styleDots );
}
} |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|