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



Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург

СообщениеДобавлено: Вт Авг 12, 2008 8:20 am Ответить с цитатой Вернуться к началу

Пишу систему ММ.
Управляю кол-вом лотов от ширины стопа и проч.
Иногда бывает Lots=0; робот заявы не ставит, все ок, на графике стрелки рисуются, пишется что 0 лотов, сделка пропущена ММ, все ок.
А вот equity рисуется неправильно. Ощущение что она считается по максимальному кол-ву лотов, а не по тем лотам что у меня. в итоге я не могу юзать equity для установки кол-ва лотов (я как то писал про чехарду с количеством лотов - дык вот оно)
поставил максимальное кол-во лотов =1 в начале файла (все равно потом переопределяю количество в середине) - стало ближе к истине, но все рано несходится - "0-ые" сделки меняют эквити.
что делать ума не приложу. А так все красиво начиналось...
примерный код:
SetOption("MaxOpenPositions", 1 );

Buy = Cross(EMA(C,20),EMA(C,5));
Short = Cross(EMA(C,5),EMA(C,20));
Sell=Short;
Cover=Buy;
Equity(1);

SetOption("MaxOpenPositions", 100 );
RoundLotSize = 1;

Lots=IIf(BarIndex() < 500,1,0); // после 500 баров графика лот=0
ExitLots=IIf(BarsSince(Buy)<BarsSince(Short),ValueWhen(Buy,Lots),ValueWhen(Short,Lots));
// при закрытии позиции берем кол-во лотов открытия
Lots=IIf(Sell OR Cover,ExitLots,Lots);
SetPositionSize(Lots , spsShares );

Equity(1);

если протестить и потом нажать "индивидуал эквити" - хорошо видно что 0-ые сделки после 500го бара меняют эквити
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Авг 13, 2008 12:19 am Ответить с цитатой Вернуться к началу

А если просто

SetOption("MaxOpenPositions", 1 );

Buy = Cross(EMA(C,20),EMA(C,5));
Short = Cross(EMA(C,5),EMA(C,20));
Sell=Short;
Cover=Buy;
Equity(1);

SetOption("MaxOpenPositions", 100 );
Lots = IIF(BarIndex() < 500, 1, 0);
SetPositionSize(Lots , 4);

Equity(1);

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



Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург

СообщениеДобавлено: Ср Авг 13, 2008 9:10 am Ответить с цитатой Вернуться к началу

000 писал(а):
А если просто



То есть глючит SetOption("AccountMargin",5);
убрал ее - эффект пропал.
хм. значит только в настройках тестера можно юзать маржу?

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


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

СообщениеДобавлено: Ср Авг 13, 2008 11:46 pm Ответить с цитатой Вернуться к началу

SetOption действительно глючит. Об этом уже писали.
Хотя я имел ввиду не только это.
Нет необходимости указывать размер SetPositionSize при закрытии сделки. Команды Sell и Cover полностью закрывают ранее открытую позицию не зависимо от заданного сайза. Размер SetPositionSize имеет значение только при открытии позиции или использовании sigScaleIn / sigScaleOut

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



Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург

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

000 писал(а):
SetOption действительно глючит. Об этом уже писали.
Хотя я имел ввиду не только это.
Нет необходимости указывать размер SetPositionSize при закрытии сделки. Команды Sell и Cover полностью закрывают ранее открытую позицию не зависимо от заданного сайза. Размер SetPositionSize имеет значение только при открытии позиции или использовании sigScaleIn / sigScaleOut


Вот занялся sigScaleIn SigScaleOut - может пояснишь - так и не понял что это за жуткие цифири и как их юзать. Понял только что сделка в тестере все равно будет одна, просто считаться по средним ценам, это ладно.
Вообще есть желание объединить 2 и более систем в одну, т.е. сигналы на вход-выход у них разные, а таймфрэйм-тикер один. В одном индикаторе подружить никак не выходит, потому что наличие одного сигнала отменяет противоположный. А хочется потестировать именно обе системы (разное запаздывание сигналов присутствует, бывает из-за этого даже лонг/шорт или логн/селл одновременно по разным системам) вот и хочется написать мультипликатор, чтоб пропивоположные сделки сокращал, и увеличивал/сокращал позицию по нескольким сигналам.
Для простоты 2 системы, для каждой выделяется 50% депо.
Может ты писал что-то подобное?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

http://amisite.ru/phpBB2/viewtopic.php?p=1849#1849

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


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

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

Написал код, который по замыслу должен определять размер сайза исходя из волатильности. Трабл в том, что самая сделка выбирает сайз корректно, а вторая и последующие нет. Погляди те плз: из за чего это могет быть:


Последний раз редактировалось: ID (Чт Дек 25, 2008 8:02 am), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Хотел проверить код и написать ответ, а у тебя в сообщении HTML не отключен и код покоцало.... Sad

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


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

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

Очень может быть, что SetPositionSize нельзя использовать в цикле
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ID
Советник


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

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

000 писал(а):
Хотел проверить код и написать ответ, а у тебя в сообщении HTML не отключен и код покоцало.... Sad


Олег, посмотри еще разок плз, я там прицепил файл
Посмотреть профиль Отправить личное сообщение
ID
Советник


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

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

BabyBear писал(а):
Очень может быть, что SetPositionSize нельзя использовать в цикле


Накатаю письмо поддержке, резалт сообщю
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Скорее всего в цикле вместо SetPositionSize() надо использовать positionsize[i] учитывая что

величины ниже -2000 обозначают в бумагах/контрактах,
величины между -2000 и -1000 обозначают % открытых позиций
величины между -1000 и 0 обозначают % эквити портфеля
величины выше 0 обозначают объем в деньгах

Вечером посмотрю код и отвечу подробно.

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


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

СообщениеДобавлено: Пт Дек 26, 2008 1:11 am Ответить с цитатой Вернуться к началу

ID писал(а):
000 писал(а):
Хотел проверить код и написать ответ, а у тебя в сообщении HTML не отключен и код покоцало.... Sad


Олег, посмотри еще разок плз, я там прицепил файл

Не буду переписывать код. Словами прокоментирую.
1. Не понравилось, что ты 2 раза переключаешься на дневки. Читать код так конечно удобнее, а вот для его скорости скорее всего это плохо. Лучше переключись один раз, все, что надо посчитай и двигайся дальше.
2. Похоже есть непонимание как работает SetPositionSize(). Попробую объяснить. Во первых это массив (типа некая линия на графике). В момент когда поступает сигнал на открытие сделки Buy или Short Ами смотрит чему равна эта линя в этом месте и открывает позу такого размера (если есть такая возможность типа налиячия денег и т.п.) Когда поступает сигнал на закрыте сделки Sell или Cover Ами никуда не смотрит и закрывает сделку целиком, не зависимо от установленного сайза.
Таким образом в данном случае SetPositionSize() вообще не надо пихать в цикл, да и цикл там не нужен. Задать выход на третьем после входа баре проще при помощи ApplyStop() stopTypeNBar - стоп через N баров.

Вообще то хотел поэкспериментировать как себя в цикле ведет positionsize[i], но весь вечер протрахался с базой форума... Sad

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


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

СообщениеДобавлено: Пт Дек 26, 2008 4:44 am Ответить с цитатой Вернуться к началу

На первое: тут ты прав, ну не че: опыт приходит со временем, я раньше такие коды писал... сейчас вспоминаю - мама не горюй.
На второе: Для меня принципиально важно научиться юзать цикл и setpositionsize. Ладно напишу код потом сюда кину - поглядим
Посмотреть профиль Отправить личное сообщение
BabyBear
Советник


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

СообщениеДобавлено: Пт Дек 26, 2008 8:36 am Ответить с цитатой Вернуться к началу

ID писал(а):
На второе: Для меня принципиально важно научиться юзать цикл и setpositionsize.

Это не правильная цель.
Правильнее, наверно, так "мне важно научитья менять размер позиции при работе с циклами" Smile
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen