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



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

СообщениеДобавлено: Сб Авг 07, 2010 2:01 pm Ответить с цитатой Вернуться к началу

Продолжаю разбираться в тестере..

теперь волнует тестирование арбитражных стратегий.

а именно:

в момент сигнала нужно купить одну бумагу, продать другую. для простоты это сделать, скажем, по клоузу дня.

_________________
Мой сайт: http://earlytrade.livejournal.com/
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Сб Авг 07, 2010 2:14 pm Ответить с цитатой Вернуться к началу

А в чем проблема то?

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



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

СообщениеДобавлено: Сб Авг 07, 2010 2:38 pm Ответить с цитатой Вернуться к началу

000 писал(а):
А в чем проблема то?


даже не знаю с чего начать..

просто не знаю как Confused

_________________
Мой сайт: http://earlytrade.livejournal.com/
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Сб Авг 07, 2010 11:20 pm Ответить с цитатой Вернуться к началу

Ну давай научу.
Во первых. Нам надо в одном коде использовать данные нескольких бумаг одновременно. Это делается функцией Foreign()

Для примера возьму фьючи газа и сбера
Код:

Gaz = Foreign("SPFB.GAZR", "Close");
Sber = Foreign("SPFB.SBER", "Close");


Надо какой никакой метод для примера. Возьмем % моментум обеих бумаг и если разница больше некоторого порогового значения, то одну покупаем другую продаем. Когда выровняется закрываем обе сделки.
Моментумы.
Код:

per = 10;
MomGaz = (Gaz - Ref(Gaz, - per))/Ref(Gaz, - per);
MomSber = (Sber - Ref(Sber, - per))/Ref(Sber, - per);

Далее нам нужен код который определяет какая именно бумага сейчас тестируется и применяет к ней правила Buy/Sell/Short/Cover
Причем правила должны быть зеркальными для разных бумаг
Еще один момент. Надо сайзы выровнять. Ну будем считать, что Газ в среднем в 4 раза дороже сбера, поэтому покупаем 1 газ продаем 4 сбера и наоборот. Это дело регулируем функцией SetPositionSize
Цитата:

if(Name() == "SPFB.GAZR")
{
SetPositionSize(1, 4);
Buy = Cross(MomGaz - MomSber, 0.02);
Sell = Cross(0, MomGaz - MomSber);
Short = Cross(-0.02, MomGaz - MomSber);
Cover = Cross(MomGaz - MomSber, 0);

}
if(Name() == "SPFB.SBER")
{
SetPositionSize(4, 4);
Short = Cross(MomGaz - MomSber, 0.02);
Cover = Cross(0, MomGaz - MomSber);
Buy = Cross(-0.02, MomGaz - MomSber);
Sell = Cross(MomGaz - MomSber, 0);
}


Итого готовый код
Код:

per = 10;

Gaz = Foreign("SPFB.GAZR", "Close");
Sber = Foreign("SPFB.SBER", "Close");

MomGaz = (Gaz - Ref(Gaz, - per))/Ref(Gaz, - per);
MomSber = (Sber - Ref(Sber, - per))/Ref(Sber, - per);

if(Name() == "SPFB.GAZR")
{
  SetPositionSize(1, 4);
  Buy = Cross(MomGaz - MomSber, 0.02);
  Sell = Cross(0, MomGaz - MomSber);
  Short = Cross(-0.02, MomGaz - MomSber);
  Cover = Cross(MomGaz - MomSber, 0);

}
if(Name() == "SPFB.SBER")
{
  SetPositionSize(4, 4);
  Short = Cross(MomGaz - MomSber, 0.02);
  Cover = Cross(0, MomGaz - MomSber);
  Buy = Cross(-0.02, MomGaz - MomSber);
  Sell = Cross(MomGaz - MomSber, 0);
}

Далее тестируем на этих двух бумагах. Получаем примерно так.

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



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

СообщениеДобавлено: Вс Авг 08, 2010 10:08 am Ответить с цитатой Вернуться к началу

000 писал(а):
Ну давай научу.
...


Спасибо большое!

гораздо проще чем я себе думал получается. Просто дополнительное условие по тикеру вставить и зеркальный вход для второй половины добавить.

_________________
Мой сайт: http://earlytrade.livejournal.com/
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
kyiv.maxim



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

СообщениеДобавлено: Пт Фев 25, 2011 11:03 pm Ответить с цитатой Вернуться к началу

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen