Начать новую тему Ответить на тему |
Список форумов 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
|
То, что одна бумага сильно облегчает задачу.
Функция equity для портфеля не применима.
Тебе надо построить equity по всему ценовому ряду
RangeType = 0
и потом этот массив анализировать.
Для этого надо определить начало месяца. Это проще всего сделать так
NewMonth = Day() < Ref(Day(), -1);
Собственно все. Дальше берешь значение эквити на начало месяца функцией ValueWhen() и берешь минимум эквити с начала месяца функцией LowestSince() в результате имеешь график просадки по месяцам. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
A181AA
Зарегистрирован: 21.01.2014
Сообщения: 8
|
000 писал(а): |
УУУ. Это довольно сложно.
Для начала надо спросить торгуется портфель ли одна бумага? |
У меня одна бумага. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
A181AA
Зарегистрирован: 21.01.2014
Сообщения: 8
|
|
Посмотреть профиль Отправить личное сообщение |
|
A181AA
Зарегистрирован: 21.01.2014
Сообщения: 8
|
На графике удалось показать просадку с начала месяца. Теперь нужно прописать условия входа. Как узнать есть ли активная (открытая) позиция? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
A181AA
Зарегистрирован: 21.01.2014
Сообщения: 8
|
Profit/Loss за месяц в процентах:
Код: |
PLMonth = (Equity()/ValueWhen(Month()!=Ref(Month(), -1), Equity(), 1)-1)*100; |
|
Последний раз редактировалось: A181AA (Вт Янв 28, 2014 3:47 pm), всего редактировалось 2 раз(а) |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
A181AA писал(а): |
На графике удалось показать просадку с начала месяца. Теперь нужно прописать условия входа. Как узнать есть ли активная (открытая) позиция? |
Вопрос не понял. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
A181AA
Зарегистрирован: 21.01.2014
Сообщения: 8
|
Да не могу сообразить как сделать так, чтобы не открывались новые заявки в случае просадки выше нормы... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Примерно так
У тебя есть правила системы
Buy = ...;
Sell = ...;
...
Дальше
Equity() и бла бла по правилам этой системы.
Дальше ты модифицируешь правила с учетом Equity()
Buy = Buy AND ...Equity()...;
Sell = Sell AN ...Equity()...;
И все на выходе имеешь сигналы первоначальной системы модифицированные с учетом Equity() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Коллеги, привет!
Помогите плизз. Почему у меня такой простой код не работает:
Код: |
Filter = 1;
my_name = FullName();
AddColumn(my_name,"Название инструмента"); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Наверное потому, что функция FullName() возвращает строку, а функция AddColumn требует массив. Замени ее на AddTextColumn() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
Подскажите пожалуйста.
Как узнать дату и время на баре
for(i = 1; i < BarCount; i++)
{
Close[i] - день, минуты?
} |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
logMonth = Month(); //1-12 месяц
logYear = Year(); // год
logDay = Day(); //1-31 день
logTime = TimeNum(); //время
Потом обращаешься к этим массивам по индексу i в цикле. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
Спасибо за ответ)))
Я Вас правильно понял
LogTime = TimeNum();
for(i = 1; i < BarCount; i++)
{
a1=Close[i];
t1=LogTime[i]; <- так?
} |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Аха, точняг |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
000 писал(а): |
Наверное потому, что функция FullName() возвращает строку, а функция AddColumn требует массив. Замени ее на AddTextColumn() |
Олег, спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов 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 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|