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



Зарегистрирован: 02.08.2009
Сообщения: 2
Откуда: Мурманск

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

Простая системка для парного трейдинга не даёт в тестере ни одной сделки, в Information данные по символам заполнены, денег больше выставлял, но не воркед, Может кто укажет где ошибка? Спасибо.
Код:
_SECTION_BEGIN("Spread");
_N( Symbol2= ParamStr("Symbol2", "B") );
Mode = ParamToggle("Mode", "Difference (Symbol1-Symbol2)|Ratio (Symbol1/Symbol2)");

SetForeign( Symbol2 );
C2 = C;
H2 = H;
L2 = L;
O2 = O;
V2 = V;
RestorePriceArrays();

Color = ParamColor( "Color", colorBlack );
Style = ParamStyle( "Style", styleLine, maskPrice );

if( Mode == 0 )
 PlotOHLC( O-O2, H-H2, L-L2, C-C2, "(" + Name()+" - "+Symbol2 + ") spread", Color, style );
else
 PlotOHLC( O/O2, H/H2, L/L2, C/C2, "(" + Name()+" / "+Symbol2 + ") spread", Color, style );

_SECTION_END();

C = C-C2;
H = H-H2;
L = L-L2;
O = O-O2;
_SECTION_BEGIN("Bollinger Bands");

Periods = Optimize("Periods", 15, 2, 100, 1 );
Width = Optimize("Width", 2, 0, 10, 0.05 );
Plot( bbt = BBandTop( C, Periods, Width ), "BBTop" + _PARAM_VALUES(), Color, Style );
Plot( bbb = BBandBot( C, Periods, Width ), "BBBot" + _PARAM_VALUES(), Color, Style );
PlotOHLC( bbt, bbt, bbb, bbb, "", ColorBlend( Color, colorWhite, 0.9 ), styleCloud | styleNoRescale, Null, Null, Null, -1 );
_SECTION_END();



TradeBegin = 101000;// начало торгового дня   
TradeEnd = 183000;// окончание торгового дня   
SetPositionSize(1, 4); 

if (Name() == "A")
{
Buy =
   C < bbb
   AND TimeNum() > TradeBegin AND TimeNum() < TradeEnd; 
Sell = 
   C > bbt
   OR TimeNum() > TradeEnd; 
Short =
   C > bbt
   AND TimeNum() > TradeBegin AND TimeNum() < TradeEnd; 
Cover = 
   C < bbb
   OR TimeNum() > TradeEnd;
}
 
if (Name() == "B")
{
Short =
   C < bbb
   AND TimeNum() > TradeBegin AND TimeNum() < TradeEnd; 
Cover = 
   C > bbt
   OR TimeNum() > TradeEnd; 
Buy =
   C > bbt
   AND TimeNum() > TradeBegin AND TimeNum() < TradeEnd; 
Sell = 
   C < bbb
   OR TimeNum() > TradeEnd;
}

Buy = ExRem(Buy, Sell);   
Sell = ExRem(Sell, Buy); 
Cover = ExRem(Cover, Short); 
Short = ExRem(Short, Cover);   

PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorGreen, 0,Low);     
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorRed, 0,High);     
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorBlue, 0,High);   
PlotShapes(IIf(Cover, shapeUpArrow, shapeNone),colorOrange, 0,Low);
///ГРАФИК ЭКВИТИ///
EQ = Equity();
Plot( EQ, "Equity", colorLightBlue, styleArea|styleOwnScale );   
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
000
Site Admin


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

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

Мне много чего не нравиться в этом коде.
1. Я бы не стал разделять код для теста на секции. Взаимодействия между секциями для меня загадка и не факт, что одна секция знает, что твориться в другой.
2. Я бы нипочем не стал присваивать ценовым переменным OHLCV какие либо левые значения. Тестер их в какой то момент восстанавливает и мне точно не известно в какой и как это отразится на конечном результате
3. Уже устал писать. Для теста ИМХО следует делать отдельный код. Отдельно для визуального восприятия (индикатора), отдельно для теста.

Ну и так по мелочи. А зачем в одном коде и
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
Cover = ExRem(Cover, Short);
Short = ExRem(Short, Cover);

и
EQ = Equity();
???
Раз уж все равно Equity() в коде есть, то ExRem можно убрать т.к. Equity один хрен убирает лишние сигналы.

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



Зарегистрирован: 02.08.2009
Сообщения: 2
Откуда: Мурманск

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

Да, спасибо, вот так переписал и появились сделки:
Код:
A = Foreign("A", "Close");
B = Foreign("B", "Close");
SpreadAB = A-B;

Range = Optimize("Range", 15, 3, 25, 1);
Width = Optimize("Width", 1.5, 0.5, 3.5, 0.5);

BBT = BBandTop(SpreadAB, Range, Width);
BBB = BBandBot(SpreadAB, Range, Width);

TradeBegin = 101000;
TradeEnd = 183000;
SetPositionSize(1, 4); 

if (Name() == "A")
{
Buy =
   SpreadAB  < BBB
   AND TimeNum() > TradeBegin AND TimeNum() < TradeEnd; 
Sell = 
   SpreadAB  > BBT
   OR TimeNum() > TradeEnd; 
Short =
   SpreadAB  > BBT
   AND TimeNum() > TradeBegin AND TimeNum() < TradeEnd; 
Cover = 
   SpreadAB  < BBB
   OR TimeNum() > TradeEnd;
}
 
if (Name() == "B")
{
Short =
   SpreadAB  < BBB
   AND TimeNum() > TradeBegin AND TimeNum() < TradeEnd; 
Cover = 
   SpreadAB  > BBT
   OR TimeNum() > TradeEnd; 
Buy =
   SpreadAB  > BBT
   AND TimeNum() > TradeBegin AND TimeNum() < TradeEnd; 
Sell = 
   SpreadAB  < BBB
   OR TimeNum() > TradeEnd;
}

PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorGreen, 0,Low);     
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorRed, 0,High);     
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorBlue, 0,High);   
PlotShapes(IIf(Cover, shapeUpArrow, shapeNone),colorOrange, 0,Low);

EQ = Equity();
Plot( EQ, "Equity", colorLightBlue, styleArea|styleOwnScale );   
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen