Автор |
Сообщение |
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
вот у меня есть 3 стратегии.
по сигналам buy, sell, short, cover
а также используются 2 ApplyStop
как мне их протестировать все одновременно, распределив каждой по трети депо?
и узнать совместную эквити и массив сделок
вообще, массив выполненных сделок в ами куда записывается?
(Buy, Sell, Short, Cover - это он и есть?)
----
осложняется ситуэйшн ещё в том, что
у меня каждая стратегия работает на своём графике, но не на своём тикере!
сделал я это так:
O = Oo;
C = Cc;
H = Hh;
L = Ll;
сделано это для того, чтобы ApplyStop брал цены, которые мне нужны, а не которые он хочет.
---
чего я боюсь от совмещения стратегий -
вот, предположим, мы вошли по сигналу в сделку по 1 стратегии, а потом по 2 стратегии.
а потом у нас ApplyStop.
не вырубит ли ApplyStop всю позу целиком, (а нужно только по 1 стратегии)?
ну и далее,
у нас включено Equity(1)
а это значит, что сигналы с ApplyStop записываются в основные сигналы.
не повлияют ли в таком случае сигналы с одной стратегии на сигналы другой стратегии?
буду рад разьяснению =) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В общих словах..
Каждая система должна тестироваться на своей "бумаге" даже если содержимое этих бумаг одинаковое.
Просто гоняешь код в портфельном тестере. Это для того, чтобы сигналы разных стратегий не мешали друг другу.
Цитата: |
распределив каждой по трети депо? |
Сайз при этом задаешь функцией SetPositionSize(); |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
ну вот у меня есть описание каждой стратегии в AFL
тикеров такого количества пока нет, но я их создаю.
итого у меня три тикера и три файла AFL со стратегиями.
и как их в тестер запихать? о_О |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А надо создать один AFL со всеми тремя стратегиями примерно такого вида
Код: |
if(Name() == "TICKER1")
{
// стратегия 1
}
else if(Name() == "TICKER2")
{
// стратегия 2
}
...
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
спасибо огромное !
да действительно решение очень простое,
и чего я мучился... =) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
кстати, а что,
Buy, Sell в процедуру не запихать?
тестер пишет... missing buy/sell variable assignments
прога такая:
if(Name() == "TICKER1")
{
// стратегия 1
strategy1();
}
else if(Name() == "TICKER2")
{
// стратегия 2
strategy2();
}
где strategy1 и strategy2 - это процедуры |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Напиши пред первым if
Buy = 0;
Sell = 0;
Просто если вдруг символ не равен ни одному из перечисленных в If, то AFL как бы нет Buy и Sell. Вот поэтому и ругается. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
да, тестер тогда запускается,
но в результатах ни одной сделки почему-то |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А если не меняя настроек тестера запихать туда одну из стратегий (её тоже не менять), то сделки будут?
Только ничего не менять. Совсем ничего. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
ну вот самый простой пример:
когда текст из процедуры просто ставим в if
всё ок,
а когда только вызов поцедуры, то нет.
такое ощущение, что изменения Buy и Sell в процедуре игнорируются
procedure Strategy(n)
{
Buy = C > MA(C, n);
Sell = C < MA(C, n);
}
Buy = 0;
Sell = 0;
if(Name() == "TICKER1")
{
n = 10;
Strategy(n);
Buy = C > MA(C, n);
Sell = C < MA(C, n);
}
else if(Name() == "TICKER2")
{
n = 5;
Strategy(n);
}
else if(Name() == "TICKER3")
{
n = 7;
Strategy(n);
} |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
так. .. идея, а если бай-селл обнулить перед объявлением процедуры?
а то может он их локальными считает, раз они впервые появляются в процедуре?
(хотя это бред) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
вау... кажется заработало!
ща ещё раз проверю... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
fantomas
Зарегистрирован: 29.04.2010
Сообщения: 11
|
000 писал(а): |
А надо создать один AFL со всеми тремя стратегиями примерно такого вида
Код: |
if(Name() == "TICKER1")
{
// стратегия 1
}
else if(Name() == "TICKER2")
{
// стратегия 2
}
...
|
|
А если стратегий несколько , а инструмент один, но хочется посмотреть как будет себя вести портфель стратегий, возможно ли протестировать несколько стратегий на одном активе? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Запросто.
Как это сделать на форуме обсуждалось. Или можно посмотреть вот тут http://heaventrading.wordpress.com/category/amibroker/
Мультисистемный тестер
Только там очень геморойный метод используется для создания клонов. Можно гораздо проще. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
VladimirN
Зарегистрирован: 07.11.2009
Сообщения: 49
|
Если там геморойный, то пожалуйста здесь скажите - как можно самым простым способом оценить портфель из трех систем, торгующих на одном инструменте?
(можно ли настроить всё так, что бы торговля велась будто с трех разных счетов - тогда входы в шорт одной системы не выбивали бы лонги других).
Заранее спасибо. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|