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



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

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

Пробую написать код для следующей задачи:
Когда бар закрывается выше скользящей средней, то его хай становится уровнем при пробитии которого открывается длинная позиция.

Код:
BuyLine =ValueWhen(C >МА(),H ,1);
Buy = Cross(H,BuyLine ) ;


Хай извлекается, но при следующем баре который тоже закрылся выше МА принимает значение его хая, а мне нужно, чтобы BuyLine не изменялся. Пробовал писать так:


Код:
Cond1 = TimeNum() == 234500;
BuyLine =ValueWhen(C >МА(),H ,1);
BuyLine =Flip(BuyLine ,Cond1 );
Buy = Cross(H,BuyLine ) ;
Plot(BuyLine ,"BuyLine ",colorRed, styleLine);


и так:

Код:
Cond1 = TimeNum() == 234500;
BuyLine =ValueWhen(C >МА(),H ,1);
BuyLine =ExRem(BuyLine ,Cond1 );
Buy = Cross(H,BuyLine ) ;
Plot(BuyLine ,"BuyLine ",colorRed, styleLine);


но тогда получается BuyLine =0, не могу понять почему... Подскажите
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

А если так?
Код:

Cond1 = TimeNum() == 234500;
BuyLine = ValueWhen(Cross(C, MA(C, 20)),H , 1);
Buy = H > BuyLine;
Plot(BuyLine ,"BuyLine ",colorRed, styleLine);
Plot(C, "", colorBlack, styleCandle);

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



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

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

Я об этом тоже думал, но писать не стал. Тут скакать будет меньше, но все равно будет, если смотреть на скриншот то видно, что второй бар, красный, закрывается ниже МА, т.е. клоуз опять уходит под МА, таким образом BuyLine перескакивает на хай третьего бара, после того как он закроется выше МА, а это критично в других случаях.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Т.е. надо так. Пересекло первый раз и потом все пересечения игнорируются пока High не опустится ниже Close?

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



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

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

Пересекло первый раз и значение хая этого бара заморозилось до конца торгового дня.

Предполагается одна сделка за торговую сессию, но именно по этой цене.
Посмотреть профиль Отправить личное сообщение ICQ Number
Dezember



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

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

Попробую объяснить для чего это нужно. Может быть это можно решить другим путем. Многие пробойные системы получают сигнал по закрытию бара, когда он закрылся выше/ниже какого то уровня. Но как мне кажется и в этом случае много ложных сигналов. И вот я решил проверить насколько велика разница между таким сигналом и сигналом с подтверждением, т.е. входить не по закрытию этого бара, а по пробитии его хая. То что я проверил вручную пока подтверждает это. Но ясно же, что вручную я могу проверить лишь малую выборку, поэтому и хотел написать код, который бы так работал. А что он будет пересекать МА или любой другой уровень или фрактал, да что угодно, это второстепенно.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Dezember писал(а):
Пересекло первый раз и значение хая этого бара заморозилось до конца торгового дня.

Предполагается одна сделка за торговую сессию, но именно по этой цене.

Тогда так
Код:

NewDay = Day() != Ref(Day(), -1);
Cond1 = Cross(C, MA(C, 20));
Cond2 = Flip(Ref(Cond1, -1), NewDay);
Cond3 = Cond1 AND NOT Cond2;
BuyLine = ValueWhen(Cond3, H, 1);
Plot(BuyLine, "", colorRed);
Plot(C, "", colorBlack, styleCandle);

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen