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



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

СообщениеДобавлено: Ср Июл 13, 2011 10:16 pm Ответить с цитатой Вернуться к началу

Пытаюсь оптимизировать простенькую систему:

Код:

LookBack = Optimize ("lookback", 22, 10, 50, 3);
Smooth1 = Optimize ("Smooth1", 22, 10, 50, 3);
Smooth2 = Optimize ("Smooth2", 22, 10, 50, 3);
Period = Optimize ("Period", 25, 10, 30, 2);

HH = HHV( H, LookBack );
LL = LLV( L, LookBack );

StoMom = 100 * EMA( EMA( C - 0.5 * ( HH + LL ), Smooth1 ), Smooth2 ) /
( 0.5 * EMA( EMA( HH - LL, Smooth1 ), Smooth2 ) );

Buy =    (
      MA(StoMom,15) > Ref(MA(StoMom,period), -1)
   );

Sell = (
      MA(StoMom,15) < Ref(MA(StoMom,period), -1)
   );


Short = (
      MA(StoMom,15) < Ref(MA(StoMom,period), -1)
   );



Cover = (
      MA(StoMom,15) > Ref(MA(StoMom,period), -1)
   );


В отчете количество сделок порядка 1000 на годовом промежутке, хотя если посчитать сигналы вручную, их получается не более сотни. (пробовал по основным ликвидных инструментам GPR, SBR и т.п.)

В чем ошибка? При таком раскладе не реально учитывать комиссию, т.к. она съедает всю потенциальную прибыль...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Июл 13, 2011 10:39 pm Ответить с цитатой Вернуться к началу

Ну выведи ни график эти две средние MA(StoMom,15) и Ref(MA(StoMom,period) и посмотри

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



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

СообщениеДобавлено: Ср Июл 13, 2011 11:04 pm Ответить с цитатой Вернуться к началу

Тогда я похоже не понимаю смысла функции REF. Я думал, что в случае если период "-1", то она ссылается на предыдущее значение функции, заданной в качестве "array". Разве не так?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Июл 13, 2011 11:44 pm Ответить с цитатой Вернуться к началу

В общем да. Ref() сдвигает array на период.
Кстати, у тебя период положительный, т.е. Ref() смотрит не назад а вперед т.е. смотрит в будущее.....

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



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

СообщениеДобавлено: Ср Июл 13, 2011 11:51 pm Ответить с цитатой Вернуться к началу

Код:

Ref(MA(StoMom,period), [b]-1[/b])


вроде как отрицательный...

Почему у меня график ref(MA(), -1) и самого МА как-то очень сильно различаются?

Код:
_SECTION_BEGIN("Stochastic Momentum");
LookBack = Param("Lookback", 13, 2, 100 );
Smooth1 = Param("Smooth 1", 25, 1, 100 );
Smooth2 = Param("Smooth 2", 2, 1, 100 );

HH = HHV( H, LookBack );
LL = LLV( L, LookBack );

StoMom = 100 * EMA( EMA( C - 0.5 * ( HH + LL ), Smooth1 ), Smooth2 ) /
( 0.5 * EMA( EMA( HH - LL, Smooth1 ), Smooth2 ) );

Plot(StoMom, _DEFAULT_NAME(), ParamColor("Color", ColorCycle ) );
_SECTION_END();

_SECTION_BEGIN("MA1");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1, 10 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
_SECTION_END();

_SECTION_BEGIN("REF");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1, 10 );
Plot( Ref(MA( P, Periods ), -1), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
_SECTION_END();
Посмотреть профиль Отправить личное сообщение
belin



Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user

СообщениеДобавлено: Чт Июл 14, 2011 7:35 am Ответить с цитатой Вернуться к началу

Darkchemist писал(а):

Почему у меня график ref(MA(), -1) и самого МА как-то очень сильно различаются?

Посмотри в параметрах на что ссылаются P = ParamField("Price field",-1); в обоих случаях, часто бывает, эти поля отличаются. А для оптимизатора нужно явно указывать , например, Close, во избежание разночтений.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июл 14, 2011 7:54 am Ответить с цитатой Вернуться к началу

Darkchemist писал(а):

вроде как отрицательный...

Ой. Это я не туда глянул. Срри.
Ща поподробнее посмотрю...

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


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

СообщениеДобавлено: Чт Июл 14, 2011 8:02 am Ответить с цитатой Вернуться к началу

Если тестировался первый код, то и смотреть на графике надо вот такой
Код:

LookBack = Optimize ("lookback", 22, 10, 50, 3);
Smooth1 = Optimize ("Smooth1", 22, 10, 50, 3);
Smooth2 = Optimize ("Smooth2", 22, 10, 50, 3);
Period = Optimize ("Period", 25, 10, 30, 2);

HH = HHV( H, LookBack );
LL = LLV( L, LookBack );

StoMom = 100 * EMA( EMA( C - 0.5 * ( HH + LL ), Smooth1 ), Smooth2 ) /
 ( 0.5 * EMA( EMA( HH - LL, Smooth1 ), Smooth2 ) );

Plot(C, "", colorBlack, styleCandle);
Plot(MA(StoMom,15), "", colorRed, styleLeftAxisScale);
Plot(Ref(MA(StoMom,period), -1), "", colorBlue, styleLeftAxisScale);

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



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

СообщениеДобавлено: Чт Июл 14, 2011 12:06 pm Ответить с цитатой Вернуться к началу

Заменив в коде

Код:
MA(StoMom,15)


на

Код:
MA(StoMom,period)


и оптимизировав систему на дневках получил минимальный убыток при значении параметров 16,49,49,28 соответственно. При этом по отчету было совершено 209 операций, в то время как взглянув на график МА и ее Ref(,-1), было 2 сигнала разворота, т.е. максимум 6 сделок... не понимаю Embarassed
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июл 14, 2011 12:31 pm Ответить с цитатой Вернуться к началу

Переменная которая меняется при оптимизации функцией Optimize в индикаторе остается неизменной. Тебе надо посмотреть параметры полученные после оптимизации и подставить их в код индикатора явно
Типа
Код:
LookBack = 15;

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



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

СообщениеДобавлено: Чт Июл 14, 2011 12:46 pm Ответить с цитатой Вернуться к началу

Ну я вобщем-то так и делаю...
При этом если использовать функцию Cross(MA,Ref), то все в порядке. А вот при операции сравнения что-то не то...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июл 14, 2011 1:14 pm Ответить с цитатой Вернуться к началу

Darkchemist писал(а):
Ну я вобщем-то так и делаю...
При этом если использовать функцию Cross(MA,Ref), то все в порядке. А вот при операции сравнения что-то не то...

Угу. А стопы в АА используешь? или может в коде?

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



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

СообщениеДобавлено: Чт Июл 14, 2011 5:35 pm Ответить с цитатой Вернуться к началу

В АА 2% стоп
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июл 14, 2011 5:48 pm Ответить с цитатой Вернуться к началу

Ну вот поэтому.
Смотри. Cross генерирует только один сигнал в момент пересечения. Если поставить просто >, то сигналов получается масса, на каждом баре когда МА > Ref есть сигнал, но эти сигналы тестер игнорирует пока находится в позиции.
Получается так. MA стала выше Ref, начали генериться сигналы, тестер вошел в позицию и пока сигналы ингнорирует. Потом сработал стоп, система из позиции вышла, а сигналы все поступают. В результате тестер сразу снова открывает позицию.

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



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

СообщениеДобавлено: Чт Июл 14, 2011 5:54 pm Ответить с цитатой Вернуться к началу

Ааа. Блин! Все понял ) Спасибо )
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen