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



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

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

Господа, знатоки.

Подскажите:

1. Есть условие, которое ставится вручную. От него зависят сигналы, условие выглядит следующим образом.
ShowMarket = ParamToggle("Bull Or Bear Market", "Bear|Bull");

Как можно заставить Амик выбирать автоматически, например цена выше/ниже определенной линии, то ...

И еще могу ли я включить результат в условие покупки/продажи.

2. ЕСли у меня стоп по параболику. По пробою последней точки под/над ценой. Часто случается, что параболик изменился на противоположный, но предыдущий (собственно последняя точка), не пробит. И стоп должен быть привязан к последней точке. Как прописать?
Посмотреть профиль Отправить личное сообщение
Red



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

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

И еще:
Подскажите, как написать следующее:

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


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

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

Red писал(а):
Господа, знатоки.

Подскажите:

1. Есть условие, которое ставится вручную. От него зависят сигналы, условие выглядит следующим образом.
ShowMarket = ParamToggle("Bull Or Bear Market", "Bear|Bull");

Как можно заставить Амик выбирать автоматически, например цена выше/ниже определенной линии, то ...

Надо ввести в условия сделки еще один фильтр. Типа так
Код:
Buy = ... AND C > Line; // Line это цена (уровень) этой самой линии

Red писал(а):

И еще могу ли я включить результат в условие покупки/продажи.

???
Red писал(а):

2. ЕСли у меня стоп по параболику. По пробою последней точки под/над ценой. Часто случается, что параболик изменился на противоположный, но предыдущий (собственно последняя точка), не пробит. И стоп должен быть привязан к последней точке. Как прописать?

Это довольно сложно. Станешь делать, накосячишь и будет только хуже.
Вот для примера уровень для пересечения снизу вверх (кода SAR становится выше)

Код:
acc = Param("Acceleration", 0.02, 0, 1, 0.001 );
accm = Param("Max. acceleration", 0.2, 0, 1, 0.001 );

qq = Cross(SAR( acc, accm ), C);
qqq = ValueWhen(qq, Ref(SAR( acc, accm ), -1));

Plot(C, "", colorBlack, styleCandle);
Plot(qqq, "", colorBlue);
Plot( SAR( acc, accm ), "", colorRed, styleDots);

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


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

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

Red писал(а):
И еще:
Подскажите, как написать следующее:

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

Код:

qq = Cross(SAR( acc, accm ), C);
qqq = ValueWhen(qq, H);
Buy = H > qqq;
BuyPrice = qqq;

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



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

СообщениеДобавлено: Вт Май 19, 2009 10:36 am Ответить с цитатой Вернуться к началу

Не хочется надоедать, но сам не справлюсь.

Если будет время посмотрите:

BuyLevel = ValueWhen(Ref(Cond1,-1),H)+X;
Buy = H>= Buylevel;
BuyPrice = BuyLevel+S;
position = 0;

for(i=1;i<BarCount;i++)
{
/*1*/ if(position != 1) // если не в рынке
{
/*1.1*/ if(Buy[i]) // удовлетворяется условие покупки на тек баре
{
pricebuy = BuyPrice[i]; // вход
position = 1; // учет позиции
Buylevel = 0; // отмена уровня покупки ?????
} else // на тек баре нет входа
{
/*1.2*/ if (Buylevel[i]<Buylevel[i-1]) // проверяем на наличие нового уровня
{
BuyLevel = BuyLevel[i]; // новое значение уровня
}
position = 0;
}
} else // если в рынке, до сигнала, то поукпки нет, уровень отменен
{
Buy[i] = 0;
position = 1;
Buylevel = 0;
}
}

Идея такая: при достижении определеного условия покупки сразу не происходит, а хай бара + число х, удовлетворяющий условию становится уровнем покупки. ЕСли на следующей свече пробоя последнего уровня нет, то система проверяет [i] свечу на наличие нового условия покупки.
Если уровень есть и он ниже предыдущего, то он становится уровнем покупки. Ну и соответственно, если позиция=1, то благополучно забываем про уровень, ждем следующего.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Май 24, 2009 9:40 pm Ответить с цитатой Вернуться к началу

Не совсм понял зачем все эти сложности...
Есть уровень покупки, есть условие определения этого уровня. При пересечении хаем этого уровня появится лонг по цене уровня.
Если система уже в лонге, то Ами и так проигнрирует сигнал на покупку.
Если появится новое условие определения уровня, то уровень и так переопределится.
Т.е. имхо вполне достаточно этой части
Код:

BuyLevel = ValueWhen(Ref(Cond1,-1),H)+X;
Buy = H>= Buylevel;
BuyPrice = BuyLevel+S;
Sell = 0;

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

СообщениеДобавлено: Вс Май 31, 2009 11:59 am Ответить с цитатой Вернуться к началу

Выход хочу реализовать для следующей системы
http://amisite.ru/phpBB2/viewtopic.php?t=89

Выход их позиции в конце сессии, как у иностранцев Market on close, те независимо от времени, в 17-45, 12-00, 18-45 - главное чтобы это была последняя свечка в текущем дне

Сегодняшнее закрытие я определил так:
DClose = TimeFrameGetPrice( "C", inDaily,0,expandFirst);//сегодняшнее закрытие

Как написать это
Sell= Short OR ???
SellPrice = Dclose;

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


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

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

Если для теста, то так
Код:

EndDay = Day() != Ref(Day, 1);
Sell= Short OR EndDay

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

СообщениеДобавлено: Вс Май 31, 2009 9:14 pm Ответить с цитатой Вернуться к началу

Да, именно для исторического тестирования.
Олег, попытаюсь понять что значит этот код
EndDay = ( ??? = номеру вчерашнего дня)
продажа при условии short или условии EndDay

что значит Day() ! ?

000 писал(а):
Если для теста, то так
Код:

EndDay = Day() != Ref(Day, 1);
Sell= Short OR EndDay

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


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

СообщениеДобавлено: Вс Май 31, 2009 9:35 pm Ответить с цитатой Вернуться к началу

Day это дата свечки. В коде написано. Если дата свечки не равна дате следующей свечки, то это конец дня.

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

СообщениеДобавлено: Вс Май 31, 2009 9:59 pm Ответить с цитатой Вернуться к началу

Спасибо, теперь все понятно. Совсем забыл про знак != думал тут стандартно <>

_________________
Антон
Посмотреть профиль Отправить личное сообщение
xxxspeed



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

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

Как задать период, чтоб он не зависел от таймфрейма в основном окне. Надо на дневном графике рассчитать LLV ( C, 52 недели ), чтоб комп знал, что 52 это недели, а не пересчитывал их при изменении таймфрейма на графике. Незнал где спросить, поэту написал в этой теме.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Внутри AFL переключаешься на недельки, берешь там LLV, потом экспандишь и все. На любом фрейме меньше или равном недельному будет работать
Код:

TimeFrameSet(inWeekly);
  qqq = LLV(C, 52);
TimeFrameRestore();

qqq = TimeFrameExpand(qqq, inWeekly);

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



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

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

спасибо
Посмотреть профиль Отправить личное сообщение
comatose



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

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

Можно как-нибудь обратиться к данным пользовательского индикатора?
Вставлять куски кодов неудобно.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen