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



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

СообщениеДобавлено: Пн Янв 13, 2014 7:19 am Ответить с цитатой Вернуться к началу

Здравствуйте. Подскажите как сделать вход в позицию при закрытии свечки над неким уровнем, но не сразу, а при некотором откате на n пунктов.

Cond1 = Cross(C,VL);// первое условие покупки

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


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

СообщениеДобавлено: Пн Янв 13, 2014 1:47 pm Ответить с цитатой Вернуться к началу

Код:

Cond1 = Cross(C,VL);

Level = ...; // уровень
MaxLevel = HighestSince( Cross(C, Level), H); // максимум достигнутый ценой после пересечения Level

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



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

СообщениеДобавлено: Пн Янв 13, 2014 2:42 pm Ответить с цитатой Вернуться к началу

Сделал так, но что-то открывается совсем не там где надо....

Cond1 = Cross(C,VL);// цена закрывается над неким уровнем
LevelLong = VL-k; // уровень входа
MinLevel = LowestSince( Cross(C, VL), L); // минимум достигнутый ценой после пересечения уровня
BuySignal = L<= MinLevel ;

BuyPrice = MinLevel;
Посмотреть профиль Отправить личное сообщение
Не математик



Зарегистрирован: 11.04.2012
Сообщения: 44
Откуда: Баранки

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

Евгений писал(а):
Сделал так, но что-то открывается совсем не там где надо....

Cond1 = Cross(C,VL);// цена закрывается над неким уровнем
LevelLong = VL-k; // уровень входа
MinLevel = LowestSince( Cross(C, VL), L); // минимум достигнутый ценой после пересечения уровня
BuySignal = L<= MinLevel ;

BuyPrice = MinLevel;


Я бы написал так.

Код:

VL=...;
k=... ;
Cond1 = Cross(C,VL);// цена закрывается над неким уровнем
LevelLong = valuewhen(Cond1,C) - k; // закрытие над уровнем фиксируем,запоминаем и от него отнимаем необходимый "К"(свой уровень отката)
Buy = Cross(H,LevelLong); // покупаем откат
BuyPrice = LevelLong;
Посмотреть профиль Отправить личное сообщение
Евгений



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

СообщениеДобавлено: Вт Янв 14, 2014 7:15 am Ответить с цитатой Вернуться к началу

Сделал так:

Cond1 = Cross(C,VL);// закрытие над уровнем
LevelLong = ValueWhen(Cond1,VL) - k; // уровень отката
Buy = L<=LevelLong; // покупаем откат
BuyPrice = LevelLong;


В итоге вход произошел на той свечке, которая закрылась над первым уровнем (так как ее минимум получился ниже линии отката). Но минимум был раньше, чем закрытие над уровнем. Хронология событий не соблюдается. На картинке показано где вошел и где должен был войти. Что-то не так с кодом.......
Посмотреть профиль Отправить личное сообщение
Не математик



Зарегистрирован: 11.04.2012
Сообщения: 44
Откуда: Баранки

СообщениеДобавлено: Вт Янв 14, 2014 4:53 pm Ответить с цитатой Вернуться к началу

Евгений писал(а):

В итоге вход произошел на той свечке, которая закрылась над первым уровнем (так как ее минимум получился ниже линии отката). Но минимум был раньше, чем закрытие над уровнем. Хронология событий не соблюдается. На картинке показано где вошел и где должен был войти. Что-то не так с кодом.......


Перейди на таймфрейм ниже.
TimeFrameSet();
TimeFrameRestore();
TimeFrameExpand();

Ами не знает, что было внутри бара. Считает худший вариант.
Посмотреть профиль Отправить личное сообщение
Евгений



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

СообщениеДобавлено: Вт Янв 14, 2014 5:34 pm Ответить с цитатой Вернуться к началу

Я наверное не смогу перейти на таймфрейм ниже. График 5-ти минутный и история закачана на 5-ти минутках. А разве никак нельзя заставить Амиброкер понять, что минимумы надо отслеживать только после закрытия свечки над линией? Не может же минимум свечки быть позже чем ее закрытие.....
Посмотреть профиль Отправить личное сообщение
Евгений



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

СообщениеДобавлено: Чт Янв 16, 2014 6:10 am Ответить с цитатой Вернуться к началу

Вопрос так и не решил. Может кто-нибудь подсказать !!!!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Янв 16, 2014 8:22 am Ответить с цитатой Вернуться к началу

Вот так сделай
Код:
Cond1 = Ref(Cross(C,VL), -1); // закрытие над уровнем

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



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

СообщениеДобавлено: Чт Янв 16, 2014 8:46 am Ответить с цитатой Вернуться к началу

000 писал(а):
Вот так сделай
Код:
Cond1 = Ref(Cross(C,VL), -1); // закрытие над уровнем


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


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

СообщениеДобавлено: Чт Янв 16, 2014 11:16 am Ответить с цитатой Вернуться к началу

Ref() исключает из вот этого
Код:
LevelLong = ValueWhen(Cond1,VL) - k;

свечку на которой произошло пробитие.
А как конкретно не работает? Что не так?

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



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

СообщениеДобавлено: Чт Янв 16, 2014 12:23 pm Ответить с цитатой Вернуться к началу

Вот код который сейчас:

Cond1 = Ref(Cross(C,VL), -1);// условия покупки
LevelLong = ValueWhen(Cond1,VL) - k; //
BuySignal = L<= LevelLong AND InDay; // покупаем откат
BuyPrice = LevelLong;
SellSignal = EndDay;
Sell = SellSignal;
SellPrice = Close;

Cond11 = Ref(Cross(VS,C), -1);// условия продажи
LevelShort = ValueWhen(Cond11,VS) + k; //
ShortSignal = H>=LevelShort AND InDay; //
ShortPrice = LevelShort;
CoverSignal = EndDay;
Cover = CoverSignal;
CoverPrice = Close;
Buy = BuySignal;
Short = ShortSignal;

На картинке непонятные сделки в шорт, а где нужно в лонг не входит....
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Янв 16, 2014 2:31 pm Ответить с цитатой Вернуться к началу

Для начала посмотри есть ли там сигнал на покупку.
Это можно сделать двумя способами.
1. В настройках тестера на закладке Report включи опцию Detailed log
http://www.amisite.ru/begin/bk_set5.shtml
сделай тест и посмотри наличие сигнала
2. Запусти код как индикатор и выведи сигналы с помощью стрелок
типа PolotShapes(Buy, .....)

Если сигнал есть, но система не переворачивается, то в настройках тестера включи Reverse entry signal forces exit
http://www.amisite.ru/begin/bk_set2.shtml

А вообще такие вещи лучше для начала делать отдельно. Сделай только лонг и смотри и добивайся правильной работы.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen