Автор |
Сообщение |
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Привет всем !
У меня трабла капут.
По системе открываю лонг нужным лотом, ставлю профит, стопак. Все ок.
Когда по системе надо доливаться, мне нужно вычислить каким лотом я буду это делать. Для вычисления лота доливки мне нужно знать каким лотом я сейчас в сделке. Как узнать каким лотом я в сделке?
Пробовал всякие подходы - ничего не получилось.
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
я знаю 2 варианта. Либо в коде считать каким лотом в сделке (ну там типа в цикле), либо использовать в функции SetPositionSize() параметр spsPercentOfPosition (=3) - объем выражается как процент от объема уже открытой позиции (для SCALING IN и SCALING OUT)
Вроде можно определять сайз позиции в адвансед портфолио, но я не знаю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Я пробовал сделать примерно так:
// Расчет первоначального лота
s1 = setpositionsize( 2 / 100 / величина стопа , spsPersentOfEquity );
// Запоминаю объем
my_lot_start = s1;
s1 = setpositionsize ( my_lot_start * па-па-па / тра-та-та , spsShares );
Прикол в том, что это работает на первой сделке. Но не работает на последующих. Почему я ХЗ. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Насколько помню функция setpositionsize() ничего не возвращает. Поэтому запись
Код: |
s1 = setpositionsize ( my_lot_start * па-па-па / тра-та-та , spsShares ); |
неправильная.
Думаю, что нармальный контроль сайза можно только в цикле сделать... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
000 писал(а): |
Насколько помню функция setpositionsize() ничего не возвращает. Поэтому запись
Код: |
s1 = setpositionsize ( my_lot_start * па-па-па / тра-та-та , spsShares ); |
неправильная.
. |
SYNTAX SetPositionSize( size, method )
RETURNS ARRAY
FUNCTION This function allows to control trade (position) size in four different ways, depending on 'method' parameter.
Возвращает массив
000 писал(а): |
Думаю, что нармальный контроль сайза можно только в цикле сделать... |
можешь привести простейший пример? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
ID писал(а): |
000 писал(а): |
Насколько помню функция setpositionsize() ничего не возвращает. Поэтому запись
Код: |
s1 = setpositionsize ( my_lot_start * па-па-па / тра-та-та , spsShares ); |
неправильная.
. |
SYNTAX SetPositionSize( size, method )
RETURNS ARRAY
FUNCTION This function allows to control trade (position) size in four different ways, depending on 'method' parameter.
Возвращает массив
|
Вопрос что она возвращает и куда.
Боюсь что
Цитата: |
Новая функция SetPositionSize автоматически конвертирует новый метод в старый "positionsize" следующим образом:
величины ниже -2000 обозначают в бумагах/контрактах,
величины между -2000 и -1000 обозначают % открытых позиций
величины между -1000 и 0 обозначают % эквити портфеля
величины выше 0 обозначают объем в деньгах
|
Прежде чем примеры городить хочется спросить. А почему не устраивает метод spsPercentOfPosition (=3) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
вот код
Первая сделка - все красава.
Вторая - херня.
настройка инфо тикера
настройка АА
код:
Код: |
SetBarsRequired (100000,0);
SetOption ("AllowPositionShrinking",0); // Вкл (1) выкл (0)возможность открытия позиции, если денег не хватает
SetOption ("InitialEquity",10000); // Начальный капитал
SetOption ("AllowSameBarExit",1); // Вкл (1) выкл (0) возможность выхода на баре входа
SetOption ("ActivateStopsImmediately",1); // Вкл (1) выкл (0) активацию стопа на баре входа
SetOption ("FuturesMode",1); // Вкл (1) выкл (0) режим "Тестирование фьючерсов"
SetOption ("ReverseSignalForcesExit",1); // Вкл (1) выкл (0) вход в противоположную позицию при противп. сигнале
SetOption ("PriceBoundChecking",0); // Вкл (1) выкл (0) проверку соответствия bp/sp/shp/cp диапазону h-l
SetOption ("MaxOpenPositions",1); // Максимальное количество открытых позиций
SetOption ("AccountMargin",100);
SetTradeDelays (0,0,0,0); // Задержка торгов
my_date_buy = DateNum() == 1090904 OR DateNum() == 1091002;
my_date_scale_in= DateNum() == 1090908 OR DateNum() == 1091006;
my_date_sell = DateNum() == 1090914 OR DateNum() == 1091014;
Buy= IIf(my_date_buy,1,
IIf(my_date_scale_in,sigScaleIn,0));
Sell= my_date_sell;
Short = 0;
Cover = 0;
BuyPrice =
ShortPrice =
CoverPrice =
SellPrice = Close;
s1 = SetPositionSize( 2 / 100 / 0.0500, spsPercentOfEquity );
my_lot_start = ValueWhen( Buy, s1 * ( - 10000 ), 1 );
s2 = SetPositionSize(
IIf( my_date_scale_in, my_lot_start * 0.0500 / 0.0200, 0),
IIf ( my_date_scale_in, spsShares, spsNoChange ) );
Plot( my_lot_start, "lot_start", 2 + 4 ); |
Вот скажи, почему этот АА мне во второй сделке доливает лотом доливки первой сделки. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Цитата: |
Прежде чем примеры городить хочется спросить. А почему не устраивает метод spsPercentOfPosition (=3) |
вот суть долива
как это засунуть в spsPersentOfPosition? |
Последний раз редактировалось: ID (Вт Ноя 24, 2009 10:53 am), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А напиши плиз что именно надо. Потому, что мне вот эта конструкция
Код: |
s1 = SetPositionSize( 2 / 100 / 0.0500, spsPercentOfEquity );
my_lot_start = ValueWhen( Buy, s1 * ( - 10000 ), 1 );
s2 = SetPositionSize(
IIf( my_date_scale_in, my_lot_start * 0.0500 / 0.0200, 0),
IIf ( my_date_scale_in, spsShares, spsNoChange ) );
Plot( my_lot_start, "lot_start", 2 + 4 );
|
ужастно не нравится. Долго расписывать чем. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну. А зачем знать сколько лотов? Просто говоришь ами долить 30% (или 50 или сколько надо) от существующей позы... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Так ведь я не знаю сколько это процентов |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну так напиши алгоритм долития. Сколько надо доливать? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Еще раз посмотри месагу про суть долива:
Код: |
лот доливки = лот первоначальный * первональный стоп / ( разница между ценой доливки и ценой открытия позы ) |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Сорьки. Был не внимателен. Чуток попозже сделаю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Жду с нетерпением |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|