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



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

СообщениеДобавлено: Вс Авг 14, 2016 7:45 pm Ответить с цитатой Вернуться к началу

Приветствую!
Есть динамический уровень стоплосс. От этого уровня определяется размер позиции в момент ее открытия. Позиция открывается по закрытию бара. Для определения размера позиции берем 5% от депозита и делим на разницу между закрытием бара и уровнем стоплосс. Затем делим полученное число лотов на RoundLotSize и округляем вниз. Если получился 0, то берем минимальный размер позиции, равный RoundLotSize. Выглядит это так:
Код:
BuyPrice = SellPrice = C;
Buy = ...
Sell = ...
E = Equity(1);
RiskPerShare = C - StopLevel;
PositionRisk = 5;
pSize = Ref( E, -1 ) / 100 * PositionRisk / RiskPerShare;
pSize = Max( floor( pSize / RoundLotSize ), RoundLotSize );
SetPositionSize( pSize, spsShares );


Смотрю на первую сделку на графике. Начальный капитал 100000. Закрытие бара 305.01. Стоплосс 287.50. Значит риск на сделку = 17.51. Число лот = 5000 / 17.51 = 285.55. RoundLotSize установлен в Contract Specification равным 10. Делим 285.55 на 10 и округляем вниз - получаем 28. Это значение показывается и на графике:
Код:
Plot( pSize, "pSize", 43, styleOwnScale );

Далее делаю backtest в режиме trade list и вижу у первой сделки Contracts = 20. Почему так?

Пробую принудительно увеличить размер позиции в 10 раз:
Код:
SetPositionSize( pSize * 10, spsShares );

В тестере вижу Contracts = 280. Почему теперь размер позиции правильный 28*10 ?

Если увеличить в 2 раза:
Код:
SetPositionSize( pSize * 2, spsShares );

то в тестере вижу Contracts = 50, как будто исходный pSize равен 25, а не 28.

Что я делаю не так и как получить правильный размер позиции?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

RoundLotSize = 10. Т.е. минимально можно оперировать 10ю контрактами. Соответственно размер позиции всегда будет кратен 10. 10, 20, 30, 40, 50 и т.д.

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



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

СообщениеДобавлено: Вс Авг 14, 2016 10:17 pm Ответить с цитатой Вернуться к началу

000 писал(а):
RoundLotSize = 10. Т.е. минимально можно оперировать 10ю контрактами. Соответственно размер позиции всегда будет кратен 10. 10, 20, 30, 40, 50 и т.д.


Значит, чтобы получить правильное число контрактов, нужно поделить на RoundLotSize, затем округлить вниз и снова умножить на RoundLotSize. Получается, что в репорте Contracts = 280 будет означать 28 лотов по 10 в каждом. Верно?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Авг 14, 2016 10:41 pm Ответить с цитатой Вернуться к началу

Не верно. Если у тебя в настройках Information RoundLotSize установлен 10, то 28 бумаг ника не купить. RoundLotSize это размер лота. Если лот 10 бумаг, то ты можешь купить один лот - 10 бумаг, 2 лота - 20 бумаг, 3 лота - 30 бумаг.
А 28 бумаг никак купить нельзя.

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



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

СообщениеДобавлено: Вс Авг 14, 2016 10:47 pm Ответить с цитатой Вернуться к началу

Похоже об одном и то же говорим Smile Если RoundLotSize = 10 и в репорте пишет 280, значит 28 лотов по 10 бумаг.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Авг 15, 2016 7:43 am Ответить с цитатой Вернуться к началу

Нет. В репорте он напишет именно число бумаг и оно обязательно будет кратно размеру лота.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen