Начать новую тему Ответить на тему |
Список форумов 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 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Nero Wolfe писал(а): |
В какой то из программ анализа (в Multicharts кажется), на скринах видел интересую визуализацию сделок: входы и выходы соединены пунктирной линией и сразу видно где зашел, где вышел из сделки.
Вот скрин
Можно ли в АМИ так сделать? |
Скрин не вижу. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
2 варианта.
Если надо чтобы чтобы котировки за пределами дневной сессии вообще не учитывались системой, то можно включить фильтрацию в БД
http://www.amisite.ru/begin/creat_bd.shtml
см настройки «Intraday settings»
А если надо чтобы система обсчитывала котировки за пределами дневной сессии, но сделок там не совершала, то просто добавь в правила сделок фильтр
Код: |
TimeFilter = TimeNum() > 100000 AND TimeNum() < 180000;
Buy = ... AND TimeFilter; |
Только в таком случае стопы все равно будут срабатывать и за пределами... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Пиво
Зарегистрирован: 03.01.2008
Сообщения: 49
Откуда: Балаково
|
Итак есть примерно такой код.
Цитата: |
AM=Param("Periods",20,10,200,1);
bm=Ref((H+L+C)/3,-1);
dir=abs(bm-Ref(bm,-1*am));
vol=Sum(abs(bm-Ref(bm,-1)),am);
ER=dir/vol;
UPS = int((1-er)*100);
//-----------------------------
n = UPS;
A = Param("A",100,0,200,10);
X = (((A*0.015-1) - Ref(Sum(H,n),-1) - A*0.015*n))/(A*0.015 - (n+1)-Lo); |
Нижняя часть кода от балды, суть не в этом
В таком виде он не работает конечно, ибо бракует значение n.
Ставим
Цитата: |
n = LastValue(UPS); |
работает.
Теперь вопросы.
При построении графика для X, ами построит нам его для последнего значения UPS. Но, согласно коду, значение UPS вообще каждый бар разное.
Вопрос 1: как построить график для Х, чтобы ами на каждом баре ставил правильное значение UPS, а не последнее вычисленное в чарте?
Вопрос 2: При прогоне кода через бектест, какие значения UPS ами берёт для расчёта? Последнее в чарте или истинное для каждого бара?
Вопрос 3 Как изменить код, чтобы и рисовалось и тестировалось правильно? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
У меня на n не ругается (версия 5.8.3). Зато ругается на Lo, что не удивительно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
Загружу сюда. |
_________________ Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает. |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В общем можно типа так сделать. Buy, Sell, Short, Cover, ApplyStop(). Потом Equity() для удаления лишних сигналов и активации стопов. И потом соединить соответствующие сигналы. Только это будет отдельный индикатор. И не факт, что он на 100% совпадет с результатами портфельного тестера. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
qqq = Null;
procedure Line(x1, x2, y1, y2) // процедура которая расчитывает линию
{
step = (y2 - y1)/(x2 - x1);
for(j = x1; j < x2; j++)
{
if(j == x1)
qqq[j] = y1;
else
qqq[j] = y1 + (j-x1)*step;
}
}
Buy = Cross(C, MA(C, 10));
Sell = Cross(MA(C, 20), C);
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
pos = 0;
for(i = 1; i < BarCount; I++)
{
pos[i] = Pos[i - 1];
if(pos[i] == 0)
{
if(Buy[i])
{
pos[i] = 1;
BeginXP = i;
BeginYP = C[i];
}
}
if(pos[i] == 1)
{
Line(BeginXP, i, BeginYP, C[i]);
if(Sell[i] == 1)
{
pos[i] = 0;
}
}
}
Plot(C, "", colorBlack, styleCandle);
PlotShapes(Buy * shapeUpArrow, colorGreen, 0);
PlotShapes(Sell * shapeDownArrow, colorRed, 0);
Plot(qqq, "", colorGreen, styleDots); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
Спасибо, буду пробовать
Такой бы функционал в АМИ по дефолту, мне кажется, очень удобно... |
_________________ Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает. |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Подумалось.
А вот если ничего не соединять линией, а просто закрасить фон между покупкой и продажей, то все ГОРАЗДО проще. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexanderIII
Зарегистрирован: 02.11.2014
Сообщения: 11
|
Помогите пожалуйста, не могу разобраться в чем проблема:
Пытаюсь создавать несколько условий покупки
Buy1 =
Bay2 =
Bay = Bay1 or Bay2
При прохождении сканирования выдает ошибки с указанием на 1 и 2
при этом нет никаких проблем, когда те же условия прописываю путем Buy = _____________ or _____________ закладывая условия Buy1 и Buy2
может что нибудь в настройках Ами не так |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Может дело в этом
Buy1 =
Bay2 =
Bay = Bay1 or Bay2 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexanderIII
Зарегистрирован: 02.11.2014
Сообщения: 11
|
Да нет, это я на форуме опечатку сделал, это не только с buy |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тогда не достаточно информации для ответа. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
inivin
Зарегистрирован: 28.02.2015
Сообщения: 12
|
Подскажите как сказать амиброкеру не переводить большие числа в экспотенциальную нотацию , как пример 2.01502e+007?
Надо оставлять число как есть. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В каком месте? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
Начать новую тему Ответить на тему |
Список форумов 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 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|