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


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

СообщениеДобавлено: Пн Янв 04, 2010 3:08 am Ответить с цитатой Вернуться к началу

Ага. Вроде получилось. Проверяй
Код:

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

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

Что-то с ходу не хочет. Сделок нет. Попробую, потом спрошу.
Спасибо что не зыбил.


Последний раз редактировалось: Teema (Пн Янв 04, 2010 9:49 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

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

Вот
Код:

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

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

одна сделка по этому коду.(?
Я по переводу понял так:
в одной строке вы не увидите разного количества сделок
на твоем отчете и 7 и 10. Проверить бы.

Олег, частичный выход по прибыли, это, как-бы, параллельная стратегия с основной. Есть ли где тема, как сразу две-три стратегии тестировать?


Последний раз редактировалось: Teema (Пн Янв 04, 2010 10:06 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

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

Какой символ и фрейм. Попробую проверить у себя.

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



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

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

Олег. Похоже у тебя дневки, а я на часах пробовал Gazp или GZ... фьючи.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

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

Это 15 минут, но тестировал на часовках. И на Газе в т.ч. Там время открытия и закрытия всегда 10:29 потому, что я тупо в понедельник открываю и в пятницу закрываю. Он на первом баре эти сделки фигачит.

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


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

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

Вот

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


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

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

Teema писал(а):

Олег, частичный выход по прибыли, это, как-бы, параллельная стратегия с основной. Есть ли где тема, как сразу две-три стратегии тестировать?

На пауке как то писали.
Если разные стратегии на разных бумагах то вообще просто.
Типа так
Код:

if(Name() == "БлаБла")
{
  правила стратегии 1
}
else if(Name() == "БлаБла2")
{
 правила стратегии 2
}

А если на одном, то есть хитрость.
Суть вот в чем. Создаешь еще один тикер с точно такими котировками как у первого но другим именем. Дальше действуешь аналогично выше написанному.

Тестируешь как портфель.

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



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

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

Код этот?
Код:

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

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

000 писал(а):
Вот


По системе входим 10 лот.
Перевод по функции:ВАЖНО: Обратите внимание, что относится к торговле backtester что вы scale-in/out качестве одной сделке (т.е. покажет одну строку в торговле список). Разница лишь в сравнении с равнины торговли является то, что он будет вычислить среднюю цену входа (и ср. Въезд FX ставки) на основе всех частичных записей и средней отпускной ценой (и ср. Выхода FX ставки) на основе всех parial выходы и покажет, средние цены в въезда / выезда, цены на местах. Комиссия, конечно, правильно применять каждый (частичное) въезда / выезда в зависимости от частичной покупки / продажи размера.

т.е. должен показать на каждую закрытую сделку только 10 лот. А есть еще и 7. Непонятно, входили то 10.

Пока похожих результатов не могу получить.
Буду проверять.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

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

Нет. Он покажет сайз сделки такой, какой был на момент закрытия. Т.е. если открылись 10, потом сократили на 3, то покажет сайз 7

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



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

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

Понял. Буду цены проверять.
Что то начало проясняться.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Teema



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

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

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

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

Я уже не помню кто первый такую идею подкинул. Может и я. Smile

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen