Автор |
Сообщение |
sas55
Зарегистрирован: 15.03.2009
Сообщения: 61
Откуда: Омск
|
Спасиб Олег
Код работает но есть какие-то огрехи по расчетам ч.з Back Test ,сейчас разбираюсь ручками |
_________________ "Если мы выиграем на финансовом фронте, то мы выиграем всё" В.И.Ленин |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да. Ты посмотри внимательно. Я точно не проверял. Просто убедился, что шкалирование сделок имеет место быть, а правильно или нет не смотрел. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
sas55
Зарегистрирован: 15.03.2009
Сообщения: 61
Откуда: Омск
|
Привет Олег
Попробовал переделать код с добавкой позы и прикрепил к роботу но трабл возникает когда робот стоит в увеличенной позе и не достигнув 2-го профита возникает сигнал на реверс то транзакция уходит=лотам без добавки.Т.е. добавка позы срабатывает а закрытие позы не учитывает доливку(4+2-4 )
И при перевороте возникает Buy без Cover
Подскажи чего я не учел |
_________________ "Если мы выиграем на финансовом фронте, то мы выиграем всё" В.И.Ленин |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну в общем за размер сделки отвечает переменная Lots
Собственно посмотри в каких случаях в цикле добавить регулировку этой переменной |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
sas55
Зарегистрирован: 15.03.2009
Сообщения: 61
Откуда: Омск
|
Цитата: |
Ну в общем за размер сделки отвечает переменная Lots
Собственно посмотри в каких случаях в цикле добавить регулировку этой переменной |
Спс лоты попробую подправить
Но у меня почему-то визуально не прорисовывает при перевороте позы закрытие предыдущей : если система Buy то должно отрисоваться Sell,а только потом Short а у меня рисует после Buy Сразу Short ?
Хотя стопы и профиты закрытие рисует
Олег ткни пальцем где ошибка |
_________________ "Если мы выиграем на финансовом фронте, то мы выиграем всё" В.И.Ленин |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот смотри.
Переворот описывается в коде тут
Код: |
if( position <= 0 )
{ // система не в позиции или шорт
if( Buy_1[i] )
{
priceDeal = BuyPrice[i];
position = 1;
Buy[i] = 1;
}
}
if( position >= 0 )
{ // система не в позиции или лонг
if(Short_1[i])
{
priceDeal = ShortPrice[i];
position = -1;
Short[i] = 1;
}
}
|
Дальше 2 варианта. Либо добавить Cover и Sell при перевороте и отдельно сайз (Lots) в зависимости от размера позиции (пр чем следует не забывать, что сайз Cover и Buy может быть разным)
Это типа так (без сайза)
Код: |
if( position <= 0 )
{ // система не в позиции или шорт
if( Buy_1[i] )
{
priceDeal = BuyPrice[i];
position = 1;
Buy[i] = 1;
if(position < 0)
Cover[i] = 1;
}
}
if( position >= 0 )
{ // система не в позиции или лонг
if(Short_1[i])
{
priceDeal = ShortPrice[i];
position = -1;
Short[i] = 1;
if(position > 0)
Sell[i] = 1;
}
}
|
Либо увеличить сайз Buy Short в зависимости от размера уже открытой противоположной позиции (это по моему проще) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
"Либо увеличить сайз Buy Short в зависимости от размера уже открытой противоположной позиции (это по моему проще)"
Олег, а как в тестере такой подход прокатит при отсутствии в коде Sell и Cover? |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Я когда пиал имел ввиду робота. Для тестера не прокатит... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
000 писал(а): |
Я когда пиал имел ввиду робота. Для тестера не прокатит... |
Т.е. для теста надо все расписать, а в роботе можно только buy & short. Спасибо.
Попробовал сделать частичный выход с количеством. Не работает как задумал.
Подскажите что не так.
Код: |
FirstProfitTarget = 200; // profit
position = 0 ;
priceDeal = 0;
Lots=0;
for( i = 0; i < BarCount; i++ )
{
if( position == 0 ) // система не в позиции
{
if( Buy_1[i] )
{
Buy[i] = 1;
priceDeal = BuyPrice[i];
position = 10;
Lots = 10;
}
}
if(position == 10) // система в лонге
{
if(H[i] > priceDeal + FirstProfitTarget) // 1ый профит
{
Buy[i] = sigScaleOut;
BuyPrice[i] = priceDeal + FirstProfitTarget;
position = 7;
Lots = 3;
}
}
if(position == 10) // система в лонге
{
if(Sell_1[i])
{
Sell[i]=1;
SellPrice[i]= SellPrice_1[i];
position = 0;
Lots = 10;
}
}
if(position ==7) // система в лонге с частичной фиксацией
{
if(Sell_1[i])
{
Sell[i]=1;
SellPrice[i]= SellPrice_1[i];
position = 0;
Lots = 7;
}
}
}
SetPositionSize(Lots, 4);
Equity(1);
|
|
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Выше в примере выходим по профиту 3 лотами
а по селу 10 или 7 лотами в зависимости от размера позиции.
По этому коду сделки рисуются на каждом баре.
А в подробном логе выходит вроде по одному лоту на каждом баре.
Короче фигня какая-то. |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Взял такой код.
Код: |
Buy_1 = DayOfWeek() == 1;
Sell_1 = DayOfWeek() == 5;
SellPrice_1 = C;
FirstProfitTarget = 50; // profit
position = 0 ;
priceDeal = 0;
Lots=0;
for( i = 0; i < BarCount; i++ )
{
if( position == 0 ) // система не в позиции
{
if( Buy_1[i] )
{
Buy[i] = 1;
priceDeal = BuyPrice[i];
position = 10;
Lots = 10;
}
}
if(position == 10) // система в лонге
{
if(H[i] > priceDeal + FirstProfitTarget) // 1ый профит
{
Buy[i] = sigScaleOut;
BuyPrice[i] = priceDeal + FirstProfitTarget;
position = 7;
Lots = 3;
}
}
if(position == 10) // система в лонге
{
if(Sell_1[i])
{
Sell[i]=1;
SellPrice[i]= SellPrice_1[i];
position = 0;
Lots = 10;
}
}
if(position ==7) // система в лонге с частичной фиксацией
{
if(Sell_1[i])
{
Sell[i]=1;
SellPrice[i]= SellPrice_1[i];
position = 0;
Lots = 7;
}
}
}
SetPositionSize(Lots, 4);
Equity(1);
|
Прогнал на GAZ 15мин. Вот результат. Все работает. Шаресов везде 10 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
по сделкам: нигде нет профита 50 или точнее везде результат четкий бай минус селл умножить на 10, т.е. частичного выхода небыло.
Попробовал изменить 50. ничего не меняется.
т. е. sigScaleOut не работает. ( |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Работает.
Если уж стал разбираться, что очень правильно, то можно было проверить цены входов.
Ами при масштабировании позиции изменяет начальную цену входа так, чтобы масштабированная сделка считалась как одна простая.
Вот цитата хелпера
Цитата: |
IMPORTANT: Please note that backtester treats trade that you scale-in/out as SINGLE trade (i.e. will show single row in trade list). The only difference versus plain trade is that it will calculate average entry price (and avg. entry fx rate) based on all partial entries and average exit price (and avg. exit fx rate) based on all parial exits and will show average prices in entry/exit price field. The commission is of course applied correctly to each (partial) entry/exit depending on partial buy/sell size.
|
Автоматический перевод
Цитата: |
ВАЖНЫЙ: Пожалуйста отметьте, что торговля backtester удовольствий, что Вы шкала-в/ как ЕДИНСТВЕННАЯ торговля (то есть покажет единственную колонку в торговом списке). Единственное различие против простой торговли - то, что это вычислит среднюю цену входа (и avg. вход показателя fx) основанное во всех частичных данных и средней выходной цене (и avg. выход показателя fx) основанное на им parial выходов и покажет средние цены на входе/выходная цена области. Комиссия конечно прилагается правильно к каждому входа/выхода (частичный) в зависимости от частичного покупать/продавать размер.
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Спасибо, появились вопросы:
В отчете усредняются только цены входов, или и выходов тоже?
Почему в подробном логе нет указанных количеств тк специально написал 3 и 7 лотов?
Каким способом лучше отладить код и проверить, что все работает как задумано, как при этом проверить правильность цен, чтобы не было сомнений?
Цены входов посмотрю. |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Блин. У меня тоже плохо работает. Разбираюсь уже 2 дня. Пока никак... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|