Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
Автор |
Сообщение |
Red
Зарегистрирован: 06.05.2009
Сообщения: 13
|
Господа, знатоки.
Подскажите:
1. Есть условие, которое ставится вручную. От него зависят сигналы, условие выглядит следующим образом.
ShowMarket = ParamToggle("Bull Or Bear Market", "Bear|Bull");
Как можно заставить Амик выбирать автоматически, например цена выше/ниже определенной линии, то ...
И еще могу ли я включить результат в условие покупки/продажи.
2. ЕСли у меня стоп по параболику. По пробою последней точки под/над ценой. Часто случается, что параболик изменился на противоположный, но предыдущий (собственно последняя точка), не пробит. И стоп должен быть привязан к последней точке. Как прописать? |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Red
Зарегистрирован: 06.05.2009
Сообщения: 13
|
И еще:
Подскажите, как написать следующее:
При выполнении определенного условия, покупка не происходит сразу, а образуется некий ценовой уровень, по достижению которого происходит покупка.
Допустим хай бара, на котором произощло пересечение??? |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
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
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Red писал(а): |
И еще:
Подскажите, как написать следующее:
При выполнении определенного условия, покупка не происходит сразу, а образуется некий ценовой уровень, по достижению которого происходит покупка.
Допустим хай бара, на котором произошло пересечение??? |
Код: |
qq = Cross(SAR( acc, accm ), C);
qqq = ValueWhen(qq, H);
Buy = H > qqq;
BuyPrice = qqq;
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Red
Зарегистрирован: 06.05.2009
Сообщения: 13
|
Не хочется надоедать, но сам не справлюсь.
Если будет время посмотрите:
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, то благополучно забываем про уровень, ждем следующего. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не совсм понял зачем все эти сложности...
Есть уровень покупки, есть условие определения этого уровня. При пересечении хаем этого уровня появится лонг по цене уровня.
Если система уже в лонге, то Ами и так проигнрирует сигнал на покупку.
Если появится новое условие определения уровня, то уровень и так переопределится.
Т.е. имхо вполне достаточно этой части
Код: |
BuyLevel = ValueWhen(Ref(Cond1,-1),H)+X;
Buy = H>= Buylevel;
BuyPrice = BuyLevel+S;
Sell = 0;
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Амиброкеровец
![](images/avatars/20837814814980a0cbc8a22.gif)
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Выход хочу реализовать для следующей системы
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; |
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если для теста, то так
Код: |
EndDay = Day() != Ref(Day, 1);
Sell= Short OR EndDay
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Амиброкеровец
![](images/avatars/20837814814980a0cbc8a22.gif)
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Да, именно для исторического тестирования.
Олег, попытаюсь понять что значит этот код
EndDay = ( ??? = номеру вчерашнего дня)
продажа при условии short или условии EndDay
что значит Day() ! ?
000 писал(а): |
Если для теста, то так
Код: |
EndDay = Day() != Ref(Day, 1);
Sell= Short OR EndDay
|
|
|
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Day это дата свечки. В коде написано. Если дата свечки не равна дате следующей свечки, то это конец дня. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Амиброкеровец
![](images/avatars/20837814814980a0cbc8a22.gif)
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Спасибо, теперь все понятно. Совсем забыл про знак != думал тут стандартно <> |
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
xxxspeed
Зарегистрирован: 11.01.2011
Сообщения: 22
|
Как задать период, чтоб он не зависел от таймфрейма в основном окне. Надо на дневном графике рассчитать LLV ( C, 52 недели ), чтоб комп знал, что 52 это недели, а не пересчитывал их при изменении таймфрейма на графике. Незнал где спросить, поэту написал в этой теме. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Внутри AFL переключаешься на недельки, берешь там LLV, потом экспандишь и все. На любом фрейме меньше или равном недельному будет работать
Код: |
TimeFrameSet(inWeekly);
qqq = LLV(C, 52);
TimeFrameRestore();
qqq = TimeFrameExpand(qqq, inWeekly);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
xxxspeed
Зарегистрирован: 11.01.2011
Сообщения: 22
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
comatose
Зарегистрирован: 26.07.2010
Сообщения: 4
|
Можно как-нибудь обратиться к данным пользовательского индикатора?
Вставлять куски кодов неудобно. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|