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



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

СообщениеДобавлено: Чт Апр 29, 2010 10:45 am Ответить с цитатой Вернуться к началу

Redline - уровень закрытия первого 5 минутного бара
stop=abs((C-Redline));
SetOption("AllowSameBarExit", 0); //
SetOption("ActivateStopsImmediately", 0); //

ApplyStop(stopTypeTrailing, stopModePoint, stop, True, True );

вот пытаюсь понять алгоритм стопа
по идее он глядит в будущее. Т.е. до момента Закрытия бара мы не знаем значение Stop
а он применяет стоп по уровню Stop внутри бара. При этом этот уровень рассчитывает от (в случае лонга) максимума с момента входа
Я прав???

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


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

СообщениеДобавлено: Чт Апр 29, 2010 1:13 pm Ответить с цитатой Вернуться к началу

Стоп рассчитывается от цены входа в сделку.
В случае лонга от BuyPrice, в случае шорта от ShortPrice.
Если трейлинг, то от максимума/минимума бара.
Если сделка по закрытию бара, то на баре входа стоп срабатывать не должен т.к. когда формировался бар позиция еще не была открыта. В этом случае ставим SetOption("ActivateStopsImmediately", 0); Т.е. трейлинг (или другой стоп) на этом баре не работает.
Если вход внутри бара или по открытию бара, то надо ставить SetOption("ActivateStopsImmediately", 1);. т.е. на баре входа система уже в позиции и отслеживает стоп.

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



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

СообщениеДобавлено: Чт Апр 29, 2010 1:57 pm Ответить с цитатой Вернуться к началу

Что то я совсем запутался Sad

Вот давай для совсем тупых типа меня...
1.Мы вошли в сделку лонг, по цене:
linia vhoda=цена закрытия первого бара
buy=cross(h,linia vhoda);
Buyprice=Max(o,linia vhoda);
Sell=timenum()==184500;
sellprice=c;

теперь мы хотим поставить трейлинг стоп и стоп лосс.
Пишем SetOption("AllowSameBarExit", 0); - тем самым запрещаем ему выходить на баре входа в принципе
Далее пишем
SetOption("ActivateStopsImmediately", 0); - опять же я хочу ему запретить включать стоп на баре входа, несмотря на то, что вход бы не по закрытию. Иначе это приводит к закрытию сразу же

Теперь я хочу ему задать трейлинг. Вот дальше засада.
По моему разумению трейлинг работает так:
1.Находит (для лонга) Highest High и от него откладывает вниз некое определенное пользователем значение. Если цена его пересекает, то он выходит или по этой цене или по клоузу (ну или не цена а клоуз его пересекает в зависимости от настройки)

Если мы напишем
stop=abs((C-linia vhoda));
ApplyStop(stopTypeTrailing, stopModePoint, stop, True, True );

То получается, что мы должны выйти внутри бара, по цене которая не может быть определена до тех пор, пока бар не закроется. Т.е. смотрим в будущее

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


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

СообщениеДобавлено: Чт Апр 29, 2010 2:24 pm Ответить с цитатой Вернуться к началу

max писал(а):

теперь мы хотим поставить трейлинг стоп и стоп лосс.
Пишем SetOption("AllowSameBarExit", 0); - тем самым запрещаем ему выходить на баре входа в принципе
Далее пишем
SetOption("ActivateStopsImmediately", 0); - опять же я хочу ему запретить включать стоп на баре входа, несмотря на то, что вход бы не по закрытию. Иначе это приводит к закрытию сразу же

Теперь я хочу ему задать трейлинг. Вот дальше засада.
По моему разумению трейлинг работает так:
1.Находит (для лонга) Highest High и от него откладывает вниз некое определенное пользователем значение. Если цена его пересекает, то он выходит или по этой цене или по клоузу (ну или не цена а клоуз его пересекает в зависимости от настройки)

Если мы напишем
stop=abs((C-linia vhoda));
ApplyStop(stopTypeTrailing, stopModePoint, stop, True, True );

То получается, что мы должны выйти внутри бара, по цене которая не может быть определена до тех пор, пока бар не закроется. Т.е. смотрим в будущее

Или я опять не прав Sad

Стоп. Цена как раз заранее известна. HHV - размер трейлинга (для лонга) Если эта цена достигнута, то по ней и выходим. В принципе там есть варианты выхода и по Close ...

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



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

СообщениеДобавлено: Чт Апр 29, 2010 2:51 pm Ответить с цитатой Вернуться к началу

000 писал(а):

Стоп. Цена как раз заранее известна. HHV - размер трейлинга (для лонга) Если эта цена достигнута, то по ней и выходим. В принципе там есть варианты выхода и по Close ...


ну как же так....
вот смотри
stop=abs((C-linia vhoda));
ApplyStop(stopTypeTrailing, stopModePoint, stop, True, True );

Ведь тут stop говорит - берем Закрытие текущего бара и отнимаем от него точку входа. Правильно?
Тогда ами должен из HHV с момента входы вычесть значение стопа и это будет уровень, на котором мы выйдем.
Команда ApplyStop(stopTypeTrailing, stopModePoint, stop, True, True );
говорит АМИ выйти ИМЕННО по этому уровню, но КАК он может выйти по этому уровню, если STOP не может быть посчитан пока не появится Close????

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


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

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

Нет. Ами смотрить от прошлого HHV и отнимает от него значение стопа. Если Low ниже этого значения, то значит когда то внутри бара была цена равная уровню стопа. Вот по этой цене он и выходит. Как на баре входа точно не скажу. Но у тебя все равно стоит SetOption("ActivateStopsImmediately", 0);

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



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

СообщениеДобавлено: Чт Апр 29, 2010 4:25 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Нет. Ами смотрить от прошлого HHV и отнимает от него значение стопа. Если Low ниже этого значения, то значит когда то внутри бара была цена равная уровню стопа. Вот по этой цене он и выходит. Как на баре входа точно не скажу. Но у тебя все равно стоит SetOption("ActivateStopsImmediately", 0);


ну это я понимаю Smile
но вот "отнимает от него значение стопа" меня сильно смущает.
Пример:
предыдущий бар сделал HHV=100.
Мы пишем ApplyStop(stopTypeTrailing, stopModePoint, 10, True, True );
Уровень стопа жестко и явно описан = 10.
Значит если в любом последующем баре (примем что HHV больше не наступит никогда) L будет <=90 (100-10), то тут Ами и выйдет.
Тут все ОК и никаких вопросов нет.

Теперь мы явные 10 заменяем на условие (С-точка входа). И вот тут у меня засада.
Пусть точка входа=90. А вот с "С" сложнее

Если мы говорим, что для ами при расчете уровня стопа Закрытие наступает именно в момент Закрытия бара (условно для 5 минут в 18ч 25минут), то значение для расчета уровня выхода мы получим ровно в 18ч25м00сек. И значит что выйти внутри бара мы уже не можем так как он уже закончился. Следовательно мы получаем при тесте заглядывание в будущее. Вот как это выглядит

Закрытие = 97
Тогда уровень стопа = 100-(97-90)= 93.
При этом Low бара =91 и был получен в 18ч 22м 10 сек
И значит, что если наше L=91, то мы выходим "задним числом". Мы уровень определили по закрытию ровно в 18-25, а вышли по нему в 18-23.
Ну вот как то так.

Но теперь вариант №2.
имеем ApplyStop(stopTypeTrailing, stopModePoint, stop, True, True );
Если Ами при постановке стопа (отсылке ордера) принимает что Закрытие бара наступает каждый тик (а при реал тайме так оно и есть) то тогда расет будет такой:
1й тик бара= 99, тогда уровень стопа = 100-(99-90)=91
2й тик = 98, уровень 92
3й = 97, уровень 93
................
142 тик = 95 и уровень стопа = 95 (100-(95-90) и именно в этот момент наступает событие когда L=C=уровню стоп лосса. И мы выходим из сделки

Если это действительно так, то я изобрел грааль
Посмотреть профиль Отправить личное сообщение
max



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

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

Вот в качестве примера картинка
Зеленая стрелка в 11 часов - вход
Красный кружок - HHV после входа и до выхода
Красная линия - точка отчета в формуле stop=(С-Линия)
Если мы считаем, что ами принимает каждый тик за закрытие, то когда рынок идет вниз, стоп должен приближаться, когда вверх - нет
Я постарался воспроизвести в экселе движение стопа по формуне

HHV-(C-Line) и бары выхода у меня с ами совпали, а вот уровни нет. Эксельный стоп заметно ниже, чем у ами

Вот как же блин он высчитывает
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Апр 29, 2010 8:05 pm Ответить с цитатой Вернуться к началу

Считает он вот так. См картинку.
Да. Вот еще что. Сразу внимания не обратил.
это
Код:

ApplyStop(stopTypeTrailing, stopModePoint, stop, True, True );м

скорее всего не правильно
Пармтры ApplyStop
1. Тип. Тут все Ок
2. Способ задания. Тут все Ок
3. Размер стопа. Все Ок
4. Способ выхода. Тут ошибка. Он может быть 0, 1, 2. Не True
5. Изменение. Если True, то разрешает менять размер стопа когда сделка уже открыта. Если надо зафиксировать размер стопа в момент открытия, то должно быть False
6. Пауза в торгах после стопа


У тебя разрешено изменение размера стопа. Поэтому фиг его знает какой он там в какой момент. Не правильно думать, что он зафиксирован в момент сделки.

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



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

СообщениеДобавлено: Пт Апр 30, 2010 10:22 am Ответить с цитатой Вернуться к началу

1.Не, значение True может быть - я из хелпа ами брал
2.но путем прогона через BarReply выяснил, что формула stop=(C-Line) для трейлинга, при котором используется выход не по закрытию а по пересечению линии стопа не работает. Ами отменяет сделки задним числом. Следовательно все остальное уже не важно
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Апр 30, 2010 8:31 pm Ответить с цитатой Вернуться к началу

Если ами что то делает не так как задумано, то, с вероятностью процентов 99, сам накосячил или не понял как работает.
Не думаю, что сделки отменяются из-за трейлинга. Может со входами накосячил?

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



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

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

000 писал(а):
Если ами что то делает не так как задумано, то, с вероятностью процентов 99, сам накосячил или не понял как работает.
Не думаю, что сделки отменяются из-за трейлинга. Может со входами накосячил?


да нет! отменяются именно трейлинговые выходы - бар реплай именно так показывает - но я думаю что тут именно засада в C-line ведь если говорить АМИ искать пересечение внутри бара со стоп линией и выйти по нему - то он и будет то рисовать стрелку то убирать пока бар не закроется
а вот если ами сказать закрыть трейлинг по стопу тогда проблем не будет
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Угу. Я так понял, что ты разобрался...

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen