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



Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва

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

Амиброкеровец писал(а):
Подскажите, можно ли как то программно определить текущий таймфрейм который установлен в Амиброкере.


Функция Interval () не подходит?
Посмотреть профиль Отправить личное сообщение
Саня



Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва

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

Настроил стоп-лосс в системе
ApplyStop (stopTypeLoss, stopModePoint, 250, 0, False, 0);
однако при изучении списка сделок видно, что она закрывает позиции с убытком гораздо больше 250.
Не могу понять, как такое возможно?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

А поинт на тестируемом инструменте чему равен?
Если например 0.1, то и стоп надо писать 25
Кроме того установлен ExitAtStop = 0. Т.е сделки закрываются не по цене стопа, а по ценам, по которым которым система по умолчанию (если не задавать цену сделок) торгует. Например это цена закрытия. А цена закрытия может быть и много ниже чем - 250 пунктов.

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

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

Саня писал(а):
Амиброкеровец писал(а):
Подскажите, можно ли как то программно определить текущий таймфрейм который установлен в Амиброкере.


Функция Interval () не подходит?


Благодарю, подошла. Вот только странно она работает с не временными интервалами, для range мне выдала интервал -1000010, пришлось прибавиль мильен и взять по модулю и отбросить знаки после запятой, вот примерно такой код

WriteVal( abs(Interval(1)+1000000),1.0)

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


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

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

Вот ёё. А про INTERVAL то я и забыл. Старею... (((

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



Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва

СообщениеДобавлено: Вс Мар 22, 2009 4:50 pm Ответить с цитатой Вернуться к началу

000 писал(а):
А поинт на тестируемом инструменте чему равен?
Если например 0.1, то и стоп надо писать 25
Кроме того установлен ExitAtStop = 0. Т.е сделки закрываются не по цене стопа, а по ценам, по которым которым система по умолчанию (если не задавать цену сделок) торгует. Например это цена закрытия. А цена закрытия может быть и много ниже чем - 250 пунктов.


Инструмент - фьюч на индекс РТС. Соответственно поинт 5 рублей.
С ExitAtStop я конечно не разобрался, буду ставить ExitAtStop = 1.
Спасибо!
Посмотреть профиль Отправить личное сообщение
Амиброкеровец



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

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

Вот индюк, рисует volume at price, родной, немного доработан мною, чтобы мог показывать часовые профили

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

_SECTION_BEGIN("VAP");
DayorHour = Param("Day (0) or Hour (1)", 0,0,1,1);
if (DayorHour==1)
segments = IIf( Interval() < inHourly, Hour(), Month() );
else
segments = IIf( Interval() < inHourly, Day(), Month() );
segments = segments != Ref( segments , -1 );

PlotVAPOverlayA( segments , Param("Lines", 300, 100, 1000, 1 ), Param("Width", 80, 1, 100, 1 ), ParamColor("Color", colorGold ), ParamToggle("Side", "Left|Right" ) | 2 * ParamToggle("Style", "Fill|Lines", 0) | 4*ParamToggle("Z-order", "On top|Behind", 1 ) );
Plot(segments, "", colorLightGrey, styleHistogram | styleOwnScale );
_SECTION_END();

Вопрос, ка сделать, чтобы часы показывались не с начала сессии(11-30, 12-30), а ровно в 11-00, 12-00, 13-00 итд, вообще лучше если возможно сделать их в списке, чтобы скажем профиль на вечернюю сессию был один, а дневная закрывалась в 17-45. Подскажите, как это можно реализовать?

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


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

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

Цитата:

Вопрос, ка сделать, чтобы часы показывались не с начала сессии(11-30, 12-30), а ровно в 11-00, 12-00, 13-00 итд

В настройках БД в intraday поставь старт day session в 10:00 и все.
Цитата:

вообще лучше если возможно сделать их в списке, чтобы скажем профиль на вечернюю сессию был один, а дневная закрывалась в 17-45. Подскажите, как это можно реализовать?

Не понял... Sad

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

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

Олег, помогло с daysession

По второму вопросу, я хотел бы, чтобы профиль автоматом рисовался в жестко заданные периоды:
10:30-11:00
11:00-12:00
12:00-13:00
13:00-14:00
14:00-15:00
15:00-16:00
17:00-18:00
18:00-18:45
18:45-23:55

это реально?

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


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

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

Типа так...
Код:

segment =
TimeNum() == 103000 OR
TimeNum() == 110000 OR
TimeNum() == 120000 OR
TimeNum() == 130000 OR
TimeNum() == 140000 OR
TimeNum() == 150000 OR
TimeNum() == 160000 OR
TimeNum() == 170000 OR
TimeNum() == 180000 OR
TimeNum() == 184500 OR
TimeNum() == 235500;

PlotVAPOverlayA(segment, lines = 300, width = 80, color = colorLightGrey, vapstyle = 4);
Plot(C, "", colorBlack, styleCandle);

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

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

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

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

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

Олег, еще небольшой вопрос, а какой функцией можно задать цвет профиля в зависимости от часа, я пробовал так

Color1 = IIf ((segment == 103000), colorGreen, colorRed);

еще пытался с функцией

switch(segment) {
case 103000: Color1=colorGreen;

но без результата, не подскажешь?

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


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

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

Похоже в PlotVAPOverlayA нельзя использовать переменный цвет. Sad

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



Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва

СообщениеДобавлено: Чт Мар 26, 2009 6:40 pm Ответить с цитатой Вернуться к началу

Господа, у меня, как обычно, вопрос про стоп-лосс и про рисование стрелок Smile

С помощью этого когда ставлю стоп и рисую на графике сигналы:

Код:
ApplyStop (stopTypeLoss, stopModePoint, stploss, 1, False, 0);
Equity(1);
shape = Buy * shapeUpArrow + Sell * shapeDownArrow + Short * shapeDownArrow + Cover * shapeUpArrow;
PlotShapes( shape, IIf( Buy OR Cover, colorGreen, colorRed ), 0, IIf( Buy OR Cover, Low, High ) );


Далее начинаются вопросы.
1. Стоп срабатывает многократно при пересечении зафиксированного уровня. Если рынок движется около стоп-цены, то постоянно срабатывают стоп-сигналы, что быстро надоедает. Как настроить stop-loss так, чтобы он срабатывал только при первом пересечении стоп-цены?
2. Как реализовать восстановление позиции, если стоп-сигнал оказался ложным?
3. Не могу понять, по какой системе определяется тип рисуемых на графике стрелочек. Замечены закрашенные и пустые стрелочки, а так же треугольники (откуда они берутся, вообще не понятно Shocked ). Как указать тип стрелочек для стоп-сигналов?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Саня писал(а):

С помощью этого когда ставлю стоп и рисую на графике сигналы:

Код:
ApplyStop (stopTypeLoss, stopModePoint, stploss, 1, False, 0);
Equity(1);
shape = Buy * shapeUpArrow + Sell * shapeDownArrow + Short * shapeDownArrow + Cover * shapeUpArrow;
PlotShapes( shape, IIf( Buy OR Cover, colorGreen, colorRed ), 0, IIf( Buy OR Cover, Low, High ) );


Далее начинаются вопросы.
1. Стоп срабатывает многократно при пересечении зафиксированного уровня. Если рынок движется около стоп-цены, то постоянно срабатывают стоп-сигналы, что быстро надоедает. Как настроить stop-loss так, чтобы он срабатывал только при первом пересечении стоп-цены?

Это неправда. Стоп срабатывает только один раз. Я даже проверил на всякий случай.
[quote="Саня"]
2. Как реализовать восстановление позиции, если стоп-сигнал оказался ложным?
[/code]
Что значит ложным? Ложных сигналов не бывает. Если он тработал значит были сответствующие условия.
Саня писал(а):

3. Не могу понять, по какой системе определяется тип рисуемых на графике стрелочек. Замечены закрашенные и пустые стрелочки, а так же треугольники (откуда они берутся, вообще не понятно Shocked ). Как указать тип стрелочек для стоп-сигналов?

Кадому шейпу (рисуемой стредочке) соответствует цифровой код. При срабатывании стоп лосса в массив sell (если была покупка) записывается сигнал, но он равен не 1 как происходит при обычном закрытии позиции, а при стоплоссе 2 при профите 3 и т.д. (см описание ф-ции Equity в хелпере) соответственно если стрелку умножать не на 1 как задумывалось а на 2, то и код шейпа изменится. Вот поэтому и рисуется не то, что задумано. Надо исправить код и написать типа так
Код:

PlotShapes( IIf(Buy, shapeUpArrow, 0), colorGreen, 0, Low);
PlotShapes( IIf(Sell, shapeHollowDownArrow, 0), colorRed, 0, High);

и т.д. для каждого сигнала. Вот тогда будет рисовать то, что задумано. Smile

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen