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



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

СообщениеДобавлено: Пн Окт 22, 2012 1:57 pm Ответить с цитатой Вернуться к началу

Приветствую.

Тестирую одну систему.

Код:
//недельный график MACD

TimeFrameSet(inWeekly);
HistW=MACD(26,50)-Signal(26,50,20);
MACDup=HistW>Ref(HistW,-1);
MACDdown=HistW<Ref(HistW,-1);
barcolor=IIf(MACDup,colorGreen,IIf(MACDdown,colorRed,colorBlue));
TimeFrameRestore();



//собственная разработка, рассчитывающая разницу между средними

FA=Optimize("fa",5,5,50,5);
SA=Optimize("sa",25,25,100,5);
period=Optimize("period",30,10,50,5);


f=EMA(C,FA);
s=EMA(C,sa);
Var=f-s;
HistUp=Var>Ref(Var,-3);
HistDown=Var<Ref(Var,-3);
barcolor=IIf(HistUp,colorGreen,IIf(HistDown,colorRed,colorBlue));
Plot(Var,"Hist",barcolor,styleHistogram);

TrailStopAmmount=C<Ref(C,-3);

//buy-sell
Buy= TimeFrameExpand(histW,inWeekly)>TimeFrameExpand(Ref(histW,-1),inWeekly) AND Var>Ref(Var,-3);
Sell=Cross(EMA(C,period),C);
ApplyStop(stopTypeTrailing,stopModePoint, TrailStopAmmount,False);


Все получилось замечательно.

Но добавил в это счастье код для размера позиции:

Код:

Capital=10000;
Risk=0.01*Capital;
PositionSize=(Risk/TrailStopAmmount)*BuyPrice;


И система начала пропускать некоторые сделки. Вопрос почему?
В settings размер счета стоит 10 000. Соотношение риск/сделка не превышает размер equity. То есть по идеи сделка должна сработать. Но почему-то покупать не хочет.... Благодарю за ответ.
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Пн Окт 22, 2012 5:42 pm Ответить с цитатой Вернуться к началу

pylyp писал(а):
TrailStopAmmount=C<Ref(C,-3);

Результатом этого выражения будет либо TRUE (1), либо FALSE (0). Очевидно, что это логическая ошибка. Работе тестера она не мешает (хотя тест бессмысленным получается), но если результатом будет 0, то в выражении

Код:
PositionSize=(Risk/TrailStopAmmount)*BuyPrice;


будет деление на 0.

Плюс к этому в настойках тестера, на вкладке Portfolio, задаются ограничения на ликвидность и на количество открытых позиций - из-за этих настроек тоже могут быть пропуски сделок.
Посмотреть профиль Отправить личное сообщение ICQ Number
pylyp



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

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

Portfolio проверил. Было 4 (видно по умолчанию). Поставил мах -1 000.

Не помогло. Скорее всего проблема не в этом.

Что касается
Код:
 TrailStopAmmount=C<Ref(C,-3);
так это же условие Стопп Лосса. Оно по умолчанию при открытии сделки должно быть больше цены входа. Или я не прав?
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Пн Окт 22, 2012 7:37 pm Ответить с цитатой Вернуться к началу

Какое же это условие? Условие выхода у вас - пересечение ценой мувинга либо трейлинг-стоп, а TrailStopAmmount - величина трейлинг-стопа, которую вы считаете неправильно. У вас вместо требуемой величины трала в пунктах вычисляется булево значение - TRUE/FALSE. Ошибка именно в этом.

А про ограничение ликвидности я так, до кучи написал. По умолчанию там не более 10% объёма бара выставлено.
Посмотреть профиль Отправить личное сообщение ICQ Number
pylyp



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

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

Почесал репу. Комментарий в точку. Спасибо за посвященное время. исправил код на:

Код:

TrailStopAmmount=C-Ref(C,-3);


Теперь транзакций не пропускает.

Последний вопрос, чтобы окончательно развеять все неясности. Если будет вот так:

Код:
TrailStopAmmount=C-Ref(C,-3);
ApplyStop(stopTypeTrailing,stopModePoint, TrailStopAmmount,False);


Это значит, что система при покупке будет отнимать от последнего close close с трех дней назад?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Окт 23, 2012 12:33 pm Ответить с цитатой Вернуться к началу

Да. Только вот не уверен как поведет себя стоп если получиться отрицательное значение....

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



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

СообщениеДобавлено: Вт Окт 23, 2012 2:56 pm Ответить с цитатой Вернуться к началу

По идеи оно должно сразу закрыться...

А вот тут такое дело, что оно молчит, пока тупо не закроется по sell'u....

Блин...
Посмотреть профиль Отправить личное сообщение
pylyp



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

СообщениеДобавлено: Вт Окт 23, 2012 4:21 pm Ответить с цитатой Вернуться к началу

Короче, чтобы не усложнять вписал код:

Код:

TrailStopAmmount=Ref(HHV(H,3),-1)-Ref(LLV(L,3),-1);
Посмотреть профиль Отправить личное сообщение
Mechanic



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

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

Да просто возьмите разницу цен по модулю:

TrailStopAmmount=abs(C-Ref(C,-3));

Если же сделка должна открываться только при C < Ref(C,-3), то добавьте это условие в Buy:

Buy = ... and C < Ref(C, -3);
Посмотреть профиль Отправить личное сообщение ICQ Number
pylyp



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

СообщениеДобавлено: Ср Окт 24, 2012 2:45 pm Ответить с цитатой Вернуться к началу

Спасибо. Но по ходу HHV i LLV даже лучше работают чем по сравнению закрытий. Но все равно спасибо за совет. На будущее в других системах буду помнить. Smile
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen