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



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

СообщениеДобавлено: Пн Авг 30, 2010 11:16 pm Ответить с цитатой Вернуться к началу

Здравствуйте!
Подбросьте, кто знает, простенький пример рисования линий по двум последним вершинам Zig-zag, наподобие как в приложенном рисунке
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Авг 31, 2010 9:57 am Ответить с цитатой Вернуться к началу

Ща под рукой нет, но там не сложно. Даже помню для метастока подобный код был.
Трабл вот в чем.
Если линии тренда продлять в право, то, еслиистория остаточно длинная их получается хренова туча, там сам черт ногу сломит, а если в право не продлять, то как бы и смысла нет.
Посмотри в хелпере функцию LINEARRAY() там вроде как раз такой пример.

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



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

СообщениеДобавлено: Вт Авг 31, 2010 10:57 am Ответить с цитатой Вернуться к началу

А вот кстати - встроенный зиг-заг не умеет рисовать по хай-лоу??? или я туплю.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Авг 31, 2010 11:17 am Ответить с цитатой Вернуться к началу

Нет, не умеет.

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



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

СообщениеДобавлено: Ср Сен 01, 2010 12:02 am Ответить с цитатой Вернуться к началу

000 писал(а):
Ща под рукой нет, но там не сложно. Даже помню для метастока подобный код был.
Трабл вот в чем.
Если линии тренда продлять в право, то, еслиистория остаточно длинная их получается хренова туча, там сам черт ногу сломит, а если в право не продлять, то как бы и смысла нет.
Посмотри в хелпере функцию LINEARRAY() там вроде как раз такой пример.

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


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

СообщениеДобавлено: Ср Сен 01, 2010 12:33 am Ответить с цитатой Вернуться к началу

Ааааа. "по двум последним"... не обратил внимание...

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



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

СообщениеДобавлено: Вс Сен 05, 2010 12:43 pm Ответить с цитатой Вернуться к началу

Здравствуйте! Приступил к реализации сабжа. Результат работы нижеприведенного кода всего одна сделка(по двум последним отрисованным линиям), хотелось бы протестить все сделки. Каким образом это можно реализовать? Заранее спасибо! Код вот
Код:

("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();

percent=Optimize("percent",0.1,0,10,0.01);

y0=LastValue(Trough(IIf(Close>Open,Open,Close),percent,2));
y1=LastValue(Trough(IIf(Close>Open,Open,Close),percent,1));
x0=BarCount - 1 - LastValue(TroughBars(IIf(Close>Open,Open,Close),percent,2));
x1=BarCount - 1 - LastValue(TroughBars(IIf(Close>Open,Open,Close),percent,1));
LineTrough = LineArray( x0, y0, x1, y1, 1 );

y2=LastValue(Peak(IIf(Close<Open,Open,Close),percent,2));
y3=LastValue(Peak(IIf(Close<Open,Open,Close),percent,1));
x2=BarCount - 1 - LastValue(PeakBars(IIf(Close<Open,Open,Close),percent,2));
x3=BarCount - 1 - LastValue(PeakBars(IIf(Close<Open,Open,Close),percent,1));
LinePeak = LineArray( x2, y2, x3, y3, 1 );

Plot(C, "C", colorWhite, styleCandle);
Plot( LineTrough , "LineTrough" , colorBlue );
Plot( LinePeak , "LinePeak " , colorYellow );
Plot( Zig(Close,percent) , "Zig" , colorWhite+styleThick );

Buy=Cross(Close,LinePeak ) AND y2>y3;
Sell=Cross(LineTrough ,Close) AND y0<y1;
Short=Cross(LineTrough ,Close) AND y0<y1;
Cover=Cross(Close,LinePeak ) AND y2>y3;

SetPositionSize(1,spsShares);
По сути это тот же пример из хелпа. Продлять все линии нет нужды, только две
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Сен 05, 2010 1:44 pm Ответить с цитатой Вернуться к началу

Самый простой способ это запустить бар реплеер и записывать сделки на бумажку.
Либо переделать код так, чтобы строил не только 2 последних линии а всеи протестировать обычным образом.
Дело в том, что тестер не прогоняет бары с первого до последнего как можно было бы подумать. Если бы он прогонял бары так как они в реале добавляются и при этом строил 2 последних линии и считал сделки....
Но тестер работает не так. Он смотрит сразу всю историю. Поэтому строить надо все линии (не только 2 последних)...

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



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

СообщениеДобавлено: Вс Сен 05, 2010 2:04 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Самый простой способ это запустить бар реплеер и записывать сделки на бумажку.
Либо переделать код так, чтобы строил не только 2 последних линии а всеи протестировать обычным образом.
Дело в том, что тестер не прогоняет бары с первого до последнего как можно было бы подумать. Если бы он прогонял бары так как они в реале добавляются и при этом строил 2 последних линии и считал сделки....
Но тестер работает не так. Он смотрит сразу всю историю. Поэтому строить надо все линии (не только 2 последних)...

Вот блин! Sad
Олег, намекни пожалуйста как
Цитата:
переделать код так, чтобы строил не только 2 последних линии а всеи протестировать обычным образом.
это можно сделать? Оптимизировать хочется Smile
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Сен 05, 2010 2:24 pm Ответить с цитатой Вернуться к началу

Сейчас не подскажу. Это не 2ух минутное дело. Напомни в конце недели.

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



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

СообщениеДобавлено: Вс Сен 05, 2010 2:39 pm Ответить с цитатой Вернуться к началу

Спасибо! Договорились, в пятницу в личку скину. коньячок должон буду Smile
Посмотреть профиль Отправить личное сообщение
Fastin



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

СообщениеДобавлено: Пт Сен 10, 2010 1:20 pm Ответить с цитатой Вернуться к началу

Возможно совместить как то с этим подходом
Код:
yy = Param("%", 1, 0, 100, 1, 10 );
Z=(O+H+L+C)/4;
y = yy/10;

Sup = Trough( Z ,y,1)+
((((Trough( Z ,y,1)-Trough( Z ,y,2))/
(TroughBars( Z ,y,2)-TroughBars( Z ,y,1)))
*TroughBars( Z ,y,1)));

R = Peak(Z ,y,1)+
((((Peak(Z ,y,1)-Peak(Z ,y,2))/
(PeakBars(Z ,y,2)-PeakBars(Z ,y,1)))
*PeakBars(Z ,y,1)));

Plot( Sup, "support", colorRed, styleLine+styleThick );
Plot(R, "resistance", colorBlue, styleLine+styleThick );
Plot(C, "Binary CCI TL", ParamColor( "Color", colorCycle ),styleCandle);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Сб Сен 11, 2010 10:20 pm Ответить с цитатой Вернуться к началу

Fastin писал(а):
Возможно совместить как то с этим подходом
Код:
yy = Param("%", 1, 0, 100, 1, 10 );
Z=(O+H+L+C)/4;
y = yy/10;

Sup = Trough( Z ,y,1)+
((((Trough( Z ,y,1)-Trough( Z ,y,2))/
(TroughBars( Z ,y,2)-TroughBars( Z ,y,1)))
*TroughBars( Z ,y,1)));

R = Peak(Z ,y,1)+
((((Peak(Z ,y,1)-Peak(Z ,y,2))/
(PeakBars(Z ,y,2)-PeakBars(Z ,y,1)))
*PeakBars(Z ,y,1)));

Plot( Sup, "support", colorRed, styleLine+styleThick );
Plot(R, "resistance", colorBlue, styleLine+styleThick );
Plot(C, "Binary CCI TL", ParamColor( "Color", colorCycle ),styleCandle);

Ну. Это на 80% уже готовый код. Я собственно сделал бы точно так.
Собственно осталось правила покупки/продажи сделать.
Только одна фигня. Peak и Trough заглядывают вперед, поэтому результаты буду не реальные. Желательно изменить метод обнаружения пиков и впадин и соответственно вместо PeakBars и TroughBars использовать подходящую функцию.

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



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

СообщениеДобавлено: Вс Сен 12, 2010 2:27 pm Ответить с цитатой Вернуться к началу

000 писал(а):

изменить метод обнаружения пиков и впадин и соответственно вместо PeakBars и TroughBars использовать подходящую функцию.

Ну у меня только есть вариант использовать их после того как цена прошла после пика\впадины необходимый процент и пик\впадина гарантированно не перерисуется. Или есть еще какой то метод? Да и про подходящуюю функцию что-то не совсем догоняю.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Сен 12, 2010 7:46 pm Ответить с цитатой Вернуться к началу

Fastin писал(а):

Ну у меня только есть вариант использовать их после того как цена прошла после пика\впадины необходимый процент и пик\впадина гарантированно не перерисуется.

Отлично. Можно и так
Fastin писал(а):

Или есть еще какой то метод? Да и про подходящуюю функцию что-то не совсем догоняю.

Ну типа BarsSince(), ValueWhen(), BarIndex()...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen