Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ага. Вроде получилось. Проверяй
Код: |
Buy1 = ...;
Sell1 = ...;
SellPrice = C;
BuyPrice = C;
FirstProfitTarget = 20; // profit
pos = 0 ;
priceBuy = 0;
Lot = 0;
for( i = 0; i < BarCount; i++ )
{
if(pos == 0)
{
if( Buy1[i] )
{
Buy[i] = 1;
priceBuy = C[i];
pos = 10;
Lot[i] = 10;
}
}
else if (pos == 10) // система в лонге
{
if( High[i] > (priceBuy + FirstProfitTarget) ) // 1ый профит
{
Buy[i] = sigScaleOut;
BuyPrice[i] = priceBuy + FirstProfitTarget;
pos = 7;
Lot[i] = 3;
}
else if(Sell1[i])
{
Sell[i] = 1;
Lot[i] = 10;
pos = 0;
}
}
else if(pos == 7) // система в лонге
{
if(Sell1[i])
{
Sell[i] = 1;
Lot[i] = 7;
pos = 0;
}
}
}
SetPositionSize(Lot, 4);
|
Фактически у тебя все правильно было. Только надо было писать не if( position == 10 ) а else if( position == 10 ) и т.д. Чтобы на одном прогоне (баре) могла сработать только одна сделка. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Что-то с ходу не хочет. Сделок нет. Попробую, потом спрошу.
Спасибо что не зыбил. |
Последний раз редактировалось: Teema (Пн Янв 04, 2010 9:49 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот
Код: |
Buy1 = DayOfWeek() == 1;
Sell1 = DayOfWeek() == 5;
//Buy1 = ExRem(Buy1, Sell1);
//Sell1 = ExRem(Sell1, Buy1);
SellPrice = C;
BuyPrice = C;
FirstProfitTarget = 1.05; // profit
pos = 0 ;
priceBuy = 0;
Lot = 0;
for( i = 0; i < BarCount; i++ )
{
if(pos == 0)
{
if( Buy1[i] )
{
Buy[i] = 1;
priceBuy = C[i];
pos = 10;
Lot[i] = 10;
}
}
else if (pos == 10) // система в лонге
{
if( High[i] > (priceBuy * FirstProfitTarget) ) // 1ый профит
{
Buy[i] = sigScaleOut;
BuyPrice[i] = priceBuy * FirstProfitTarget;
pos = 7;
Lot[i] = 3;
}
else if(Sell1[i])
{
Sell[i] = 1;
Lot[i] = 10;
pos = 0;
}
}
else if(pos == 7) // система в лонге
{
if(Sell1[i])
{
Sell[i] = 1;
Lot[i] = 7;
pos = 0;
}
}
}
SetPositionSize(Lot, 4);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
одна сделка по этому коду.(?
Я по переводу понял так:
в одной строке вы не увидите разного количества сделок
на твоем отчете и 7 и 10. Проверить бы.
Олег, частичный выход по прибыли, это, как-бы, параллельная стратегия с основной. Есть ли где тема, как сразу две-три стратегии тестировать? |
Последний раз редактировалось: Teema (Пн Янв 04, 2010 10:06 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Какой символ и фрейм. Попробую проверить у себя. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Олег. Похоже у тебя дневки, а я на часах пробовал Gazp или GZ... фьючи. |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это 15 минут, но тестировал на часовках. И на Газе в т.ч. Там время открытия и закрытия всегда 10:29 потому, что я тупо в понедельник открываю и в пятницу закрываю. Он на первом баре эти сделки фигачит. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Teema писал(а): |
Олег, частичный выход по прибыли, это, как-бы, параллельная стратегия с основной. Есть ли где тема, как сразу две-три стратегии тестировать? |
На пауке как то писали.
Если разные стратегии на разных бумагах то вообще просто.
Типа так
Код: |
if(Name() == "БлаБла")
{
правила стратегии 1
}
else if(Name() == "БлаБла2")
{
правила стратегии 2
}
|
А если на одном, то есть хитрость.
Суть вот в чем. Создаешь еще один тикер с точно такими котировками как у первого но другим именем. Дальше действуешь аналогично выше написанному.
Тестируешь как портфель. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Код этот?
Код: |
Buy1 = DayOfWeek() == 1;
Sell1 = DayOfWeek() == 5;
//Buy1 = ExRem(Buy1, Sell1);
//Sell1 = ExRem(Sell1, Buy1);
SellPrice = C;
BuyPrice = C;
FirstProfitTarget = 1.05; // profit
pos = 0 ;
priceBuy = 0;
Lot = 0;
for( i = 0; i < BarCount; i++ )
{
if(pos == 0)
{
if( Buy1[i] )
{
Buy[i] = 1;
priceBuy = C[i];
pos = 10;
Lot[i] = 10;
}
}
else if (pos == 10) // система в лонге
{
if( High[i] > (priceBuy * FirstProfitTarget) ) // 1ый профит
{
Buy[i] = sigScaleOut;
BuyPrice[i] = priceBuy * FirstProfitTarget;
pos = 7;
Lot[i] = 3;
}
else if(Sell1[i])
{
Sell[i] = 1;
Lot[i] = 10;
pos = 0;
}
}
else if(pos == 7) // система в лонге
{
if(Sell1[i])
{
Sell[i] = 1;
Lot[i] = 7;
pos = 0;
}
}
}
SetPositionSize(Lot, 4);
|
|
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
По системе входим 10 лот.
Перевод по функции:ВАЖНО: Обратите внимание, что относится к торговле backtester что вы scale-in/out качестве одной сделке (т.е. покажет одну строку в торговле список). Разница лишь в сравнении с равнины торговли является то, что он будет вычислить среднюю цену входа (и ср. Въезд FX ставки) на основе всех частичных записей и средней отпускной ценой (и ср. Выхода FX ставки) на основе всех parial выходы и покажет, средние цены в въезда / выезда, цены на местах. Комиссия, конечно, правильно применять каждый (частичное) въезда / выезда в зависимости от частичной покупки / продажи размера.
т.е. должен показать на каждую закрытую сделку только 10 лот. А есть еще и 7. Непонятно, входили то 10.
Пока похожих результатов не могу получить.
Буду проверять. |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Нет. Он покажет сайз сделки такой, какой был на момент закрытия. Т.е. если открылись 10, потом сократили на 3, то покажет сайз 7 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Понял. Буду цены проверять.
Что то начало проясняться. |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
000 писал(а): |
Teema писал(а): |
Олег, частичный выход по прибыли, это, как-бы, параллельная стратегия с основной. Есть ли где тема, как сразу две-три стратегии тестировать? |
На пауке как то писали.
Если разные стратегии на разных бумагах то вообще просто.
Типа так
Код: |
if(Name() == "БлаБла")
{
правила стратегии 1
}
else if(Name() == "БлаБла2")
{
правила стратегии 2
}
|
А если на одном, то есть хитрость.
Суть вот в чем. Создаешь еще один тикер с точно такими котировками как у первого но другим именем. Дальше действуешь аналогично выше написанному.
Тестируешь как портфель. |
Похоже , Олег, твоя идея изначально! http://heaventrading.wordpress.com/2008/02/19/multisystem-backtester-part1/ |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Я уже не помню кто первый такую идею подкинул. Может и я. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|