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



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

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

Плагины для юрика качать сдесь http://bearden.narod.ru/[/quote]
Подскажи точнее чего и куда скачать нужно)
Посмотреть профиль Отправить личное сообщение
commenced
Советник


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

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

Сергей писал(а):
Плагины для юрика качать сдесь http://bearden.narod.ru/

Подскажи точнее чего и куда скачать нужно)[/quote]

Извени думал он на своем сайте сделал, короче индюки из папки в индюки кидай, а плагин(там будет один файл в плагины, после чего амиброкер перезагрузи). http://forex.kbpauk.ru/download.php?Number=131755

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



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

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

commenced писал(а):
Сергей писал(а):
Плагины для юрика качать сдесь http://bearden.narod.ru/

Подскажи точнее чего и куда скачать нужно)


Извени думал он на своем сайте сделал, короче индюки из папки в индюки кидай, а плагин(там будет один файл в плагины, после чего амиброкер перезагрузи). http://forex.kbpauk.ru/download.php?Number=131755[/quote]
Спасибо)
Посмотреть профиль Отправить личное сообщение
commenced
Советник


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

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

Типа адх и параболик, что оптимизировать решайте сами, там аж 6 параметров. Кстати совет, если кто еще до этого не дошел, когда делаете оптимизацию, обязательно уберайте строку = Param() и подобные если оптимизуруемая величина находится в подобной строке, ничего не оптимизируется.

Код:


SetBarsRequired(100000, 100000);
acc = 0.019;
accm = 0.2;
parab = SAR( acc, accm );
range = 12;


Cond1 = MA(ADX(range), 9)-Ref(MA(ADX(range), 9),-1)>0.3;
Cond2 = (PDI(range)-MDI(range))>5;
Cond3 = (MDI(range)-PDI(range))>5;
Cond4 = Ref(parab, -1)<C;
Cond5 = Ref(parab, -1)>C;

Buy = Cond1 AND Cond2 AND Cond4;

Short = Cond1 AND Cond3 AND Cond5;

Sell=Cross(parab, C);
Cover=Cross(C, parab);

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

Plot( SAR( acc, accm ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),
ParamStyle("Style", styleDots | styleNoLine, maskDefault | styleDots | styleNoLine ) );
Plot(C,"price",1,128);
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);

BuyPrice = SellPrice = ShortPrice = CoverPrice = С;


cond1 лучше заменить на функцию измеряющую ускорение изменения, ну это для тех кого прет тюнинг и все такое, новое и навороченное. Smile

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


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

СообщениеДобавлено: Пн Май 05, 2008 12:08 pm Ответить с цитатой Вернуться к началу

Код:
up = L > Ref(L, -1) & H >= Ref(H, -1);
dw = L <= Ref(L, -1) & H < Ref(H, -1);

up = ExRem(up, dw);
dw = ExRem(dw, up);

swing = Flip(up, dw);

x = 0;
x0 = 0;
y = 0;
y0 = 0;

Hi = 0;
Lo = 0;
Line = Null;

function swingline(x0, x, y0, y)
{
   m = (y-y0)/(x-x0);
   for(j = x0; j <= x; j++)
   {
      Line[j] = y0 + (j-x0)*m;
   }
return Line;
}

for( i = 1; i < BarCount; i++ )
{
   if(swing[i] == 1)
   {
      if(up[i] == 1)
      {
         Lo[x] = y;

         y0 = y;
         x0 = x;

         y = H[i];
         x = i;
         swingline(x0, x, y0, y);
      }
      else if(H[i] > y)
      {
         y = H[i];
         x = i;
         swingline(x0, x, y0, y);
      }
   }
   else
   {
      if(dw[i] == 1)
      {
         Hi[x] = y;

         y0 = y;
         x0 = x;

         y = L[i];
         x = i;
         swingline(x0, x, y0, y);
      }
      else if(L[i] < y)
      {
         y = L[i];
         x = i;
         swingline(x0, x, y0, y);
      }       
   }
}

Hm = Hi > 0;
Lm = Lo > 0;
mup = Hm & ValueWhen(Hm, H, 2) < H & ValueWhen(Hm, H, 0) < H;
mdw = Lm & ValueWhen(Lm, L, 2) > L & ValueWhen(Lm, L, 0) > L;
mswing = 1; // принимаем начальное значение 1 (просто так)
mLine = Null;
Plot(C, "", colorBlack, styleBar);
PlotShapes((Hi>0)*shapeSmallDownTriangle, colorGreen, 0, H);
PlotShapes((Lo>0)*shapeSmallUpTriangle, colorRed, 0, L);
Plot(mup, "", colorGreen, styleHistogram|styleOwnScale);
Plot(mdw, "", colorRed, styleHistogram|styleOwnScale);


Убрал только отрисовку свингов, пытался убрать весь цикл, но выскакивает ошибка, похоже в цикле прописан расчет Hi и Lo, где не понял.


Код:
Short=Ref(mup,-1);
Buy=Ref(mdw,-1);

Sell=Short;
Cover=Buy;


BuyPrice = SellPrice = ShortPrice = CoverPrice = C;



ApplyStop(stopTypeLoss, stopModePercent, 1.82);


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);


Хочу входить на следующей свечке после формирования минимума (не среднесрочного) выше предыдущего, зеркально шорт.

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


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

СообщениеДобавлено: Пн Май 05, 2008 1:32 pm Ответить с цитатой Вернуться к началу

Цитата:

Убрал только отрисовку свингов, пытался убрать весь цикл, но выскакивает ошибка, похоже в цикле прописан расчет Hi и Lo, где не понял.


Цитата:

for( i = 1; i < BarCount; i++ )
{
if(swing[i] == 1)
{
if(up[i] == 1)
{
Lo[x] = y;

y0 = y;
x0 = x;

y = H[i];
x = i;
swingline(x0, x, y0, y);
}
else if(H[i] > y)
{
y = H[i];
x = i;
swingline(x0, x, y0, y);
}
}
else
{
if(dw[i] == 1)
{
Hi[x] = y;

y0 = y;
x0 = x;

y = L[i];
x = i;
swingline(x0, x, y0, y);
}
else if(L[i] < y)
{
y = L[i];
x = i;
swingline(x0, x, y0, y);
}
}
}

вот

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


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

СообщениеДобавлено: Вт Май 06, 2008 7:32 am Ответить с цитатой Вернуться к началу

Условия входа я писал выше, подскажи что здесь не так, может я не правильно функцию понял:
Код:
Short=ValueWhen(mup, Hm, -2);
Buy=ValueWhen(mdw, Lm, -2);

Sell=Short;
Cover=Buy;

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



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

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

Предлагаю Вашему вниманию такую систему:
Код:
JSB_InitLib();

P1 = Optimize("P1", 11, 1, 30, 2);
P2 = Optimize("P2", 5, 1, 9, 1);
P3 = Optimize("P3", 1, 1, 2, 1);

J = JSB_JVEL(O, P1);

C1= J;
xy1= (Ref(C1,-8)+2*Ref(C1,-7)+3*Ref(C1,-6)+4*Ref(C1,-5)+5*Ref(C1,-4)+6*Ref(C1,-3)+7*Ref(C1,-2)+8*Ref(C1,-1)+9*C1)/9 ;
yy1= (Ref(C1,-8)+Ref(C1,-7)+Ref(C1,-6)+Ref(C1,-5)+Ref(C1,-4)+Ref(C1,-3)+Ref(C1,-2)+Ref(C1,-1)+C1)/9 ;
C2= (xy1 - yy1*5);

xy2= (Ref(C2,-1)+2*C2)/2 ;
yy2= (Ref(C2,-1)+C2)/2 ;
a1= (xy2 - yy2*1.5);
a2= Ref(a1,-p2);

b1 = IIf(p3==1,a1,a2);
b2 = IIf(p3==2,a1,a2);
Buy= b1>b2;
Sell= b2>b1;
Short= Sell;
Cover= Buy;

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

_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
if( ParamToggle("Tooltip shows", "All Values|Only Prices" ) )
{
 ToolTip=StrFormat("Open: %g\nHigh:  %g\nLow:   %g\nClose:  %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1 )));
}
_SECTION_END();

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);
Посмотреть профиль Отправить личное сообщение
commenced
Советник


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

СообщениеДобавлено: Пн Дек 01, 2008 7:58 am Ответить с цитатой Вернуться к началу

C2= (xy1 - yy1*5);

xy2= (Ref(C2,-1)+2*C2)/2 ;
yy2= (Ref(C2,-1)+C2)/2 ;
a1= (xy2 - yy2*1.5);
a2= Ref(a1,-p2);

b1 = IIf(p3==1,a1,a2);
b2 = IIf(p3==2,a1,a2);


этот блок лишний, ты никогда не сможеш извлеч больше чем могут дать исходные данные как бы ты их не преобразовавал, а исходники у тебя XY1 YY1.

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


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

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

Вот этот кусок
Код:

b1 = IIf(p3==1,a1,a2);
b2 = IIf(p3==2,a1,a2);

