Случайный вход в сделку — не грааль, ДОКАЗАНО!
Вторичный тест системы «монетка» начало тут
smart-lab.ru/blog/186508.php
Вторично протестировал систему «монетка» по уточненным правилам уважаемого «Алексей»
------------------------------
1. по системе «Монетка» всеже лучше торговать 2 инструмента это на 1 лот 6 лотов си вместе, не просто реверс скажем шорт лонг…
2. у системы есть стоп 200 и 2000 п. если на момент клиринга 13:59; 18:44 и 23:30 имеем размер стопа то выходим из позиции
3. прибыльные сделки переносятся через день но не через неделю месяц (в данном случае стоп двигается вверх на уровень открытия)
4. вход строго 10:05.
---------------------------
Сиситема тестировалась на 10 минутках Ri, 10 контрактами на интервале с 07.2012 по настоящее время.
Все правила учтены, кроме:
1. Стоп у меня был не пунктах а в процентах, но аналогичен 2000 пт.
2. Я не стал чудить с закрытием позиции на экспирацию и в конце месяца, 100% уверен, что это ничего не поменяет.
3. В конце недели и на клиринге все выходы по правилам.
4. Данные 10мин, поэтому вход в 10-10
Сначала тест был такой:
И подумалось, ну неплохо!
Потом такой:
Стало все понятно!
Потом тесты были такие:
И еще много тестов в этом же сумбурном духе.
Ну и чтоб не оставалось никаких сомнений тест на корзине Ri & Si с равными долями с начальным капиталом 1 млн:
Вобщем проблема в том, что результат абсолютно не предсказуем. Менял стопы, ставил различные трелинги
результат всегда одинаков. Единственный раз система показала себя более менее не страшно (для тогрговли все равно не пригодна), когда я накосячил со стопами и выход осуществлялся или в конце недели или по стопу от точки входа (не трелинг).
Код системы:
____________________________________________
{новые пправила}
var p: integer;
var enter_: integer;
var bar, enterBar, stopBar1, stopBar2: integer;
var S: float;
S := 1.5; // вводим стоп в %
for Bar := 20 to BarCount — 3 do
begin
// случайно выбираем направление входа enter_
enter_ := randomint(2);
if BarNum(Bar) = 0 then // входим только на первом баре
begin
enterBar := Bar; // бар входа или любой первый бар дня
if not LastPositionActive then //Open positions
begin //long
if enter_ = 1 then
begin
BuyAtClose( Bar, 'long' );
end;
end;
if not LastPositionActive then
begin // short
if enter_ = 0 then
begin
ShortAtclose( Bar, 'short' );
end;
end;
end;
if LastPositionActive then // Close positons
begin
p := LastPosition;
if (GetTime( Bar ) = StrToTime( '13:50' )) then
begin // первый клиринг
stopBar1 := Bar; // бар для установки стопа
if PositionLong( p ) and (priceClose(Bar) — PriceClose(enterBar)) < (-PriceClose(enterBar)/100)*S
then SellAtClose( Bar + 1, p, 'StopCliring1' );
if PositionShort( p ) and (priceClose(Bar) — PriceClose(enterBar)) > (PriceClose(enterBar)/100)*S
then CoverAtclose( Bar + 1, p, 'StopCliring1' );
continue;
end;
if (GetTime( Bar ) = StrToTime( '18:40' )) then
begin //второй клиринг
stopBar2 := Bar;
if PositionLong( p ) and (priceClose(Bar) — PriceClose(stopBar1)) < (-PriceClose(stopBar1)/100)*S
then SellAtClose( Bar, p, 'StopCliring2' );
if PositionShort( p ) and (priceClose(Bar) — PriceClose(stopBar1)) > (PriceClose(stopBar1)/100)*S
then CoverAtclose( Bar, p, 'StopCliring2' );
continue;
end;
if LastBar(Bar) then // если нет прибыли на конец дня или стоп, закрываем
begin
if PositionLong( p ) then
begin
if (priceClose(Bar) — PriceClose(enterBar)) < 0 then SellAtClose( Bar, p, 'StopLastTime' );
if (priceClose(Bar) — PriceClose(stopBar2)) < (-PriceClose(stopBar2)/100)*S then SellAtClose( Bar, p, 'StopCliring3' );
end;
if PositionShort( p ) then
begin
if (priceClose(Bar) — PriceClose(enterBar)) > 0 then CoverAtclose( Bar, p, 'StopLastTime' );
if (priceClose(Bar) — PriceClose(stopBar2)) > (PriceClose(stopBar2)/100)*S then CoverAtclose( Bar, p, 'StopCliring3' );
end ;
end;
if DayofWeek(Bar)= #friday and LastBar(Bar) then // закрываем конец недели
begin
if PositionLong( p ) then SellAtClose( Bar, p, 'CloseWeek' );
if PositionShort( p ) then CoverAtclose( Bar, p, 'CloseWeek' );
continue;
end;
end;
end;
____________________________________________________________________________________
Но! Идеей случайного входа конечно нельзя пользоваться в лоб. Однако применить это можно. Вот как выглядят например результаты
другой системы с
элементами случайного входа-выхода на том же инструменте и в той же выборке (специально под историю не оптимизировал, это видно по кривой).
Доход, и структура кривой немного меняется но в целом наклон и качество сохраняется независимо от теста.
Так что, дерзаем, ищем, роем носом графики!
чтож, грааль развенчан умываю руки…
Интересно тестируемый период одинков результаты разные, что-то меняли?
Стоп лосс 1% и тейк-профит 2-3%.