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



Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука

СообщениеДобавлено: Пт Окт 03, 2008 4:03 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Действительно. Похоже, что объем при постороении (VAP) учитывается. Спасибо.

Не на чем.
Уточнение, не учитывается, а Служит Основой для построения.
Олег, может стоит это дело и в хелпе по PlotVAPOverlay() функции поправить?
Посмотреть профиль Отправить личное сообщение
Rybak



Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука

СообщениеДобавлено: Пт Окт 03, 2008 4:40 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Действительно. Похоже, что объем при постороении (VAP) учитывается. Спасибо.

Не на чем.
Уточнение, не учитывается, а Служит Основой для построения.
Олег, может стоит это дело и в хелпе по PlotVAPOverlay() функции поправить?


Последний раз редактировалось: Rybak (Сб Окт 25, 2008 10:14 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Окт 03, 2008 8:49 pm Ответить с цитатой Вернуться к началу

Буду делать хелп к следующей версии обязательно поправлю.

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



Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука

СообщениеДобавлено: Пт Окт 24, 2008 11:44 pm Ответить с цитатой Вернуться к началу

Помогите плиз переписать Market profile на ручной режим.
Есть необходимость строить его не по искуственным таймфреймам, а ручками.
За основу взят старый код Олега:
Код:
//Market Profile
GraphXSpace = 5;
SetChartOptions(0, chartShowDates);
//===========================
Den = Param("Density", 30, 10, 200, 10);
ShowMP = ParamToggle("Show MP", "No|Yes",1);
ShowVP = ParamToggle("Show VP", "No|Yes",1);
StyleMP = ParamStyle("style MP", styleNoLine|styleDots, maskAll);
StyleVP = ParamStyle("style VP", styleThick, maskAll);
//===========================
Bars = EndValue( BarIndex() ) - BeginValue( BarIndex() ) +1;
//===========================
Top = EndValue(HHV(H, Bars));
Bot = EndValue(LLV(L, Bars));
//===========================
Range = Top-Bot;
Box = Range/Den;
VolumeUnit = Vol/BarsInDay;

// дальше эти циклы меня зацикливают :((

for (k = 0; k <Den>= L & Line <H>= BarsInDay, Line, Null);

      Plot(MPLine, "", ParamColor( "Color MP", colorLightBlue ) , styleMP);
   }

if(ShowVP == True)
   {
      CountVPString = IIf(NewDay, Sum(detect*V, BarsInDay)/VolumeUnit, 0);
      CountVPString = Ref(ValueWhen(NewDay, CountVPString, 0), -1);
      VpLine = IIf(CountVPString >= BarsInDay, Line + Box/4, Null);

      Plot(VPLine, "", ParamColor( "Color VP", colorLightGrey ), styleVP);
   }
}


Как будет правильно продолжить с того места зацикливания?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Сб Окт 25, 2008 8:48 pm Ответить с цитатой Вернуться к началу

Ты опиши пожалуйста словами, как можно подробнее что хочешь сделать. Иначе маловероятно, что помогут... Sad

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



Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука

СообщениеДобавлено: Сб Окт 25, 2008 9:49 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Ты опиши пожалуйста словами, как можно подробнее что хочешь сделать. Иначе маловероятно, что помогут... Sad


Словами так:
1. Хочу тыкнуть мышь на гафике цены в нужном месте первый раз -
BeginValue
2. Тыкнуть мышь на гафике второй раз -
EndValue
3. В ответ увидеть на гафике Market Profile и Volume Profile за данный отмеченный курсорами период (BeginValue - EndValue)

4. Наслаждаться картинкой профиля и пить пыво Smile

ps
А серьёзно, считаю, (не только я, но и профи по МР) что принудительно-искуственное деление Market Profile по дням, неделям или месяцам совершенно не информативно, тут только руками.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Теперь понятно. В понедельник сделаю.

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



Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука

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

000 писал(а):
Теперь понятно. В понедельник сделаю.

Ай Спасибо!
Месячный и недельный вроде сделал, а тут что-то я в ступоре Crying or Very sad

PS
Можно совсем оборзеть и попросить сделать следующую опцию -
возможность разворачивать VP влево.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Окт 28, 2008 2:17 am Ответить с цитатой Вернуться к началу

Хм. Пока плохо получается.
Не удается избавиться от тормозов если не выделен диаппазон... Sad И с профилем объема пока косяки. Буду думать еще. Чтобы скучно небыло пока побалуйся Smile
Код:

//Market Profile
GraphXSpace = 5;
SetChartOptions(0, chartShowDates);

//===========================

Den = Param("Density", 40, 10, 100, 10);
ShowMP = 1;//ParamToggle("Show MP", "No|Yes");
ShowVP = 0;//ParamToggle("Show VP", "No|Yes");
StyleMP = ParamStyle("style MP", styleLine, maskAll);
StyleVP = ParamStyle("style VP", styleLine, maskAll);

//===========================
startBar = BeginValue(BarIndex());
endBar = EndValue(BarIndex());

BarsInRange = BarsSince(startBar == BarIndex()) + 1;


//===========================

//===========================

Bot = LastValue(ValueWhen(endBar == BarIndex(), LLV(L, BarsInRange), 1));
Top = LastValue(ValueWhen(endBar == BarIndex(), HHV(H, BarsInRange), 1));
Vol = LastValue(ValueWhen(endBar == BarIndex(), MA(V, BarsInRange), 1));


//===========================

Range = Top-Bot;
Box = Range/Den;

VolumeUnit = Vol;
//Plot(Vol, "", colorRed);

for (k = 0; k < Den; k++)             // loop through each line (price) starting at the Lowest price

{
   Line = Bot + k*Box;
   detect = Line >= L & Line <= H;

   if(ShowMP == True)
   {
      CountMPString = LastValue(ValueWhen(endBar == BarIndex(), Sum(detect, BarsInRange), 1));
      MpLine = IIf(CountMPString >= BarsInRange, Line, Null);

      Plot(MPLine, "", colorRed, styleMP);
   }

if(ShowVP == True)
   {
      CountVPString = LastValue(ValueWhen(endBar == BarIndex(), Sum(detect*V, BarsInRange), 1));
      VpLine = IIf(CountVPString >= BarsInRange, Line + Box/4, Null);

      Plot(VPLine, "", colorBlue, styleVP);
   }
}

Title = "{{NAME}} - {{INTERVAL}} {{DATE}} {{VALUES}} - \\c04 Market Profile  \\c06 Volume Profile";

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


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

СообщениеДобавлено: Вт Окт 28, 2008 2:18 am Ответить с цитатой Вернуться к началу

Rybak писал(а):
000 писал(а):
Теперь понятно. В понедельник сделаю.

Ай Спасибо!
Месячный и недельный вроде сделал, а тут что-то я в ступоре Crying or Very sad

PS
Можно совсем оборзеть и попросить сделать следующую опцию -
возможность разворачивать VP влево.

Сначала доделаем это, а потом уж станем разворачивать...

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



Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука

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

Что-то квотить не получается.

"Не удается избавиться от тормозов если не выделен диаппазон... "
Предлагаю не запускать цикл пока он не выделен, типа
if BarsInRange >=2;

"И с профилем объема пока косяки. Буду думать еще"

Я не понял, почему
Vol = LastValue(ValueWhen(endBar == BarIndex(), MA(V, BarsInRange), 1));
а не
Vol = LastValue(ValueWhen(endBar == BarIndex(), sum(V, BarsInRange), 1));

"Чтобы скучно небыло пока побалуйся"

Обязательно побалуюсь как домой доберусь
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Вот, вроде сделал. Если диаппазон не выделен или выделено больше 1000 баров, то ничего отображать не будет. Жду критики.

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


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

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

То-же самое, но диаппазоном яляется весь видимый участок. Практически копия встроенного VAP

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



Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука

СообщениеДобавлено: Ср Окт 29, 2008 3:50 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Жду критики.


Не дождёшься Smile

Да всё нормально Олег, так как и хотелось.

Может я не прав (поправь), но я всё ж использую
Sum(V/100, BarsInRange) вместо MA(V, BarsInRange).

Для полной красоты и ясности видимой картинки хорошо бы было
выделять моду (самую высокую точку ) как МР так и VP.

И (ИЛИ) выделить (цветом вероятно), Область моды - как стандартное отклонение.

Тогда совсем красота - визуально будет много легче определить где\когда происходит дисбаланс на рынке.

ps
По поводу разворота влево VP, имхо, наверное и не стоит.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Окт 29, 2008 5:53 pm Ответить с цитатой Вернуться к началу

Отлично. Н счет моды или максимума - подумаю.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen