PositionSize в AmiBroker

Мне нужно управлять размером позиции динамически, т.е. при определенных условиях частично сокращать или увеличивать размер позиции. Сейчас сделал так:
1. Заполнил массив _ps, который определяет размер позиции в каждом баре в %, также при изменении размера позиции указываю BuyPrice, SellPrice для соответствующего бара + Buy[n] = sigScaleIn/sigScaleOut
2. Вызвал
SetPositionSize( _ps, spsPercentOfEquity );
3. Построил график _ps и Equity и обнаружил, что размер позиции не учитывается.

p.s. Пробовал напрямую изменять PositionSize - не помогло
 

pitero

New member
Мне нужно управлять размером позиции динамически, т.е. при определенных условиях частично сокращать или увеличивать размер позиции. Сейчас сделал так:
1. Заполнил массив _ps, который определяет размер позиции в каждом баре в %, также при изменении размера позиции указываю BuyPrice, SellPrice для соответствующего бара + Buy[n] = sigScaleIn/sigScaleOut
2. Вызвал
SetPositionSize( _ps, spsPercentOfEquity );
3. Построил график _ps и Equity и обнаружил, что размер позиции не учитывается.

p.s. Пробовал напрямую изменять PositionSize - не помогло
SetOption("AccountMargin",x) не используешь случаем?
если да, то и вправду, эквити в этом случае считается по максималке (это косяк у них). Если не так, а в настройках тестера задать маржу - нормально работает. Ну еще важно когда вызываешь Equity.

у меня типа так:

eqtl=Equity(1);
RoundLotSize = 1;
plecho=2; // плечо 2
Lots=eqtl/C*plecho ;
SetPositionSize(Lots , spsShares );
Equity(1);

еквити строит правильно. тут для фортса, с лотами.
 
SetOption("AccountMargin",x) не используешь случаем?
если да, то и вправду, эквити в этом случае считается по максималке (это косяк у них). Если не так, а в настройках тестера задать маржу - нормально работает. Ну еще важно когда вызываешь Equity.

у меня типа так:

eqtl=Equity(1);
RoundLotSize = 1;
plecho=2; // плечо 2
Lots=eqtl/C*plecho ;
SetPositionSize(Lots , spsShares );
Equity(1);

еквити строит правильно. тут для фортса, с лотами.
AccountMargin не устанавливал, в свойствах тестера стоит 100.

А equity(1) я не вызывал ... А он обязательно нужен?

Меня больше вот что интересует. Допустим я закупился на 50 депо. Потом цена пробила какой-то уровень и мне нужно еще закупиться или слиться. Поэтому я должен где-то задать цену по которой я это делаю. Подозреваю, что должны использоваться BuyPrice, SellPrice.
 

pitero

New member
AccountMargin не устанавливал, в свойствах тестера стоит 100.

А equity(1) я не вызывал ... А он обязательно нужен?
ну видимо нужен, раз с эквити работаешь. а как же еще? :)

Меня больше вот что интересует. Допустим я закупился на 50 депо. Потом цена пробила какой-то уровень и мне нужно еще закупиться или слиться. Поэтому я должен где-то задать цену по которой я это делаю. Подозреваю, что должны использоваться BuyPrice, SellPrice.
цена задается так.
BuyPrice=SellPrice=CoverPrice=ShortPrice=O;
По цене открытия бара. Надо другое - пиши другое.
(С ценой аккуратно, можно вместо реальной доходности в тестере получить 10000%. Заглядывание в будущее - великая вещь)
Только сдается мне что тебе надо не цену устанавливать, а дожидаться пока цена не достигнет желаемого тобой значения и потом делать Buy. В этом случае (два подряд сигнала Buy) функция Equity отфильтрует второй сигнал - он пропадет. Так что как пирамидить тебе покупки я не знаю, а вот как выходить частями в доке описано - поищи Pyramiding в хэлпе, может наведет на мысли.
 
цена задается так.
BuyPrice=SellPrice=CoverPrice=ShortPrice=O;
По цене открытия бара. Надо другое - пиши другое.
(С ценой аккуратно, можно вместо реальной доходности в тестере получить 10000%. Заглядывание в будущее - великая вещь)
Только сдается мне что тебе надо не цену устанавливать, а дожидаться пока цена не достигнет желаемого тобой значения и потом делать Buy. В этом случае (два подряд сигнала Buy) функция Equity отфильтрует второй сигнал - он пропадет. Так что как пирамидить тебе покупки я не знаю, а вот как выходить частями в доке описано - поищи Pyramiding в хэлпе, может наведет на мысли.
Спасибо за помощь, разобрался.
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху