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



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Ср Июн 30, 2010 12:15 am Ответить с цитатой Вернуться к началу

У меня Sell и Cover 2 раза встречаются в коде (несколько условий для стопа): может их объединить?
Завтра отпишусь что получилось.

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Nero Wolfe



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

СообщениеДобавлено: Ср Сен 29, 2010 1:19 pm Ответить с цитатой Вернуться к началу

В коде стоят вот такие настройки:
Код:
SetOption( "InitialEquity", 20000 );
SetOption( "AllowPositionShrinking", True );
SetOption( "FuturesMode", True );
SetPositionSize( 4, 4 ); - поставил для проверки


В Information
Margin Deposit = 8000 для РИ

Запускаю тестер и он сразу с первых сделок начинает открывать по 4 контракта. Вроде денег хватает только на 2, почему так?

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

1. Похоже SetOption( "FuturesMode", True ); не работает. Если в настройках галка Futures Mode не стоит, то несмотря на наличие в коде SetOption( "FuturesMode", True );все равно в отчете пишет Shares, а если галку поставить, то Contracts
2. Добавь еще строку
SetOption("AccountMargin", 100);
Маржа распространяется и на фьючи, а у тебя видимо в настройках стоит не 100. Smile

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



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

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

Спасибо.

SetOption("AccountMargin", 100);

такая строка у меня есть в коде, просто думал она не влияет на ситуацию, поэтому не стал ее озвучивать. Вообщем, лучше переключать FuturesMode галкой Smile

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
Tim



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Вт Окт 05, 2010 2:02 am Ответить с цитатой Вернуться к началу

Протестировал систему, прооптимизировал параметры, ТФ 5 минут, но есть нюанс - система построена на основе peak и trough.
Проблемы этих команд с исчезновением сигналов я исключил.

Боюсь вот только, что может появиться сигнал в прошлом, таким образом,
что войдя в позу, я уже не смогу сразу выйти по нужной цене.
Но это, видимо только торговлей в реале получится проверить - потому что бар-риплей мне не помогает (робот не пишет в таком режиме заявки в три-файл).

Риск на сделку установил 1% от капитала.
Настораживает ещё такой момент, что сделок внутри года с отрицательным результатом охрененно много (см. поле Profit).
2010 г = максимальная убыточная сделка -11%, просадка -7%,
2009 = MTD -21%, MDD -6%
2008 = MTD -36%, MDD -6%
2007 = MTD -11%, MDD -6%
2006 = MTD -54%, MDD -5.2% (вторая убыточная сделка по размеру = -17%)
2005 = MTD -9%, MDD -5.7%

Как такое может быть??? Ведь любая убыточная сделка сама по себе уже делает вклад в подсчет просадки капитала, т.е. изначально не может быть больше максимальной просадки капитала за период.

Прогнал 30 последних дней текущего фьючерса - MTD получил меньше MDD. Сейчас остаётся только каждую сделку, которая выше MDD проверять - почему возникла и не влияет на Equity.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Tim



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Вт Окт 05, 2010 1:09 pm Ответить с цитатой Вернуться к началу

Всёёё! Разобрался сам!

Оказывается "Profit %" это % прибыли/убытка по отношению к "Position Value", а он может быть и всего 5 или 10% от счета, и получается, что ко всему депозиту это будет в 20 или 10 раз меньше.

Урааа, у меня получился работоспособный код Smile Все нюансы учтены, осталось отторговать роботом с риском в 1 контракт на сделку, чтобы проверить его работоспособность.

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Артем



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

СообщениеДобавлено: Чт Ноя 25, 2010 1:37 pm Ответить с цитатой Вернуться к началу

Добрый день. Подскажите пожалуйста люди добрые, как протестировать параболик в Ами? Меня интересует :покупка - когда сигнал снизу появился, шорт - сверху. Стопы, как я понял, можно в самом тестере задать. Если кому не трудно, то черкните код. Маюсь уже две недели....Спасибо.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Ноя 25, 2010 8:37 pm Ответить с цитатой Вернуться к началу

Код:

SetTradeDelays(1, 1, 1, 1);

Buy = Cross(C, SAR(0.02, 0.2));
Sell = 0;
Short = Cross(SAR(0.02, 0.2), C);
Cover = 0;

BuyPrice = ShortPrice = Open;

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



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

СообщениеДобавлено: Чт Ноя 25, 2010 9:35 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Код:

SetTradeDelays(1, 1, 1, 1);

Buy = Cross(C, SAR(0.02, 0.2));
Sell = 0;
Short = Cross(SAR(0.02, 0.2), C);
Cover = 0;

BuyPrice = ShortPrice = Open;


Спасибо, Олег. Все работает. Так же спасибо Commenced.
Я тут частично сам еще сварганил (только не смейтесь)))) вроде тоже самое показывает.
acc = 0.02;
accm = 0.2;
parab = SAR( acc, accm );

Buy=Cross(C, parab);
Sell=Cross(parab, C);
Short=Sell;
Cover=Buy;

У Юры было так -
acc = 0.02;
accm = 0.2;
parab = SAR( acc, accm );

Buy=Cross(parab, C);
Sell=Cross(C, parab);

Buyprice=sellprice=c;
Посмотреть профиль Отправить личное сообщение
Nero Wolfe



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

СообщениеДобавлено: Чт Дек 02, 2010 4:09 pm Ответить с цитатой Вернуться к началу

Тоже столкнулся с этой проблемой...
Мне кажется смысл параболика в том чтобы выходить сразу при пересечении ценой уровня параболика, т.е. например
Buy = Cross( H, SAR(0.02, 0.2))

Но как тогда протестировать такой вариант? если написать
BuyPrice = SAR(0.02, 0.2)
то при срабатывании параболика его уровень резко меняется и АМИ берет этот новый уровень при расчете цены, а нужно чтобы брала тот, который был до срабатывания.
Что подскажете?

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Писал я как то параболик чтобы такую штуку сделать. Поискал, не нашел.... Точно не помню, но вроде там дело в том, что если закрытие не пересекло его, а low пересек, то параболик не реверсируется а снижается до уровня Low бара который его пересек.
Таким образом выход по уровню становится бессмысленным.
Хотя точно не помню. Возможно ошибаюсь. Там алгоритм расчета довольно замороченный.
Те формулы которые лежат в сети это лишь основная часть....

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



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

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

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

Мне кажется, если самим в коде прописать расчет параболика, то можно к Ref( SAR(), -1) прибавлять/отнимать рассчитанное значение приращения параболика на текущем баре.

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Действительно. Сейчас поискал алгоритм. параболик пр Up не може подняться выше прошлого минимума.
Ну все равно сейчас времени у меня не много. Тем более реально особого смысла в этом нет. Делать буде нечего напишу снова. Не сейчас.
Правильный алгоритм расчета. Чтобы в случае чего не искать.
http://www.forextop100.ru/load/shkola_trejdera/glava_16_parabolicheskaja_sistema_sar_parabolic_stop_and_reverse/2-1-0-98

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



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Олег, добрый день. Есть вопрос по тестеру. Почему то после бэктеста в репорте Max Trade Drawdown отличается от максимального убытка по трейду, если глянуть таблицу сделок и отсортировать по прибыли (см. скрин в приложении). В чем может быть дело?
Код системы проверил, специально прошелся по сделкам визуально и по бэктесту глянул цены входов/выходов - все верно. Но то, что максимальная просадка по трейду отличается от фактической в 2 раза, несколько напрягает..
Думал, что она считается возможно как максимальная просадка от достигнутых хаев профита, но опять же, пройдясь по графику, нашел что для лонгов например макс просадка была 900п на 1 лот, а судя по отчету тестера, она составила всего 620п.. Ами тупит или я? Confused
В скрине выделил красным интересующие меня строки.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Max Trade Drawdown это не самый большой убыток. Это максимальная просадка эквити.
Например. Было 100000руб. Потом -500, потом +200, потом -300, потом +600. Тогда минимальное значение эквити будет -500 + 200 - 300 = - 600. Это и будет Max Trade Drawdown.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen