Автор |
Сообщение |
pylyp
Зарегистрирован: 21.09.2012
Сообщения: 80
|
Приветствую. Написал индикатор для недельного графикка. Пробую его отобразить на дневном графике и получается какой-то косяк: столбцы гистограмма окрашиваются некоректно. Хотя на недельном графике все ок. Вопрос почему?
Формула:
Код: |
//MACD histogram недельный
TimeFrameSet(inWeekly);
r1 = Param( "Fast avg", 12, 2, 200, 1 );
r2 = Param( "Slow avg", 26, 2, 200, 1 );
r3 = Param( "Signal avg", 20, 2, 200, 1 );
ml = MACD(r1, r2);
sl = Signal(r1,r2,r3);
Hist = ml-sl;
TimeFrameRestore();
MACDup = Hist>Ref(Hist,-1);
MACDdown = Hist<Ref(Hist,-1);
BarColor = IIf(MACDup,colorGreen,IIf(MACDdown,colorRed,colorBlue));
//растягиваем график
Plot(TimeFrameExpand( Hist,inWeekly),"histogram MACD",BarColor,styleHistogram);
Plot(0, "0", colorBlack);
//вход-выход
Buy = TimeFrameExpand(Hist>Ref(Hist,-1), inWeekly);
Sell = 0;
ApplyStop(stopTypeTrailing,stopModePoint,ATR(14)*3,False); |
А на дневном графике получается так: |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Блин. Не знаю как объяснить в двух словах...
В общем когда ты выходишь из недельного фрейма у тебя недельный макди получается как бы сгруппированный вправо на базовом фрейме. Потом ты определяешь цвет и он получается привязан к базовому фрейму. Соответственно когда растягиваешь график цвет не растягивается а остается там где и был. Вот и получается фигня.
Надеюсь понятно объяснил. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
pylyp
Зарегистрирован: 21.09.2012
Сообщения: 80
|
спасибо за ответ. То что я понял и вдогонку вопросы:
1. Правильная ли формула. Цель, чтобы при инвестиции на дневках система не переставала считать MACD на недельном графике.
2. Если косяк с цветами, можно ли как-то эти цвета тоже растянуть.
3. Уже с другой оперы - пробую оптимизировать MACD. Задаю параметры Optimize, даю Analisis. И в ответ получаю 1000 одинаковых результатов в независимости от длини MACD. Где косяк? Вот формула:
Код: |
FA=Optimize("FA",26,12,50,2);
SA=Optimize("SA",50,26,200,2);
SS=Optimize("SS",20,9,20,5);
TimeFrameSet(inWeekly);
r1 = Param( "Fast avg", FA);
r2 = Param( "Slow avg", SA );
r3 = Param( "Signal avg", SS );
ml = MACD(r1, r2);
sl = Signal(r1,r2,r3);
Hist = ml-sl;
TimeFrameRestore();
Buy = TimeFrameExpand(Hist>Ref(Hist,-1), inWeekly)AND fi<0;
Sell = 0;
ApplyStop(stopTypeTrailing,stopModePoint,ATR(14)*3,False); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот так попробуй
Код: |
r1=Optimize("FA",26,12,50,2);
r2=Optimize("SA",50,26,200,2);
r3=Optimize("SS",20,9,20,5);
TimeFrameSet(inWeekly);
ml = MACD(r1, r2);
sl = Signal(r1,r2,r3);
Hist = ml-sl;
TimeFrameRestore();
Hist = TimeFrameExpand(Hist, inWeekly)
Buy = Hist > Ref(Hist,-1) AND fi < 0; // не знаю кто такоая fi, в коде ее нет
Sell = 0;
ApplyStop(stopTypeTrailing,stopModePoint,ATR(14)*3,False);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
pylyp писал(а): |
2. Если косяк с цветами, можно ли как-то эти цвета тоже растянуть.
|
Конечно можно. Точно так же через expand. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
pylyp
Зарегистрирован: 21.09.2012
Сообщения: 80
|
С оптимизацией получилось. Спасибо.
Что касается колористики. Вставил вот так:
Код: |
r1=Optimize("FA",26,12,50,2);
r2=Optimize("SA",50,26,200,2);
r3=Optimize("SS",20,9,20,5);
TimeFrameSet(inWeekly);
ml = MACD(r1, r2);
sl = Signal(r1,r2,r3);
Hist = ml-sl;
TimeFrameRestore();
Hist = TimeFrameExpand(Hist, inWeekly);
MACDup=Hist>Ref(Hist,-1);
MACDdown=Hist<Ref(Hist,-1);
TimeFrameSet(inWeekly);
barcolor=IIf(MACDup,colorGreen, IIf(MACDdown,colorRed,colorBlue));
TimeFrameRestore();
Plot(TimeFrameExpand(Hist,inWeekly),"hist",TimeFrameExpand(barcolor,inWeekly),styleHistogram);
|
Получилось вот так... Не совсем то что хотел, но хоть цвета не разъезжаюся. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробуй так
Код: |
SetBarsRequired(sbrAll, sbrAll);
r1=Optimize("FA",26,12,50,2);
r2=Optimize("SA",50,26,200,2);
r3=Optimize("SS",20,9,20,5);
TimeFrameSet(inWeekly);
ml = MACD(r1, r2);
sl = Signal(r1,r2,r3);
Hist = ml-sl;
MACDDir = IIf(Hist > Ref(Hist,-1), 1, IIf(Hist < Ref(Hist,-1), -1, 0));
barcolor = IIf(MACDDir == 1 , colorGreen, IIf(MACDDir == -1, colorRed, colorBlue));
TimeFrameRestore();
Hist = TimeFrameExpand(Hist, inWeekly);
barcolor = TimeFrameExpand(barcolor,inWeekly);
Plot(Hist, "hist", barcolor, styleHistogram);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|