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



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

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

Все я понял тебя. Спасибо!
Посмотреть профиль Отправить личное сообщение
Orange2000



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

СообщениеДобавлено: Вс Окт 30, 2016 9:47 am Ответить с цитатой Вернуться к началу

Олег привет. Не буду создавать новую тему (или лучше бы было создать?)

Поиском ничего не нашел на мой вопрос.

Есть простая система, где выход по тейку или стопу.
Для входов использую High и Low, т.е. входы внутри свечи.

Картинку прикладываю.

Если свеча большая, тестер делает закрытие (тейк) на этой же свече, хотя вход был выше и той цены что по тейку указана уже не было.

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

для тейка указываю:
ApplyStop( 1, 2, Opt2, 1 ,False,1,1,-1);//take

samе bar exit отключен.
И все равно сделки проходят на одной свече.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Окт 30, 2016 10:26 am Ответить с цитатой Вернуться к началу

Ни разу не пользовался опцией ValidFrom.

пара вопросов. Стрелочки на картинке это по результатам теста из АА или просто написан индикатор для вывода стрелочек в котором используется функция Equity()?
Если второе, то возможно Equity() не понимает опцию ValidFrom. Еще подумал. Если стрелки по результатам теста в АА, то какой режим тестера использовался, старый или портфельный? Возможно старый не понимает опцию ValidFrom.

А если попробовать ValidFrom поставить 2, то все равно не работает?
Еще можно попробовать указать в функции явно ValidFrom = 1.

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



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

СообщениеДобавлено: Вс Окт 30, 2016 10:53 am Ответить с цитатой Вернуться к началу

000 писал(а):
Ни разу не пользовался опцией ValidFrom.

пара вопросов. Стрелочки на картинке это по результатам теста из АА или просто написан индикатор для вывода стрелочек в котором используется функция Equity()?
Если второе, то возможно Equity() не понимает опцию ValidFrom. Еще подумал. Если стрелки по результатам теста в АА, то какой режим тестера использовался, старый или портфельный? Возможно старый не понимает опцию ValidFrom.

А если попробовать ValidFrom поставить 2, то все равно не работает?
Еще можно попробовать указать в функции явно ValidFrom = 1.


Был из АА. Но на индикаторе тоже самое. Бэк тест по portfolio. Старый дает такой же результат. ВалидФром меняю на 2 - нет изменений. Явно задал - тоже самое.

вот нашел в backtest настройках на вкладке стопов Activate Stops immidiatly галка стояла...убрал и теперь сигналы переносятся. Но вот вроде настройки ти они второстепенное знаечение и приоритет на коде. Как в коде прописать тогда отсутствие этой галки?

картинка если с галочкой!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Окт 30, 2016 11:33 am Ответить с цитатой Вернуться к началу

SetOption( field, value );

"ActivateStopsImmediately"

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



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

СообщениеДобавлено: Вс Окт 30, 2016 11:51 am Ответить с цитатой Вернуться к началу

000 писал(а):
SetOption( field, value );

"ActivateStopsImmediately"


спасибо!
Пила в РТС четверг-пятница сподвигла меня на раздумья. Казавшейся грааль за эти 2 дня дал 1500 пп прибыли.
ВОт скрин. входы идеальны. 9 сделок и одна в минус)))

Но на истории - сливать будет. Эти 2 дня - просто оказались исключением из правил)
Посмотреть профиль Отправить личное сообщение
Bagira



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

СообщениеДобавлено: Сб Ноя 05, 2016 11:12 pm Ответить с цитатой Вернуться к началу

Здравствуйте, уважаемые форумчане.
Пишу тут впервые, хотя регился уже давно.
Хотелось бы понять, почему Close[200] и больше AFL отказывается выдавать значения.

А глобально задача стоит такая. Узнать количество баров при положительных и отрицательных сделках и выставить их в "исследование", т.е. Explore.

(как только не пытался, пришлось сдаться и написать.

Заранее благодарен!
Привожу код:
Код:
SetBarsRequired( 100000, 100000 );
SetPositionSize(100,2);   //торгуемое количество лотов
SetTradeDelays( 0, 0, 0, 0 );   //задержка торгов
SetOption("InitialEquity", 10000);  //начальный капитал
SetOption("AllowSameBarExit", True);   //запрет выхода на баре входа
SetOption("ActivateStopsImmediately", False);  //немедленная активация стопов
SetOption("AllowPositionShrinking", False); //разрешить открывать позицию размером меньше заданного (принедостатке средств)
BuyPrice=C;
SellPrice=C;


//b=

t=Optimize("Период", 30, 14, 40, 2 );


Cond1=IIf(C<BBandBot(C,t,2), 1, 0);
Cond2=Cross(C,BBandTop(C,t,2)); 




Buy=Cond1;
Sell=Cond2;
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );
//ApplyStop(3 ,

//u=IIf(ROC(Cross(BBandBot(C,t,2),C)-Cross(C,BBandTop(C,t,2))>0,1,0)


a=IIf(Buy==1, BarIndex(),0);
b=IIf(Sell==1, BarIndex(),0);
a=a>0;
b=b>0;


//Plot(C[b], "бар покупки", colorRed);




//DeltaPlus=IIf(C[b]-C[a]>0, b-a, 0);

//Plot(BarIndex(), "номер бара", colorWhite);
//Plot(a, "бар покупки", colorRed);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Хм. Не вижу где и как ты пытаешься получить Close[200] и больше...

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



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

СообщениеДобавлено: Вс Ноя 06, 2016 7:55 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Хм. Не вижу где и как ты пытаешься получить Close[200] и больше...

Если я напишу к тому коду такое выражение:
[/code]e=Close[b]-Close[a];[/code]

то амиброкер почему-то выдает ошибку.
Я экспериментировал, и выявил, что номер бара до 200 (т.е. close[199]) амиброкер возвращает, а больше, почему-то не хочет.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Ноя 06, 2016 11:58 pm Ответить с цитатой Вернуться к началу

Тут дело скорее всего не в этом.
Если ты пишешь так
Код:

a=IIf(Buy==1, BarIndex(),0);
b=IIf(Sell==1, BarIndex(),0);
e=Close[b]-Close[a];

то разумеется Ами выдаст ошибку потому, что a и b массивы а индекс должен быть константой.
На счет out of range. Такую ошибку ами выдает только в момент добавления кода на график
Код:

SetBarsRequired(sbrAll, sbrAll);

Plot(C[1000], "", colorRed);

Если заменить C[1000] на C[100] и добавить код на график, то потом можно изменить индекс обратно и все будет работать. Это особенность обработчика ошибок Ами.

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



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

СообщениеДобавлено: Вт Ноя 08, 2016 7:58 pm Ответить с цитатой Вернуться к началу

Олег, добрый вечер. Вопрос: требуется растянуть некое значение на последнем баре дня (X) на весь день. Что-то вроде
TimeFrameGetPrice( "C", inDaily, 0, expandLast ), только вместо "С" этот самый "X".
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Ноя 09, 2016 12:25 am Ответить с цитатой Вернуться к началу

Может что то типа ValueWhen() ?

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



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

СообщениеДобавлено: Ср Ноя 09, 2016 7:13 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Может что то типа ValueWhen() ?


Спасибо! Да, действительно с помощью ValueWhen() можно описать, но я неправильно задал вопрос. У меня сигнал формируется на последнем баре внутри дня, что то типа x = IIf(EndDay,Cond,0); можно этот сигнал растянуть на весь день:
y = Ref(ValueWhen(ENDDay ,x, 0),-1); и нарисовать внутри дня.
Проблема в том, чтобы нарисовать этот "y" на дневном графике.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Ноя 09, 2016 10:06 pm Ответить с цитатой Вернуться к началу

Брррр.
На следующий день растянуть? Так оно и так будет показывать до следующего ENDDay.

Цитата:

Проблема в том, чтобы нарисовать этот "y" на дневном графике.

На дневном? Или внутридневном?

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



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

СообщениеДобавлено: Чт Ноя 10, 2016 12:40 am Ответить с цитатой Вернуться к началу

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen