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



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

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

В QUIK в таблице всех сделок различаются сделки покупки и продажи, по каждой проходит свой объём. Как написать в Амиброкере индикатор, который для одной свечи показывал бы отдельно объём покупки и отдельно - объём продаж?
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

А формула для этого индюка известна?
И база для символа наверняка тиковой должна быть?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Вс Фев 10, 2013 2:06 pm Ответить с цитатой Вернуться к началу

С формулой все просто. Вопрос в другом. Придумай как и куда запихать в Ами эти данные.
Куда в Ами есть. Если бы квиковцы не поленились с плагином, то никаких проблем. Я такую штуку делал (только не с Квиком).

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



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

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

И все-таки, как это технически сделать? Допустим, есть тиковая база. Как правильно написать индикатор, чтобы на к примеру часовках получить объем по сделок совершенных по аск (бид)?

_________________
xz
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Мар 24, 2013 1:31 pm Ответить с цитатой Вернуться к началу

А как имея обычную тиковую базу узнать по биду или по офферу был тик?

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



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

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

У меня в базе ласт, бид и аск. База ES с БигМайка. Бид и аск загнал в aux1 aux2. В общем-то в Ами я пока полный ноль, читать умею, говорить нет. Smile

ЗЫ если интересует, базой могу поделиться.

_________________
xz
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Мар 24, 2013 7:47 pm Ответить с цитатой Вернуться к началу

В общем так.
Этих данных в принципе достаточно, для построения подобного графика, но в таком виде как они сейчас это к сожалению не возможно.
Дело вот в чем.
Для построения подобного графика надо
Смотрим чему равен ласт. Если биду, то объем этого тика записываем в продажу, а если офферу, то в покупку.
Но, когда мы с тиков переключимся на старший фрейм, то оперировать с тиками уже не сможем.
Для построения такого графика надо изначально, на тиках разделить объемы на продажу и на покупку. Тогда при переключении на старший фрейм их можно будет сложить.
При переключении на старший фрейм Ами по разному оперирует полями в данных.
Из поля Close берет последнее значение интервала. Точно так же и с полями Aux1 и Aux2
Из поля Open берет первое значение интервала
Из поля High берет максимальное значение
Из поля Low берет минимальное значение.
В поле Volume складывает все значения.
Нам надо именно сложить.
Поэтому нам подходит использование только поля Vol.
В общем требуется подготовить данные специально для вывода нужного графика.
Проще всего создать дополнительный символ в который в поле Vol записать только объемы на покупку.
Это делается функцией AddToComposite()
Потом переключаемся на нужный фрейм читая это поле функцией Foreign()
Ну а объем на продажу просто получить вычтя из общего объема объем на покупку.

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



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

СообщениеДобавлено: Вс Мар 24, 2013 8:07 pm Ответить с цитатой Вернуться к началу

Спасибо, Олег! Smile
Завтра попробую что-нибудь соорудить.
Конечно, жалко, что из старшего таймфрейма нельзя обратиться к младшему.

_________________
xz

Последний раз редактировалось: Снарколов (Пт Мар 29, 2013 9:45 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
Снарколов



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

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

Продолжу.
Пишу проверочный код
Код:
AddToComposite(V, "~V", "Volume");

загоняю в АА, тест на тиках, текущий символ и...
получаю какую-то хрень, не соответствующую исходнику.
Начинаю искать и обнаруживаю, что композит считается для периода 1 секунда. В чем может быть трабл?

V 5.6.3

_________________
xz
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Только что прогнал на тиках вот такой код
Код:
AddToComposite(V, "test", "V");

Все ОК
Может в настройках АА не поставил тики?

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



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

СообщениеДобавлено: Вт Мар 26, 2013 4:46 am Ответить с цитатой Вернуться к началу

Вот именно, что поставил! Пробовал даже в тулс-пропертис-интрадей 1-тик поставить и его выбирать. На времени меньше секунд нет реакции. От секунд и выше создает правильно.
Есть еще какие-нибудь настройки, влияющие на анализатор?
Или глюк версии?

ЗЫ
Можно конечно пойти извращенским путем и разделить объемы внешним скриптом. Но это имхо стратегически неверный метод.

PPS
Если внутри секунды несколько тиков, АА в композите их объединяет. Как от этой заразы избавиться пока не знаю. Искусственные миллисекунды не помогли.

PPPS
Продолжаем эксперименты Smile
Беру тестовые данные:
Код:
130210 15:33:41:001    1476.75   1
130210 15:33:41:002    1476.50   2
130210 15:33:41:003    1476.75   2
130210 15:33:41:004    1476.75   3
130210 15:33:42:005    1476.75   2
130210 15:33:42:006    1476.75   6
130210 15:33:42:007    1476.75   1
130210 15:33:42:008    1476.75   2
130210 15:33:43:009    1477.00   2
130210 15:33:43:010    1476.75   5

Загоняю в ами
строю от них композит по формуле
Код:

AddToComposite(C,"test","O");
AddToComposite(C,"test","H");
AddToComposite(C,"test","L");
AddToComposite(C,"test","C");
AddToComposite(V,"test","V");

Так вот, эта зараза подгоняет всё под секунды, причем
суммирует не только волюм, но и OHLC.
В результате получаю три бара:
1) O=H=L=C=5906.75, V=8;
2) O=H=L=C=5907.00, V=11;
3) O=H=L=C=2953.75, V=7.

Sad

_________________
xz
Посмотреть профиль Отправить личное сообщение
MrDzenLi



Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN

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

spitfire писал(а):
А формула для этого индюка известна?
И база для символа наверняка тиковой должна быть?

Код:
_SECTION_BEGIN("Volume BU");
SetBarsRequired(sbrAll,sbrAll);
 
// BUYING VOLUME AND SELLING VOLUME //
 
BV = IIf( (H==L), 0, V*(C-L)/(H-L) );
SV = IIf( (H==L), 0, V*(H-C)/(H-L) );
 
PlotOHLC(SV,SV,0,0,"SellVolume",colorRed,styleCandle|styleNoTitle|styleNoLabel );
PlotOHLC(SV,BV+SV,SV,BV+SV,"BuyVolume",colorbrightgreen ,styleCandle|styleNoTitle|styleNoLabel );
 
Va = MA(V,30);
 
PlotOHLC( Va, Va, 0, 0, "", ColorBlend( colorWhite , GetChartBkColor(), 0.4 ), styleNoLabel | styleCloud | styleNoRescale, Null, Null, Null, -1 );
Plot(Va,"Average Volume",colorRose,styleNoLine|styleNoLabel );
 
VI = V/Va;
 
Title = "SellVolume:"+WriteVal(SV,5.0)+"   "+"BuyVolume:"+WriteVal(BV,5.0)+"   "+"VolumeIndex:"+WriteVal(VI,1.2)+"   "+
"BuyVolume:"+WriteVal(100*BV/(BV+SV),2.0)+"%"+"   "+"SellVolume:"+WriteVal(100*SV/(BV+SV),2.0)+"%";
_SECTION_END();

как сделать горизонтальную линию не знаю...

_________________
Нам не дано знать всего.
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen