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


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

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

Нет, не так. Позишн сайз надо задавать не такой, какой размер позиции получится в итоге, а сколько добавляем в этот раз. Т.е. 100/5

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



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

СообщениеДобавлено: Сб Дек 25, 2010 7:15 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Нет, не так. Позишн сайз надо задавать не такой, какой размер позиции получится в итоге, а сколько добавляем в этот раз. Т.е. 100/5

т.е. в 100/5
100 это не размер счета..а не остаток свободных денег после открытия позиции?
т.е. не будет ситуации что добавиться 20%не от всего счета,а 20%от остатка средств
т.е. желая открыть в позицию в 5 степеней..будет 5 раз
позитион сайз = -100/5 а что значит минус перед 100?? на продажу точно также позиция выбирается?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Давай все таки забудем нафиг про 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

СообщениеДобавлено: Ср Дек 29, 2010 12:09 pm Ответить с цитатой Вернуться к началу

Здравствуйте.
У меня небольшой вопросик по данной теме.
По поводу сокращения позиции вроде разобрался по крайней мере руками просчитывал средние величины и с тестером сходилось. У меня вопрос немного другой, не как не могу добиться что бы общий первый заход был фиксированный 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

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

Тестер Ами считает странным образом. При изменении размера уже открытой позиции он изменяет её с момента захода и одновременно меняет цену входа так, чтобы учесть зафиксированную прибыль/убыток в результате изменения размера позиции. Поэтому в отчете будет виден размер позиции который был на момент выхода.
Это конечно не очень удобно, но....

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



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

СообщениеДобавлено: Вт Июн 14, 2011 12:30 am Ответить с цитатой Вернуться к началу

так считать-то будет правильно?
а то он фактически "прошлое" меняет.. Sad

да ещё к тому, если у меня в коде написано BuyPrice = C;
и т.д.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Июн 14, 2011 7:18 am Ответить с цитатой Вернуться к началу

Конечно правильно.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen