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



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

СообщениеДобавлено: Сб Апр 19, 2014 9:52 pm Ответить с цитатой Вернуться к началу

В общем нашёл ошибку. Система пересиживала в позиции благодаря обновлению массиву LH =LowestSince()
Если кому интересно, вот код который был:
Код:
Z1 = (O > C);
Z2 = (C > O);

LH = LowestSince(Z1, High, 1);
HL = HighestSince(Z2, Low, 1);

Cover = Buy = Cross(High, LH);
Short = Sell = Cross(HL, Low);

BuyPrice = CoverPrice = Max(LH,Open);
SellPrice = ShortPrice = Min(HL,Open);

X1 = ExRem(Buy, Sell);
X2 = ExRem(Sell, Buy);


Plot( HL, "BuyPrice", ParamColor( "Color Z2", colorCycle ), ParamStyle("Style Z2"));
Plot( LH, "uyPrice", ParamColor( "Color LH", colorCycle ), ParamStyle("Style LH"));


А вот логика на For:

Код:
SetBarsRequired(sbrAll, sbrAll);
BP[1] = H[1];
SP[1] = L[1];
for( i = 1; i < BarCount; i++ )
{
   if(O[i]>C[i])
      {
         if(O[i-1]>C[i-1])
         {BP[i] = Min(H[i], H[i-1]);}
         else {BP[i] = H[i];}
         
      }
   else
      {
         BP[i] = BP[i-1];
      }

   if(O[i]<C[i])
      {
         if(O[i-1]<C[i-1])
         {SP[i] = Max(L[i], L[i-1]);}
         else {SP[i] = L[i];}
         
      }
   else
      {
         SP[i] = SP[i-1];
      }

}
Cover = Buy = Cross(High, BP);
Short = Sell = Cross(SP, Low);

BuyPrice = CoverPrice = Max(BP,Open);
SellPrice = ShortPrice = Min(SP,Open);

Plot(BP, "BP",6,1);
Plot(SP, "BP",4,1);
Посмотреть профиль Отправить личное сообщение ICQ Number
moextrader



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

СообщениеДобавлено: Сб Май 31, 2014 11:22 am Ответить с цитатой Вернуться к началу

по моему вот так логичней, у меня льет, особенно если скольжение до 20 повысить

Код:

SetBarsRequired(sbrAll, sbrAll);
BP[1] = H[1];
SP[1] = L[1];
for( i = 1; i < BarCount; i++ )
{
   if(O[i]>C[i])
      {
         if(O[i-1]>C[i-1])
         {BP[i] = Min(H[i], H[i-1]);}
         else {BP[i] = H[i];}
         
      }
   else
      {
         BP[i] = BP[i-1];
      }

   if(O[i]<C[i])
      {
         if(O[i-1]<C[i-1])
         {SP[i] = Max(L[i], L[i-1]);}
         else {SP[i] = L[i];}
         
      }
   else
      {
         SP[i] = SP[i-1];
      }

}

Buy1=Cross(High, BP);
Short1=Cross(SP, Low);

Buy = Cover = Buy1 AND NOT Short1;
Short = Sell = Short1 AND NOT Buy1;

Buy=ExRem(Buy,Sell); 
Sell=ExRem(Sell,Buy); 
Short=ExRem(Short,Cover); 
Cover=ExRem(Cover,Short); 

BuyPrice = CoverPrice = Max(BP,Open)+10;
SellPrice = ShortPrice = Min(SP,Open)-10;

Plot(BP, "BP",6,1);
Plot(SP, "SP",4,1);

PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-25);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-35);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-30);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=25);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=35);
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-30);

Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen