Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 След. |
Автор |
Сообщение |
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
Амиброкеровец писал(а): |
Подскажите, можно ли как то программно определить текущий таймфрейм который установлен в Амиброкере.
|
Функция Interval () не подходит? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
Настроил стоп-лосс в системе
ApplyStop (stopTypeLoss, stopModePoint, 250, 0, False, 0);
однако при изучении списка сделок видно, что она закрывает позиции с убытком гораздо больше 250.
Не могу понять, как такое возможно? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А поинт на тестируемом инструменте чему равен?
Если например 0.1, то и стоп надо писать 25
Кроме того установлен ExitAtStop = 0. Т.е сделки закрываются не по цене стопа, а по ценам, по которым которым система по умолчанию (если не задавать цену сделок) торгует. Например это цена закрытия. А цена закрытия может быть и много ниже чем - 250 пунктов. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Саня писал(а): |
Амиброкеровец писал(а): |
Подскажите, можно ли как то программно определить текущий таймфрейм который установлен в Амиброкере.
|
Функция Interval () не подходит? |
Благодарю, подошла. Вот только странно она работает с не временными интервалами, для range мне выдала интервал -1000010, пришлось прибавиль мильен и взять по модулю и отбросить знаки после запятой, вот примерно такой код
WriteVal( abs(Interval(1)+1000000),1.0) |
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот ёё. А про INTERVAL то я и забыл. Старею... ((( |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
000 писал(а): |
А поинт на тестируемом инструменте чему равен?
Если например 0.1, то и стоп надо писать 25
Кроме того установлен ExitAtStop = 0. Т.е сделки закрываются не по цене стопа, а по ценам, по которым которым система по умолчанию (если не задавать цену сделок) торгует. Например это цена закрытия. А цена закрытия может быть и много ниже чем - 250 пунктов. |
Инструмент - фьюч на индекс РТС. Соответственно поинт 5 рублей.
С ExitAtStop я конечно не разобрался, буду ставить ExitAtStop = 1.
Спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Вот индюк, рисует 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
|
Цитата: |
Вопрос, ка сделать, чтобы часы показывались не с начала сессии(11-30, 12-30), а ровно в 11-00, 12-00, 13-00 итд
|
В настройках БД в intraday поставь старт day session в 10:00 и все.
Цитата: |
вообще лучше если возможно сделать их в списке, чтобы скажем профиль на вечернюю сессию был один, а дневная закрывалась в 17-45. Подскажите, как это можно реализовать?
|
Не понял... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Олег, помогло с 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
|
Типа так...
Код: |
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
Откуда: Воображляндия
|
Олег, шикарно! Как индюк окончательно доправлю, выложу его в соседней ветке, чтобы был доступен всем. Спасибо |
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Олег, еще небольшой вопрос, а какой функцией можно задать цвет профиля в зависимости от часа, я пробовал так
Color1 = IIf ((segment == 103000), colorGreen, colorRed);
еще пытался с функцией
switch(segment) {
case 103000: Color1=colorGreen;
но без результата, не подскажешь? |
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Похоже в PlotVAPOverlayA нельзя использовать переменный цвет. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Саня
Зарегистрирован: 11.02.2009
Сообщения: 53
Откуда: Москва
|
Господа, у меня, как обычно, вопрос про стоп-лосс и про рисование стрелок
С помощью этого когда ставлю стоп и рисую на графике сигналы:
Код: |
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. Не могу понять, по какой системе определяется тип рисуемых на графике стрелочек. Замечены закрашенные и пустые стрелочки, а так же треугольники (откуда они берутся, вообще не понятно ). Как указать тип стрелочек для стоп-сигналов? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Саня писал(а): |
С помощью этого когда ставлю стоп и рисую на графике сигналы:
Код: |
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. Не могу понять, по какой системе определяется тип рисуемых на графике стрелочек. Замечены закрашенные и пустые стрелочки, а так же треугольники (откуда они берутся, вообще не понятно ). Как указать тип стрелочек для стоп-сигналов? |
Кадому шейпу (рисуемой стредочке) соответствует цифровой код. При срабатывании стоп лосса в массив sell (если была покупка) записывается сигнал, но он равен не 1 как происходит при обычном закрытии позиции, а при стоплоссе 2 при профите 3 и т.д. (см описание ф-ции Equity в хелпере) соответственно если стрелку умножать не на 1 как задумывалось а на 2, то и код шейпа изменится. Вот поэтому и рисуется не то, что задумано. Надо исправить код и написать типа так
Код: |
PlotShapes( IIf(Buy, shapeUpArrow, 0), colorGreen, 0, Low);
PlotShapes( IIf(Sell, shapeHollowDownArrow, 0), colorRed, 0, High);
|
и т.д. для каждого сигнала. Вот тогда будет рисовать то, что задумано. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|