Автор |
Сообщение |
CherrLy
Зарегистрирован: 23.07.2009
Сообщения: 20
|
Можно ли в Ами реализовать тестирование стратегии торговли с несколькими эмитентами?
Т.е. при определённых параметрах я шорчу газпром и покупаю лук. Потом в определённой точке закрываюсь. От тестировщика требуется, чтобы он показал результат по каждой сделке каждого эмитента и совокупный результат по стратегии. Можно ли такое реализовать вообще в АМИ?
Спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Отвечу коротко. Это запросто. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
CherrLy
Зарегистрирован: 23.07.2009
Сообщения: 20
|
Спасибо. Просто не хотелось разбираться, а потом выяснить что так нельзя . Теперь буду копать глубже! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MOAX
Зарегистрирован: 13.03.2011
Сообщения: 44
|
000 писал(а): |
Отвечу коротко. Это запросто. |
Очень интересно - каким образом.
Я создавал композит TickerA/TickerB и тестил это отношение.
Может кто подскажет способ с разделением операций по каждому из тиккеров |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Артур
Зарегистрирован: 10.02.2011
Сообщения: 6
|
Цитата: |
Очень интересно - каким образом. |
if(Name() == "бумага 1"
{
условие1
}
///////////////////////////////////
if(Name() == "бумага2"
{
условие 2
} |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MOAX
Зарегистрирован: 13.03.2011
Сообщения: 44
|
Артур писал(а): |
if(Name() == "бумага 1"
{
условие1
}
///////////////////////////////////
if(Name() == "бумага2"
{
условие 2
}
|
Спасиб, здорово, все прекрасно получилось. Рад до ушей
А как позу закрываете, если не секрет - тоже по пересечению EMA?
Может что поэффективней существует? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MOAX
Зарегистрирован: 13.03.2011
Сообщения: 44
|
Если не утомил еще один вопрос:
В Ами рисую спред-свечи, но что-то не срастается с High и Low, что в коде неправильно?
Код: |
_SECTION_BEGIN( "Spread" );
SetChartOptions( 0, chartShowArrows | chartShowDates );
sTickerA = ParamStr( "Ticker A", "LKH1" );
iQuantityA = Param( "QuantityA", 1, 1, 100, 1, 0 );
sTickerB = ParamStr( "Ticker B", "GZH1" );
iQuantityB = Param( "QuantityB", 1, 1, 100, 1, 0 );
dSpreadC = iQuantityA * Foreign( sTickerA, "C" ) - ( iQuantityB * Foreign( sTickerB, "C" ));
dSpreadO = iQuantityA * Foreign( sTickerA, "O" ) - ( iQuantityB * Foreign( sTickerB, "O" ));
dSpreadH = iQuantityA * Foreign( sTickerA, "H" ) - ( iQuantityB * Foreign( sTickerB, "H" ));
dSpreadL = iQuantityA * Foreign( sTickerA, "L" ) - ( iQuantityB * Foreign( sTickerB, "L" ));
PlotOHLC( dSpreadO, dSpreadH, dSpreadL, dSpreadC, "Spread " + iQuantityA + "*" + sTickerA + " - " + iQuantityB + "*" + sTickerB, ParamColor( "Color", colorBlack ), ParamStyle( "Style" ) | styleCandle);
_SECTION_END();
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В коде все правильно. Ошибка в логике. Нельзя просто вычитать Хаи и Лои. Подобную операцию можно делать с ценами которые были одновременно (например Close, Open они более менее одновременно бывают). Вполне возможно, что когда на одной бумаге был High на другой был Low... Вот поэтому и картинки не очень хорошие.
Тут сделать ничего нельзя. Только смериться... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MOAX
Зарегистрирован: 13.03.2011
Сообщения: 44
|
Спасибо, действительно похоже на то. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|