Вкупе с
Код:

P3 = Optimize("P3", 1, 1, 2, 1);

Это всего лиш реверс правил сделок при оптимизации. Если так задумано, то он не лишний.
А это
Код:

xy2= (Ref(C2,-1)+2*C2)/2 ;
yy2= (Ref(C2,-1)+C2)/2 ;
a1= (xy2 - yy2*1.5);
a2= Ref(a1,-p2)

Всего лиш кусок кода расчета "идикатора". Любой индикатор так или иначе фильтрует цену
Цитата:

этот блок лишний, ты никогда не сможеш извлеч больше чем могут дать исходные данные как бы ты их не преобразовавал, а исходники у тебя XY1 YY1.

Считай, что это упрощение кода. Чтобы не писать все в одну строку человек разбил расчет на несколько этапов.

Я не хвалю и не критикую систему. Посмотрел код. С точкизрения программирования в Ами все вроде ОК.

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



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

СообщениеДобавлено: Пт Авг 31, 2012 10:02 am Ответить с цитатой Вернуться к началу

Добрый день!
Код от commenced на этой странице подглядывает в будущее
up = L > Ref(L, -1) & H >= Ref(H, -1); //up= лоу > предыдущего минимума И хай >= предыдущего хая
dw = L <= Ref(L, -1) & H < Ref(H, -1); //dw = лоу < предыдущего минимума И хай < предыдущего хая

up = ExRem(up, dw); // up = удаляем лишние сигналы ( повторный ап не будет ,пока ап не сменится дауном)
dw = ExRem(dw, up); // dw = удаляем лишние сигналы ( повторный даун не будет ,пока даун не сменится апом)

swing = Flip(up, dw); //swing = будет до той поры пока будут выполнятся одно или оба условия

x = 0; // не понятно
x0 = 0; // не понятно
y = 0; // не понятно
y0 = 0; // не понятно

Hi = 0; // изначально первый хай будет равен 0
Lo = 0; // изначально первый лоу будет равен 0
Line = Null; // не понятно

function swingline(x0, x, y0, y) // не понятно с этой строки и далее в низ
{
m = (y-y0)/(x-x0);
for(j = x0; j <= x; j++)
{
Line[j] = y0 + (j-x0)*m;
}
return Line;
}

for( i = 1; i < BarCount; i++ )
{
if(swing[i] == 1)
{
if(up[i] == 1)
{
Lo[x] = y;

y0 = y;
x0 = x;

y = H[i];
x = i;
swingline(x0, x, y0, y);
}
else if(H[i] > y)
{
y = H[i];
x = i;
swingline(x0, x, y0, y);
}
}
else
{
if(dw[i] == 1)
{
Hi[x] = y;

y0 = y;
x0 = x;

y = L[i];
x = i;
swingline(x0, x, y0, y);
}
else if(L[i] < y)
{
y = L[i];
x = i;
swingline(x0, x, y0, y);
}
}
} Hm = Hi > 0; //Hm = хай > 0
Lm = Lo > 0; //Lm = лоу > 0
mup = Hm & ValueWhen(Hm, H, 2) < H & ValueWhen(Hm, H, 0) < H; //mup = Hm и
mdw = Lm & ValueWhen(Lm, L, 2) > L & ValueWhen(Lm, L, 0) > L;
mswing = 1; // принимаем начальное значение 1 (просто так)
mLine = Null;
Plot(C, "", colorBlack, styleBar);

Plot(mup, "", colorGreen, styleHistogram|styleOwnScale);
Plot(mdw, "", colorRed, styleHistogram|styleOwnScale);

Short=Ref(mup,-1);
Buy=Ref(mdw,-1);

Sell=Short;
Cover=Buy;


BuyPrice = SellPrice = ShortPrice = CoverPrice = C;



ApplyStop(stopTypeLoss, stopModePercent, 1.82);


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);

При прокручивании в bar replay увидел что код подглядывае в будущее на 12 баров ( на минутном таймфрейме).
Я пробовал его перевести на русский язык чтоб понять как изменить код чтоб не подглядывал в будущее, за плюхался и застрял. Подскажите как изменить код чтоб не подсматривал в будущее. Результаты кода просто превосходные на любых бумагах на любых таймфреймах.
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
000
Site Admin


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

СообщениеДобавлено: Сб Сен 01, 2012 10:52 pm Ответить с цитатой Вернуться к началу

Не, ну там явным образом написано ValueWhen(Hm, H, 0) а это голимое подглядывание.....
Цитата из хелпера
Цитата:

Note: this function allows also 0 and negative values for n - this enables referencing future

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen