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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Ср Апр 09, 2008 10:47 am Ответить с цитатой Вернуться к началу

Вот бы блин, результат тестирования на истории да в мой брокерский счет. Smile Правда тестил, другую систему:

P = ParamField( "Price field" );
change = 1.5;

Cond1 = Ref(Zig(P, change), -1)<Ref(Zig(P, change),-2) AND Zig(P, change) > Ref(Zig(P, change), -1); // точка пересечения, излом вверх-вниз

Cond2 = Ref(Zig(P, change), -1)> Ref(Zig(P, change),-2) AND Zig(P, change) < Ref(Zig(P, change), -1); // точка пересечения, излом вниз-вверх

Ну с этим мы разобрались в прошлый раз. Smile

Теперь нужно, от точки отсчитать 1,5% изменения для входа в позу и иметь среднесрочный минимум последним( для лонга или макс для шорта), ну чтоб не попасть в просак, выход по скользящему стопу или краткосрочному макс для лонга( мин для шорта), от вас Олег хотелось бы узнать как отсчитать 1,5% (я просто не знаю), ну а я постараюсь справиться с остальными задачами, думаю это будет познавательно для форумян, плюс пример раализации конкретной задачи. И у меня есть мысль, что система окажется доходной. Предлогаю начать. Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Сергей



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

СообщениеДобавлено: Ср Апр 09, 2008 1:03 pm Ответить с цитатой Вернуться к началу

commenced писал(а):
Вот бы блин, результат тестирования на истории да в мой брокерский счет. Smile Правда тестил, другую систему:

P = ParamField( "Price field" );
change = 1.5;

Cond1 = Ref(Zig(P, change), -1)<Ref(Zig(P, change),-2) AND Zig(P, change) > Ref(Zig(P, change), -1); // точка пересечения, излом вверх-вниз

Cond2 = Ref(Zig(P, change), -1)> Ref(Zig(P, change),-2) AND Zig(P, change) < Ref(Zig(P, change), -1); // точка пересечения, излом вниз-вверх

Ну с этим мы разобрались в прошлый раз. Smile

Теперь нужно, от точки отсчитать 1,5% изменения для входа в позу и иметь среднесрочный минимум последним( для лонга или макс для шорта), ну чтоб не попасть в просак, выход по скользящему стопу или краткосрочному макс для лонга( мин для шорта), от вас Олег хотелось бы узнать как отсчитать 1,5% (я просто не знаю), ну а я постараюсь справиться с остальными задачами, думаю это будет познавательно для форумян, плюс пример раализации конкретной задачи. И у меня есть мысль, что система окажется доходной. Предлогаю начать. Smile

С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x);
Посмотреть профиль Отправить личное сообщение
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Ср Апр 09, 2008 1:27 pm Ответить с цитатой Вернуться к началу

Так мы возьмем направление движухи, причем на отрезке где он впринципе не сможет наколоть. Еще бы код зиг заг открытые чтоб там поковыряться можно было, былобы вообще хорошо. Щас сваливаю, надо машину переобуть, потом ченибудь постараюсь замастрячить.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Сергей



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

СообщениеДобавлено: Ср Апр 09, 2008 1:29 pm Ответить с цитатой Вернуться к началу

commenced писал(а):
Так мы возьмем направление движухи, причем на отрезке где он впринципе не сможет наколоть. Еще бы код зиг заг открытые чтоб там поковыряться можно было, былобы вообще хорошо. Щас сваливаю, надо машину переобуть, потом ченибудь постараюсь замастрячить.

А у тебя есть индикатор движения не косячный? Я таких не встречал, если бы был такой так вошел бы внизу и вышел вверху, вот и все) Ладно колись что за индикатор)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Апр 09, 2008 10:26 pm Ответить с цитатой Вернуться к началу

Код:

SetBarsRequired(100000,0);

revers = Param("Revers %", 5, 0.1, 10, 0.1)/100;

Trend = 1;                  
Rev[0] = C[0] - C[0]*Revers;         
UPpik = 0;
Dwpik = 0;
k = 1;
SwingLine = Null;
SwingLine[0] = C[0];

function ZigLine(k, i, trend)
{
   d = i - k;
   if(trend)
   {
      Amp = H[i] - L[k];
      SwingLine[k] = L[k];
   }
   else
   {
      Amp = L[i] - H[k];
      SwingLine[k] = H[k];
   }
   Step = Amp/d;
   for(j = k+1; j <= i; j++)
   {
      SwingLine[j] = SwingLine[j-1]+ Step;
   }
   return SwingLine;
}

for(i = 1; i < BarCount; i++)
{
   if(Trend)                        //Up Trend
   {
      if(H[i] > UPpik)                     
      {
         rev[i] = H[i] - H[i]*revers;
         CE = i;
         ZigLine(k, i, trend);
         Uppik = H[i];
      }
      else
      {
         if(L[i] < Rev[i-1])         
         {
            Trend = 0;
            Dwpik = L[i];
            k = CE;
            CE = i;
            ZigLine(k, i, trend);
            Rev[i] = L[i] + L[i]*revers;

         }
         else                                    
         {
            Rev[i] = Uppik - uppik*revers;
         }
      }
   }
//======================================
   else                                             //Down Trend
   {
      if(L[i] < DWpik)                     
      {
         Rev[i] = L[i] + L[i]*Revers;
         DWpik = L[i];
         CE = i;
         ZigLine(k, i, trend);
      }
      else
      {
         if(H[i] > Rev[i-1])            
         {
            Trend = 1;
            Uppik = H[i];
            k = CE;
            CE = i;
            ZigLine(k, i, trend);
            Rev[i] = H[i] - H[i]*Revers;
         }
         else                                       
         {
            Rev[i] = DWpik + DWpik*Revers;
         }
      }
   }
}

Plot(Rev, "revers", ParamColor("Color", colorBlue ), ParamStyle("Style Revers", styleDashed) );
Plot(SwingLine, "ZigZag", IIf(SwingLine > Ref(SwingLine, -1), 27, 4), ParamStyle("Style Swing", styleThick) );

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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Апр 10, 2008 9:15 am Ответить с цитатой Вернуться к началу

Извените проведя 2 часа в шиномантаже, не смог удержаться от хорошего нефильтрованного пива, вобщем извените.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Апр 10, 2008 9:35 am Ответить с цитатой Вернуться к началу

Сергей писал(а):

С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x);


Вы уверенны в операторе Barsince

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Сергей



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

СообщениеДобавлено: Чт Апр 10, 2008 11:20 am Ответить с цитатой Вернуться к началу

commenced писал(а):
Сергей писал(а):

С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x);


Вы уверенны в операторе Barsince

Всмысле?
Посмотреть профиль Отправить личное сообщение
Sergiovy



Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск

СообщениеДобавлено: Чт Апр 10, 2008 11:24 am Ответить с цитатой Вернуться к началу

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



///
Чего то крутое! Smile
Пока наблюдаем!

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Апр 10, 2008 11:30 am Ответить с цитатой Вернуться к началу

Сергей писал(а):
commenced писал(а):
Сергей писал(а):

С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x);


Вы уверенны в операторе Barsince

Всмысле?


В смысле что это не оператор (ами покрайне мере такого на знает, написано правильно, может в букве где ошибка?

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Апр 10, 2008 11:32 am Ответить с цитатой Вернуться к началу

Sergiovy писал(а):
000 писал(а):
Код:



///
Чего то крутое! Smile
Пока наблюдаем!


Не отвлекаемся, у вас вроде работа есть. Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


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

СообщениеДобавлено: Чт Апр 10, 2008 12:40 pm Ответить с цитатой Вернуться к началу

Ничего крутого. Процентный ЗигЗаг по хай-лой с линией уровня реверса.

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



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

СообщениеДобавлено: Чт Апр 10, 2008 12:45 pm Ответить с цитатой Вернуться к началу

commenced писал(а):
Сергей писал(а):
commenced писал(а):
Сергей писал(а):

С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x);


Вы уверенны в операторе Barsince

Всмысле?


В смысле что это не оператор (ами покрайне мере такого на знает, написано правильно, может в букве где ошибка?

Да, поспешил, правильно так BarsSince
Посмотреть профиль Отправить личное сообщение
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Апр 10, 2008 4:12 pm Ответить с цитатой Вернуться к началу

Сергей писал(а):
commenced писал(а):
Сергей писал(а):
commenced писал(а):
Сергей писал(а):

С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x);


Вы уверенны в операторе Barsince

Всмысле?


В смысле что это не оператор (ами покрайне мере такого на знает, написано правильно, может в букве где ошибка?

Да, поспешил, правильно так BarsSince


Наконецто взялся. Smile Правильнее так:

X=BarsSince(Cond1);
Y = Ref(C,- x)>=(0.985*C);

X1=BarsSince(Cond2);
Y1 = Ref(C,- x)>=(1.015*C);

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Апр 10, 2008 5:05 pm Ответить с цитатой Вернуться к началу

Выдавил что мог, , проскальзывание 0.1 гп 15.01.2007-15.01.2008 Обратных скачков нет проверял на сканере, да и по забитым условиям вроде недолжно быть, думаю выход картинку портит нужно что нибудь придумывать. Smile В целом система доходна за 2 года 112%.


Код:
SetBarsRequired(100000,0);

revers = Param("Revers %", 2, 0.1, 10, 0.1)/100;

Trend = 1;                   
Rev[0] = C[0] - C[0]*Revers;         
UPpik = 0;
Dwpik = 0;
k = 1;
SwingLine = Null;
SwingLine[0] = C[0];

function ZigLine(k, i, trend)
{
   d = i - k;
   if(trend)
   {
      Amp = H[i] - L[k];
      SwingLine[k] = L[k];
   }
   else
   {
      Amp = L[i] - H[k];
      SwingLine[k] = H[k];
   }
   Step = Amp/d;
   for(j = k+1; j <= i; j++)
   {
      SwingLine[j] = SwingLine[j-1]+ Step;
   }
   return SwingLine;
}

for(i = 1; i < BarCount; i++)
{
   if(Trend)                        //Up Trend
   {
      if(H[i] > UPpik)                     
      {
         rev[i] = H[i] - H[i]*revers;
         CE = i;
         ZigLine(k, i, trend);
         Uppik = H[i];
      }
      else
      {
         if(L[i] < Rev[i-1])         
         {
            Trend = 0;
            Dwpik = L[i];
            k = CE;
            CE = i;
            ZigLine(k, i, trend);
            Rev[i] = L[i] + L[i]*revers;

         }
         else                                     
         {
            Rev[i] = Uppik - uppik*revers;
         }
      }
   }
//======================================
   else                                             //Down Trend
   {
      if(L[i] < DWpik)                     
      {
         Rev[i] = L[i] + L[i]*Revers;
         DWpik = L[i];
         CE = i;
         ZigLine(k, i, trend);
      }
      else
      {
         if(H[i] > Rev[i-1])             
         {
            Trend = 1;
            Uppik = H[i];
            k = CE;
            CE = i;
            ZigLine(k, i, trend);
            Rev[i] = H[i] - H[i]*Revers;
         }
         else                                       
         {
            Rev[i] = DWpik + DWpik*Revers;
         }
      }
   }
}

Plot(Rev, "revers", ParamColor("Color", colorBlue ), ParamStyle("Style Revers", styleDashed) );
Plot(SwingLine, "ZigZag", IIf(SwingLine > Ref(SwingLine, -1), 27, 4), ParamStyle("Style Swing", styleThick) );


Cond1 = Ref(SwingLine, -1)<Ref(SwingLine,-2) AND SwingLine > Ref(SwingLine, -1);
Cond2 = Ref(SwingLine, -1)> Ref(SwingLine,-2) AND SwingLine < Ref(SwingLine, -1);

X=BarsSince(Cond1);
Y = Ref(C,- x)<=((1-revers)*L) AND SwingLine>Ref(SwingLine,-1);

X1=BarsSince(Cond2);
Y1 = Ref(C,- x)>=((1+revers)*H)AND SwingLine<Ref(SwingLine,-1);

Buy = Y;

Short = Y1;

Sell=O<Ref(C,-2);
Cover=O>Ref(C,-2);
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);



PlotShapes(IIf(Buy,shapeUpArrow,0),5,0,Graph0,-15);
PlotShapes(IIf(Sell,shapeDownArrow,0),4,0,Graph0,-15);
PlotShapes(IIf(Cover,shapeHollowUpArrow,0),5,0,Graph0,-15);
PlotShapes(IIf(Short,shapeHollowDownArrow,0),4,0,Graph0,-15);

SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );

BuyPrice = SellPrice = ShortPrice = CoverPrice = O;

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen