Автор |
Сообщение |
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Вот бы блин, результат тестирования на истории да в мой брокерский счет. Правда тестил, другую систему:
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); // точка пересечения, излом вниз-вверх
Ну с этим мы разобрались в прошлый раз.
Теперь нужно, от точки отсчитать 1,5% изменения для входа в позу и иметь среднесрочный минимум последним( для лонга или макс для шорта), ну чтоб не попасть в просак, выход по скользящему стопу или краткосрочному макс для лонга( мин для шорта), от вас Олег хотелось бы узнать как отсчитать 1,5% (я просто не знаю), ну а я постараюсь справиться с остальными задачами, думаю это будет познавательно для форумян, плюс пример раализации конкретной задачи. И у меня есть мысль, что система окажется доходной. Предлогаю начать. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
commenced писал(а): |
Вот бы блин, результат тестирования на истории да в мой брокерский счет. Правда тестил, другую систему:
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); // точка пересечения, излом вниз-вверх
Ну с этим мы разобрались в прошлый раз.
Теперь нужно, от точки отсчитать 1,5% изменения для входа в позу и иметь среднесрочный минимум последним( для лонга или макс для шорта), ну чтоб не попасть в просак, выход по скользящему стопу или краткосрочному макс для лонга( мин для шорта), от вас Олег хотелось бы узнать как отсчитать 1,5% (я просто не знаю), ну а я постараюсь справиться с остальными задачами, думаю это будет познавательно для форумян, плюс пример раализации конкретной задачи. И у меня есть мысль, что система окажется доходной. Предлогаю начать. |
С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x); |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Так мы возьмем направление движухи, причем на отрезке где он впринципе не сможет наколоть. Еще бы код зиг заг открытые чтоб там поковыряться можно было, былобы вообще хорошо. Щас сваливаю, надо машину переобуть, потом ченибудь постараюсь замастрячить. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
commenced писал(а): |
Так мы возьмем направление движухи, причем на отрезке где он впринципе не сможет наколоть. Еще бы код зиг заг открытые чтоб там поковыряться можно было, былобы вообще хорошо. Щас сваливаю, надо машину переобуть, потом ченибудь постараюсь замастрячить. |
А у тебя есть индикатор движения не косячный? Я таких не встречал, если бы был такой так вошел бы внизу и вышел вверху, вот и все) Ладно колись что за индикатор) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
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
Откуда: от "Верблюда"
|
Извените проведя 2 часа в шиномантаже, не смог удержаться от хорошего нефильтрованного пива, вобщем извените. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Сергей писал(а): |
С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x); |
Вы уверенны в операторе Barsince |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
commenced писал(а): |
Сергей писал(а): |
С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x); |
Вы уверенны в операторе Barsince |
Всмысле? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Sergiovy
Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск
|
///
Чего то крутое!
Пока наблюдаем! |
_________________ "Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен |
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Сергей писал(а): |
commenced писал(а): |
Сергей писал(а): |
С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x); |
Вы уверенны в операторе Barsince |
Всмысле? |
В смысле что это не оператор (ами покрайне мере такого на знает, написано правильно, может в букве где ошибка? |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Sergiovy писал(а): |
///
Чего то крутое!
Пока наблюдаем! |
Не отвлекаемся, у вас вроде работа есть. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ничего крутого. Процентный ЗигЗаг по хай-лой с линией уровня реверса. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
commenced писал(а): |
Сергей писал(а): |
commenced писал(а): |
Сергей писал(а): |
С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x); |
Вы уверенны в операторе Barsince |
Всмысле? |
В смысле что это не оператор (ами покрайне мере такого на знает, написано правильно, может в букве где ошибка? |
Да, поспешил, правильно так BarsSince |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Сергей писал(а): |
commenced писал(а): |
Сергей писал(а): |
commenced писал(а): |
Сергей писал(а): |
С зиг загом можно попасть, он показывает офигенные результаты на истории, но в реале просто...
По вопросу что типа :
X=Barsince(Cond2);
Y = Ref(C-1.5% ,- x); |
Вы уверенны в операторе Barsince |
Всмысле? |
В смысле что это не оператор (ами покрайне мере такого на знает, написано правильно, может в букве где ошибка? |
Да, поспешил, правильно так BarsSince |
Наконецто взялся. Правильнее так:
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
Откуда: от "Верблюда"
|
Выдавил что мог, , проскальзывание 0.1 гп 15.01.2007-15.01.2008 Обратных скачков нет проверял на сканере, да и по забитым условиям вроде недолжно быть, думаю выход картинку портит нужно что нибудь придумывать. В целом система доходна за 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 |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|