Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Нет, не так. Позишн сайз надо задавать не такой, какой размер позиции получится в итоге, а сколько добавляем в этот раз. Т.е. 100/5 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
hardcam
Зарегистрирован: 12.11.2010
Сообщения: 124
|
000 писал(а): |
Нет, не так. Позишн сайз надо задавать не такой, какой размер позиции получится в итоге, а сколько добавляем в этот раз. Т.е. 100/5 |
т.е. в 100/5
100 это не размер счета..а не остаток свободных денег после открытия позиции?
т.е. не будет ситуации что добавиться 20%не от всего счета,а 20%от остатка средств
т.е. желая открыть в позицию в 5 степеней..будет 5 раз
позитион сайз = -100/5 а что значит минус перед 100?? на продажу точно также позиция выбирается? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Давай все таки забудем нафиг про PositionSize. Функция SetPositionSize() пишется и используется несколько по другому. В хелпере посмотри.
SetPositionSize( size, method )
method (МАССИВ) определяет как будет интерпретироваться size
spsValue (=1) - объем в деньгах (как в предыдущих версиях)
spsPercentOfEquity (=2) - объем выраженный как процент от эквити портфеля (размер должен быть ..100 (для обычных счетов) или .1000 для маржинальных счетов)
spsShares (=4) - размер выражается в бумагах/контрактах (должен быть > 0 )
spsPercentOfPosition (=3) - объем выражается как процент от объема уже открытой позиции (для SCALING IN и SCALING OUT)
spsNoChange (=0) - не изменять ранее установленный размер позиции на данном баре
Берешь метод spsPercentOfEquity (=2) и если size = 20, то это будет 20 процентов от всех средств. Деньги + бумаги. Если надо просто удваивать позицию, то
spsPercentOfPosition (=3) и size = 100 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Vitlik
Зарегистрирован: 02.11.2010
Сообщения: 1
|
Здравствуйте.
У меня небольшой вопросик по данной теме.
По поводу сокращения позиции вроде разобрался по крайней мере руками просчитывал средние величины и с тестером сходилось. У меня вопрос немного другой, не как не могу добиться что бы общий первый заход был фиксированный 100 лот а выход был уже частичным.
Приведу пример кода.
Код: |
Buy = A;
Sell =0;
Cover = Buy; //что бы тестер не ругался на отсутствие шортов
Short = Sell; //
// система выходит 100 лот
// 30% размера позиции на первой цели
// 30% размера позиции на второй цели
// 100% размера позиции по закрытию
First = IIf(B,1,0); // Первое закрытие
Secondari = IIf(BB),1,0) ; // Второе закрытие
Stop = IIf((BBB),1,0); // закрытие позиции
priceatbuy = 0;
position = 0;
exit = 0;
Size = 0;
for( i = 0; i < BarCount; i++ ) //проверка всех значений
{
if(position == 0)
{
if(Buy[i])
{
SetPositionSize(100,4);
Buy[i] = 1;
position= 1;
priceatbuy= C[i];
}
}
else if(position == 1)
{
Buy[i] = 0; //исключение повторных покупок
if( exit == 0 AND First[i] == 1)
{
exit = 1;
Buy[i] = sigScaleOut;
}
if( exit == 1 AND Secondari[i] == 1)
{
exit = 2;
Buy[ i ] = sigScaleOut;
}
if(Stop[i] == 1)
{
exit = 3;
Sell[i] = 1; // -кроет
SellPrice[i] = C[i];
}
if( exit >= 3 )
{
Buy[i] = 0;
Sell[i] = exit + 1; // mark appropriate exit code
exit = 0;
position = 0; // сброс позиции
}
}
}
SetPositionSize( 30, spsPercentOfPosition * ( Buy == sigScaleOut ) ); // сокращение размера позиции на 30% |
Если ставлю SetPositionSize в цыкле то величина лот варьирует 49,70,100 получается что тут идет от цыкла в зависимости сколько условий сработало.
Если выношу SetPositionSize перед цыклом до buy=A результат такой же.
Подскажите пожалуйста, что я делаю не так.
А так же, правильно ли я понял что для сокращение позиции берется остаток позиции а не первый заход? т.е. 100-30=70-21=49 |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тестер Ами считает странным образом. При изменении размера уже открытой позиции он изменяет её с момента захода и одновременно меняет цену входа так, чтобы учесть зафиксированную прибыль/убыток в результате изменения размера позиции. Поэтому в отчете будет виден размер позиции который был на момент выхода.
Это конечно не очень удобно, но.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
так считать-то будет правильно?
а то он фактически "прошлое" меняет..
да ещё к тому, если у меня в коде написано BuyPrice = C;
и т.д. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Конечно правильно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|