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



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

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

Пытаюсь освоить программу на примере стратегии Turtle Soup. На всякий случай, ниже привожу ее описание.
На примере из учебника установил первое условие:

Bot = Ref(LLV(L, 20), -1);
PlotShapes((Cross(Bot, C))*shapeSmallUpTriangle, colorRed, 0, H);

Подскажите, пожалуйста, как задать второе: нужно учитывать этот минимум только в случае, если предыдущий минимум произошел по крайней мере на четыре дня раньше?

Код:
1. Сегодня должен быть сделан новый 20-дневный минимум — чем ниже, тем лучше.
2. Предыдущий 20-дневный минимум должен произойти по крайней мере на четыре
торговые сессии ранее. Это очень важно.
3. После того, как рынок упадет ниже предыдущего 20-дневного минимума, разместите для
целей входа покупающий стоп на 5—10 тиков выше предыдущего 20-дневного минимума.
Этот покупающий стоп годится только на сегодня.
4. Если покупающий стоп исполняется, немедленно ставьте первоначальный действующий-
до-отмены продающий стоп-лосс на один тик ниже сегодняшнего минимума.
5. Когда позиция становится прибыльной, используйте плавающий стоп, чтобы
предотвратить потерю прибыли. Некоторые из этих сделок будут длиться два-три часа, а
некоторые — несколько дней. Из-за волатильности и шума 20-дневных максимумов и
минимумов каждый рынок ведет себя по-своему.
6. Правило повторного входа: если на первый или второй день существования сделки у
вас сработал стоп, вы можете войти повторно с помощью покупающего стопа на
первоначальном уровне входа (только на первый или на второй день). Это должно
несколько увеличить вашу прибыль.
Посмотреть профиль Отправить личное сообщение
Mechanic



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

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

Ref(BarsSince(Bot), -1) >= 4;
Посмотреть профиль Отправить личное сообщение ICQ Number
cm_s



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

СообщениеДобавлено: Вт Окт 04, 2011 2:44 pm Ответить с цитатой Вернуться к началу

и какой текст в итоге получился?
Посмотреть профиль Отправить личное сообщение
MA8



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

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

Mechanic писал(а):
Ref(BarsSince(Bot), -1) >= 4;

Спасибо! Буду разбираться.

cm_s писал(а):
и какой текст в итоге получился?

Пока никакой. Не было пока времени вернуться к скрипту.
Посмотреть профиль Отправить личное сообщение
MA8



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

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

Не могу понять, но с новым условием тоже не получается. Использую теперь вот такой код:

Bot = Ref(LLV(L, 20), -1);
IIf (Ref(BarsSince(Bot), -1) >= 4, PlotShapes((Cross(Bot, C))*shapeSmallUpTriangle, colorRed, 0, H),0);

Но стрелки рисуются для всех минимумов, без учета условия предыдущего минимума не ранее 4 дней до.
Посмотреть профиль Отправить личное сообщение
MA8



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

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

Разбираю формулу в Guru Chart Commentary, но не могу понять почему значение переменной aaa на любом баре равно нулю. Пробовал и условия ставить aaa = BarsSince(Bot>0) и aaa = Ref(BarsSince(Bot), -1) >= 4, но все-равно выдается ноль. Должно же оно со временем менятся.

Bot = Ref(LLV(L, 20), -1);
aaa = BarsSince(Bot);
WriteVal(aaa);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Ну давай смотреть.
Bot у тебя равно самому минимому за 20 баров.
А aaa это BarsSince (прошло баров с момента истинного значения) Bot. И когда это у Bot истинное значение (1)???
Вот поэтому всегда 0.

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



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

СообщениеДобавлено: Ср Окт 19, 2011 2:59 pm Ответить с цитатой Вернуться к началу

Видно, не понимаю до конца как BarsSince работает. Я правильно понял, что в BarSince должно всегда стоять условие? Иначе у функции нет ложного или истинного условия и у нее нет отправной точки для отсчета баров. Верно?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Окт 19, 2011 4:33 pm Ответить с цитатой Вернуться к началу

да

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



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

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

Большое спасибо. Разобрался и заработало. Верный код такой:

Bot = Ref(LLV(L, 20), -1);
PlotShapes((Cross(Bot, C) AND Ref(BarsSince(Cross(Bot,C)),-1)>=4)*shapeSmallUpTriangle, colorRed, 0, H);
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen