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



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

СообщениеДобавлено: Ср Июн 21, 2017 4:51 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Цитата:
если пересекаем ExitLong (красная линия), когда цена выше параболика

Код:
SellCond1 = Cross(H, ExitLong) AND O > Parab;

Цитата:
если не дошли до ExitLong, тогда выходим на обратном пересечении параболика

Код:

SellCond2 = Cross(Parab, O);
Sell =  SellCond1 OR SellCond2;

Так чтоли?

Нет. Я так писал. Тогда, если у нас пересечение свечки и EnterLong происходит на первой свече после перескока параболика, то она на этой же свече и выходит. На скриншоте просто другой случай. На скрине пересечение и вход на 3 свече, когда уже ушли от Cross(Parab,O). А если пересечение на первой свече, ну как раз в момент Cross(Parab,O), то она тут же и выходит.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Июн 21, 2017 5:08 pm Ответить с цитатой Вернуться к началу

Ну так добавь
Код:
 AND Buy == 0;

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



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

СообщениеДобавлено: Ср Июн 21, 2017 5:44 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Ну так добавь
Код:
 AND Buy == 0;

Вот так ?
Код:

...
SellCond1 = Cross(H,ExitLong) OR H>=ExitLong AND O>Parab;
SellCond2 =  Cross (Parab,O) AND C>Parab AND Buy==0
Посмотреть профиль Отправить личное сообщение
home30



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

СообщениеДобавлено: Ср Июн 21, 2017 8:30 pm Ответить с цитатой Вернуться к началу

home30 писал(а):
000 писал(а):
Ну так добавь
Код:
 AND Buy == 0;

Вот так ?
Код:

...
SellCond1 = Cross(H,ExitLong) OR H>=ExitLong AND O>Parab;
SellCond2 =  Cross (Parab,O) AND C>Parab AND Buy==0

Нет, так не работает. Неправильно выходит. Выходит по предыдущему ExitLong (по красной линии)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Июн 21, 2017 8:50 pm Ответить с цитатой Вернуться к началу

Конечно не так
Вот так
Код:
Sell =  SellCond1 OR SellCond2 AND Buy == 0;

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



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

СообщениеДобавлено: Ср Июн 21, 2017 9:27 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Конечно не так
Вот так
Код:
Sell =  SellCond1 OR SellCond2 AND Buy == 0;

Я дико извиняюсь.
Код:

SellCond1 = Cross(H,ExitLong) AND O>Parab;
SellCond2 = Cross(Parab,O) AND O<Parab;
Sell = SellCond1 OR SellCond2  AND Buy==0 OR TimeNum()==184359;
SellPrice = IIf( SellCond1,10*ceil(0.5+ExitLong/10),C);

Но теперь все наоборот. На первой свече после параболика, когда Cross(H,ExitLong) он не выходит. Выходит только по SellCond2. А вот если пересечение происходит на второй и последующей, то выходит правильно. Сдвиг ExitLong назад как Cross(H,ref(ExitLong,-1) ситуацию не меняет.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июн 22, 2017 10:25 am Ответить с цитатой Вернуться к началу

Тогда давай попробуем по твоему
Код:
SellCond1 = H>=ExitLong AND O > Parab;
SellCond2 = Cross(Parab, O) AND Buy == 0;
Sell = SellCond1 OR SellCond2;

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



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

СообщениеДобавлено: Чт Июн 22, 2017 12:30 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Тогда давай попробуем по твоему
Код:
SellCond1 = H>=ExitLong AND O > Parab;
SellCond2 = Cross(Parab, O) AND Buy == 0;
Sell = SellCond1 OR SellCond2;

Заработало вот так
Код:

SellCond1 = Cross(H,ExitLong) OR H>=ExitLong AND O>Parab;
SellCond2 = Cross (Parab,O) AND O<Parab;
Sell = SellCond1 OR SellCond2 AND Buy==0 OR TimeNum()==184359;
SellPrice = IIf( SellCond1,10*ceil(0.5+ExitLong/10),C);

Я так и не понял, почему на первой свече после параболика по Cross(H,ExitLong) она не хочет выходить. А выходит только по H>=ExitLong. На входе же срабатывает на первой свече Cross(EnterLong,L).
Я еще про скобки в выражениях спросить хотел. Вот тут
Код:

Sell = SellCond1 OR SellCond2 AND Buy==0 OR TimeNum()==184359;

не будет ли Buy==0 относиться только к SellCond2 ? Не нужно брать в скобки вот так
Код:

Sell = (SellCond1 OR SellCond2) AND Buy==0 OR TimeNum()==184359;
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июн 22, 2017 1:56 pm Ответить с цитатой Вернуться к началу

OR выполняется в первую очередь. Как AND и OR выполняются в той же последовательности как + и *

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



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

СообщениеДобавлено: Пт Июл 14, 2017 9:21 pm Ответить с цитатой Вернуться к началу

А если нужно получить самое низкое значение цены, пока цена была выше параболика, какую функцию использовать ? Ну т.е. от Cross(O,Parab) до Cross(parab,O). Ну и самое высокое значение цены, пока цена ниже сара.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Код:
LS = LowestSince( Cross(O, parab), L ) ;
LS = ValueWhen( Cross(parab, O), LS);

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



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

СообщениеДобавлено: Пн Июл 24, 2017 11:55 am Ответить с цитатой Вернуться к началу

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


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

СообщениеДобавлено: Пн Июл 24, 2017 12:22 pm Ответить с цитатой Вернуться к началу

TimeFrameGetPrice()

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



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

СообщениеДобавлено: Вт Июл 25, 2017 11:52 am Ответить с цитатой Вернуться к началу

Спасибо. Вот еще подскажи. Мы уже выше разбирали этот вопрос, но всплыл один нюанс. Нужно, чтобы пересечения параболика считались только начиная с первой свечки нового дня (на минутках). Т.е. если перескок был на вечерке,ну например в 234500, а обратный перескок только в 100500, тогда такие перескоки на запоминаем. Ну сар как-бы растянут между днями. А вот если перескок параболика происходит на первой свече на открытии в 100059, тогда считаем. Код был такой
Код:

Parab = SAR(0.02,0.2);
NewDay = Day() != Ref(Day(), -1);
TradeTime = TimeNum() >= 100059 AND TimeNum() < 184359;
SAR_0L = ValueWhen( Cross(Parab, O) AND TradeTime, Ref(Parab, -1));
SAR_100 = ValueWhen( Cross(O,Parab) AND TradeTime, Ref(Parab, -1));
BuyCond = BarsSince(Cross(O,Parab)) < BarsSince(NewDay);
Buy=Условие and BuyCond;

В этом коде "растянутый" между дня параболик игнорирует, но и перескок на первой свече нового дня тоже пропускает. Не запоминает значения SAR_100 и SAR_0L. Если надо, могу картинки приложить.
Посмотреть профиль Отправить личное сообщение
home30



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

СообщениеДобавлено: Вт Июл 25, 2017 1:13 pm Ответить с цитатой Вернуться к началу

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen