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



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

СообщениеДобавлено: Пн Фев 07, 2011 2:14 pm Ответить с цитатой Вернуться к началу

Привет!

Уже притомился бороться с Ами... Пытаюсь управлять размером позиции по Тарпу - на основе ATR (т.е. фиксировать риск на одной сделке).

Но есть проблема: Ами игнорирует значение Equity. Т.е. не смотря на рост баланса, в сделке фигурирует не Equity, а начальный баланс - в моем случае 10000.

На рисунке видно - красным подчеркнуто - не смотря на рост баланса, размер позиции почти не меняется!

Код ниже, искал похожие проблемы на сайте - не нашел. Вариант использовать SetPositionSize( size, spsPercentOfEquity ) и подменить "size" своим расчетом не подходит, т.к. в моем случае используется более 1000 и Ами такого не понимает.

Наверняка кто-нибудь уже на это натыкался.. Что делать?

Код:

// ==== Открываем и закрываем позиции

Buy = ExRem( TrueBuy, TrueSell);
Short = ExRem( TrueShort, TrueCover);

Sell = TrueSell;
Cover = TrueCover;

// ==== Расчет Размера Лота
// ==== управления размером позиции по Тарпу на основе ATR

MyEquity = IIf( Ref(Equity(0), -1) == 0 OR Ref(Equity(0), -1) == Null, 10000, Ref(Equity(0), -1) ); // здесь, поскольку нет Equity в первой сделке, ИСПОЛЬЗУЮ НАЧАЛЬНЫЙ БАЛАНС
StopAmount = KoefATR*MA(ATR(1), PeriodATRSL)/Point; // SL в пунктах
Risk = 0.05; // рискуем ...% средств в сделке
Lot = Risk*MyEquity/(StopAmount*PriceLot); // где PriceLot - стоимость 1 пункта для 1 лота

PositionSize = Lot;


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


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

СообщениеДобавлено: Пн Фев 07, 2011 2:33 pm Ответить с цитатой Вернуться к началу

Попробуй вместо PositionSize = Lot; и всего гемороя с расчетом эквити в коде использовать
SetPositionSize( size, method )
Metod
spsPercentOfEquity (=2) - объем выраженный как процент от эквити портфеля

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



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

СообщениеДобавлено: Пн Фев 07, 2011 3:10 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Попробуй вместо PositionSize = Lot; и всего гемороя с расчетом эквити в коде использовать
SetPositionSize( size, method )
Metod
spsPercentOfEquity (=2) - объем выраженный как процент от эквити портфеля


"spsPercentOfEquity (=2) - объем выраженный как процент от эквити портфеля (размер должен быть ..100 (для обычных счетов) или .1000 для маржинальных счетов) ".

Я писал выше - не подходит.

Это связано с тем, что счет маржинальный и стопы на минутках маленькие, в результате надо использовать большой процент от эквити - раза в 4 больше разрешаемого Ами (т.е. около 4000).

Больше 1000, увы, Ами вер. 5.30 "не переваривает".. Crying or Very sad

Есть еще какие-нибудь варианты для не программиста?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

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

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



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

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

000 писал(а):
что мешает использовать для теста не маржинальную торговлю. Добавь денег тестеру и тестируй без плеча.
В общем никакой разницы. Средную сделку видно, эквити похожа...

Попробовал - ерунда получается.

Если использую торговлю с плечом и вхожу на максимуме - SetPositionSize( 1000, spsPercentOfEquity) - то это у меня 2% от эквити, имею небольшую прибыль и небольшую просадку.

Если использую торговлю без плеча, вхожу на максимуме - SetPositionSize( 100, spsPercentOfEquity) и ПОДОБРАВ величину начальной эквити - имею примерно ту же прибыль и МИКРОСКОПИЧЕСКУЮ просадку. Т.е. эквити похожа, а относительная просадка - полная брехня.

И это не удивительно - торговля с плечом и без плеча разные вещи.

Особенность минуток в том, что в прибыли большую долю имеет спред/комиссия/проскальзывание брокера. И величиной прибыли необходимо покрыть все эти издержки.

Т.е. минутки требуют ТОНКОЙ НАСТРОЙКИ:
1. если будем входить малой величиной ДОЛИ ОТ баланса, то издержки "сожрут" прибыль и будет убыток
2. а если зайдем слишком большой ДОЛЕЙ ОТ баланса, то получим слишком большую просадку.

Имитация с помощью немаржинальной торговли не годится, т.к. может сымитировать только доход, но не нюансы важные для выживания (относительную просадку, например).

Олег, неужели нет какого-то другого решения?

И еще вопрос - Ами принципиально не дает возможности обратиться в тестере к линии эквити? Или все же это как-то можно сделать?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Фев 07, 2011 9:36 pm Ответить с цитатой Вернуться к началу

А если тестировать в Futures mode и Margin deposit задать отрицательный.
Цитата:

The margin is the amount of money required to open single contract position. You can specify per-symbol margin in the Symbol-Information page (picture above). Positive values describe margin value in dollars, while negative express margin value as percentage of contract price. Margin value of zero is used for stocks (no margin).

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



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

СообщениеДобавлено: Вт Фев 08, 2011 11:27 am Ответить с цитатой Вернуться к началу

000 писал(а):
А если тестировать в Futures mode и Margin deposit задать отрицательный.
Цитата:

The margin is the amount of money required to open single contract position. You can specify per-symbol margin in the Symbol-Information page (picture above). Positive values describe margin value in dollars, while negative express margin value as percentage of contract price. Margin value of zero is used for stocks (no margin).

Помогло ниже написанное от процитированного тобой из справки (раздел "Back-testing systems for futures contracts"), спасибо! Very Happy

Я думал, что Ами сам рассчитывает MarginDeposit. Это было опрометчиво!

Сделал расчет: MarginDeposit = Open*Contract/Leverage. И все сработало!

p.s. для инфо:
1. у меня Open и он умножается, т.к. расчет ведется по ценам открытия и Доллар США в валютной паре стоит на втором месте
2. Contract - объем контракта в базовой валюте
3. Leverage - плечо (например, 100).

Еще раз Спасибо! - По крайней мере для меня, ты готовых решений не даешь, но подталкиваешь к правильному решению!!!

---
Вячеслав
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen