Автор |
Сообщение |
kuranushka
Зарегистрирован: 02.08.2009
Сообщения: 2
Откуда: Мурманск
|
Простая системка для парного трейдинга не даёт в тестере ни одной сделки, в 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
|
Мне много чего не нравиться в этом коде.
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
Откуда: Мурманск
|
Да, спасибо, вот так переписал и появились сделки:
Код: |
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 |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|