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



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

СообщениеДобавлено: Пн Июл 12, 2010 3:40 pm Ответить с цитатой Вернуться к началу

Посмотрите, пожалуйста, правильно ли я перевел на АФЛ код индикатора NRTR_WATR от konkop'a http://konkop.narod.ru/codes.htm

Код:
StopATRFactor = Param( "ATR multiple", 2, 0.1, 10, 0.1 );
Smooth = Param( "Smoothing", 30, 15, 100 );
//StopATRFactor = Optimize( "Chandelier ATR multiple", 2.4, 1, 3, 0.2 );
//Smooth = Optimize( "Smoothing", 20, 20, 50, 1 );

sup = H - StopATRFactor * WMA( ATR( 1 ), Smooth );
res = L + StopATRFactor * WMA( ATR( 1 ), Smooth );

// calculate trailing stop line
trailARRAY = Null;
trailstop = 0;

for ( i = 1; i < BarCount; i++ )
{
    trailstop[ i ] = IIf( C[ i ] > trailstop[i-1], sup[ i ], res[ i ] );

    trailARRAY[ i ] = trailstop[ i ];
}

// generate buy/sell signals based on crossover with trail stop line
Buy = Cross( C, trailArray );
Sell = Cross( trailArray, C );
Short = Cross( trailArray, C );
Cover = Cross( C, trailArray );

PlotShapes( Buy*shapeUpArrow, colorGreen, 0, trailarray );
PlotShapes( Cover*shapeUpArrow, colorGreen, 0, trailarray );
PlotShapes( Sell*shapeDownArrow, colorRed, 0, trailarray );
PlotShapes( Short*shapeDownArrow, colorRed, 0, trailarray );

//Plot( Close, "Price", colorBlack, styleBar );
Plot( trailARRAY, "trailing stop level", ParamColor("Color", colorBlue), styleNoTitle | ParamStyle("Style") );


вроде работает, но при некоторых значения параметров как то странно себя ведет Smile

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

По моему неправильно. Я давным давно делал. Вот
Код:

SetBarsRequired(100000,0);
GraphXSpace = 3;

// Параметры
k = Param("Мультипликатор", 3, 1, 4, 0.1);
Per = Param("Период WATR", 14, 1, 30, 1);

/*
// Расчет WATR
WATR = WMA(H-L, Per);
Для форекса взыешивать по объему смысла нет поэтому заменил WATR на обычный ATR
В результате получился обычный "Chandler exit"
*/

WATR = ATR(Per); 

revers = k * WATR;

Trend[0] = 1;  // тренд вверх
NW[0] = C[0] - Revers[0];  // Первое значение NW
PE[0] = 0;

for(i = 1; i < BarCount; i++)
{
 if(Trend[i-1] == 1)                //Up Trend
 {
  if(C[i] > PE[i-1])                        //Новый High
  {
   Trend[i] = 1;
   PE[i] = C[i];
   NW[i] = PE[i] - Revers[i];
  }
  else
  {
   if(C[i] < NW[i-1])                     //Реверс
   {
    Trend[i] = -1;
    PE[i] = C[i];
    NW[i] = PE[i] + Revers[i];
   }
   else                                          //Нет нового high и реверса
   {
    Trend[i] = 1;
    PE[i] = PE[i-1];
    NW[i] = PE[i] - Revers[i];
   }
  }
 }
//======================================
 else                                             //Down Trend
 {
  if(C[i] < PE[i-1])                        //Новый Low
  {
   Trend[i] = -1;
   PE[i] = C[i];
   NW[i] = PE[i] + Revers[i];
  }
  else
  {
   if(C[i] > NW[i-1])                     //Реверс
   {
    Trend[i] = 1;
    PE[i] = C[i];
    NW[i] = PE[i] - Revers[i];
   }
   else                                          //Нет нового Low и реверса
   {
    Trend[i] = -1;
    PE[i] = PE[i-1];
    NW[i] = PE[i] + Revers[i];
   }
  }
 }
}



Plot(NW, "NRTR WATR", IIf(Trend == 1, 27, 4), 4);

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



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

СообщениеДобавлено: Вт Июл 13, 2010 9:49 am Ответить с цитатой Вернуться к началу

Да, наверное вы правы, я слишком упростил расчет Smile
Ваш вариант работает понадежнее...

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen