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



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

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

Приветствую.
Имею следующий алгоритм
- вход по пробитии линии а1=ref(hhv(h,5),-1)
- выход №1 - точка входа +500
- выход №2 - пробой вниз a2=ref(llv(l,5),-1)

Для реализации выхода №1 и выхода №2 взял пример из хелпа. с точки зрения алгоритма работает вроде правильно есть неточность в выходе по таргету (№1). Я посмотрел детальный лог и каждый выход из позы был по открытию бара на котором сработало условие - что несколько неправильно. как его научить выходить именно в данной точке?

И еще один нюанс - так как линия по пробою которой был вход постоянно перемещается (при росте) то не получится ли что таргет будет отсчитываться каждый раз от нового уровня на котором будут происходить события? Я на всякие случай думал вписать exrem но тогда scaleout накрылся

Спасибо!
Код:
for( i = 0; i < BarCount; i++ )
{
   if( priceatbuy == 0 AND Buy[ i ] )
    {
       priceatbuy = BuyPrice[ i ];
    }

   if( priceatbuy > 0 )
    {
       highsincebuy = Max( High[ i ], highsincebuy );
      if( exit == 0 AND
          High[ i ] >= FirstProfitTarget + priceatbuy+TickSize )
       {
         // first profit target hit - scale-out
         exit = 1;
         Buy[ i ] = sigScaleOut;
       }
 if( Low[ i ] <= a2[i]-TickSize )
       {
         // trailing stop hit - exit
         exit = 2;   
         SellPrice[ i ] = Min( Open[ i ], a2[i]-TickSize );
       }
      if( exit >= 2 )
       {
         Buy[ i ] = 0;
         Sell[ i ] = exit + 1; // mark appropriate exit code
         exit = 0;
         priceatbuy = 0; // reset price
         highsincebuy = 0;
       }
    }
}
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Ноя 18, 2010 1:50 pm Ответить с цитатой Вернуться к началу

max писал(а):
Приветствую.
Имею следующий алгоритм
- вход по пробитии линии а1=ref(hhv(h,5),-1)
- выход №1 - точка входа +500
- выход №2 - пробой вниз a2=ref(llv(l,5),-1)

Для реализации выхода №1 и выхода №2 взял пример из хелпа. с точки зрения алгоритма работает вроде правильно есть неточность в выходе по таргету (№1). Я посмотрел детальный лог и каждый выход из позы был по открытию бара на котором сработало условие - что несколько неправильно. как его научить выходить именно в данной точке?

И еще один нюанс - так как линия по пробою которой был вход постоянно перемещается (при росте) то не получится ли что таргет будет отсчитываться каждый раз от нового уровня на котором будут происходить события? Я на всякие случай думал вписать exrem но тогда scaleout накрылся

Спасибо!
Код:
for( i = 0; i < BarCount; i++ )
{
   if( priceatbuy == 0 AND Buy[ i ] )
    {
       priceatbuy = BuyPrice[ i ];
    }

   if( priceatbuy > 0 )
    {
       highsincebuy = Max( High[ i ], highsincebuy );
      if( exit == 0 AND
          High[ i ] >= FirstProfitTarget + priceatbuy+TickSize )
       {
         // first profit target hit - scale-out
         exit = 1;
         Buy[ i ] = sigScaleOut;
       }
 if( Low[ i ] <= a2[i]-TickSize )
       {
         // trailing stop hit - exit
         exit = 2;   
         SellPrice[ i ] = Min( Open[ i ], a2[i]-TickSize );
       }
      if( exit >= 2 )
       {
         Buy[ i ] = 0;
         Sell[ i ] = exit + 1; // mark appropriate exit code
         exit = 0;
         priceatbuy = 0; // reset price
         highsincebuy = 0;
       }
    }
}

Открытие и закрытие происходит по цене установленной либо в настройках тестера http://www.amisite.ru/begin/bk_set3.htm
либо цена задана в коде при помощи переменных BuyPrice, SellPrice, ShortPrice, Cover Price.
Т.е. чтобы сделка считалась по уровню надо добавить в соответствующих местах BuyPrice[i] = ...; и т.д.

Из этого куска кода не понятно как задается таргет FirstProfitTarget и поэтому ничего по этому поводу сказать нельзя.
Ничего не мешает задавать его прямо в цикле типа
Код:

for( i = 0; i < BarCount; i++ )
{
   if( priceatbuy == 0 AND Buy[ i ] )
    {
       priceatbuy = BuyPrice[ i ];
       FirstProfitTarget = priceatbuy + ...;
    }

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



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

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

000 писал(а):

Открытие и закрытие происходит по цене установленной либо в настройках тестера http://www.amisite.ru/begin/bk_set3.htm
либо цена задана в коде при помощи переменных BuyPrice, SellPrice, ShortPrice, Cover Price.
Т.е. чтобы сделка считалась по уровню надо добавить в соответствующих местах BuyPrice[i] = ...; и т.д.

Из этого куска кода не понятно как задается таргет FirstProfitTarget и поэтому ничего по этому поводу сказать нельзя.
Ничего не мешает задавать его прямо в цикле типа
Код:

for( i = 0; i < BarCount; i++ )
{
   if( priceatbuy == 0 AND Buy[ i ] )
    {
       priceatbuy = BuyPrice[ i ];
       FirstProfitTarget = priceatbuy + ...;
    }


я написал
if( priceatbuy == 0 AND Buy[ i ] )
{
priceatbuy = BuyPrice[ i ];
FirstProfitTarget = priceatbuy + 500;
}

не помогает - все равно считает выход на правильном баре (т/е/условие на выход срабатывает) но берет опен бара
дописал тут явное указание какую цену выхода брать
if( exit == 0 AND
High[ i ] >= FirstProfitTarget +TickSize )
{
// first profit target hit - scale-out
exit = 1;
Buy[ i ] = sigScaleOut;
SellPrice[ i ] = FirstProfitTarget+TickSize;
}

Нихрена не помогает, но при этом на выходе по стоп-лоссу уровень выхода срабатывает точно пункт в пункт
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Ноя 18, 2010 6:01 pm Ответить с цитатой Вернуться к началу

Хм. Я вообще по этому поводу не заморачивался, но:
ведь там Buy. так может писать не SellPrice а BuyPrice.

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



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

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

000 писал(а):
Хм. Я вообще по этому поводу не заморачивался, но:
ведь там Buy. так может писать не SellPrice а BuyPrice.


ну ведь это команда на выход а не на вхо как я понимаю
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Написано Buy
Код:

Buy[ i ] = sigScaleOut;

значит бай. Значит BuyPrice.

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



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

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

000 писал(а):
Написано Buy
Код:

Buy[ i ] = sigScaleOut;

значит бай. Значит BuyPrice.


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


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

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

Ну может у поляков иной взгляд на этот вопрос. Smile
Самое главное раз команда Buy, хоть и сокращение позиции значит BuyPrice. Тут все логично Wink

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen