Советники: DVD Level - страница 261

[Удален]  
Раньше, в начале ветки было описание основных параметров кода совы, если у кого - нибудь оно сохранилось, скинте сюда или в личку пожалуйста.
[Удален]  

Советник открывет сделки, когда цена подходит к целому центу (1.39 1.40 1.41 ...), при этом с правильной скоростью. Рассмотрим функцию на покупку (функция на продажу зеркальна).

bool CheckEntryConditionBUY()

{ BAL = 0;

if (RAVI0_2_24_H1 < -0.00) BAL = BAL + 10; средня за 2 часа ушла ниже средней за 24 часа - это хорошо

double Level100;

int PointFromLevelGo = 50, PtFrRise = 700;

Level100 = StrToDouble(DoubleToStr(Bid,2)) + PointFromLevelGo*Point; определение ближашего целого цента

if (iHigh(NULL,PERIOD_H1,1) > Level100 + PtFrRise*Point || iHigh(NULL,PERIOD_H1,2) > Level100 + PtFrRise*Point) BAL = BAL + 7; даже если средня не ушла ниже, но цена прошла за 2 часа вниз больше 700 пунктов (в 5-ти значной системе) - это тоже хорошо

if (Bid < Level100 && Close[1] > Level100 && iLow(NULL,PERIOD_H1,0) > Level100 - PointFromLevelGo*Point + 30*Point

&& iLow(NULL,PERIOD_H1,1) > Level100 - PointFromLevelGo*Point + 30*Point

&& iLow(NULL,PERIOD_H1,2) > Level100 - PointFromLevelGo*Point ) BAL = BAL + 45; теперь главное правило - цена подошла к уровню ближе чем 50 пунктов (Bid < Level100) и предыдущая цена закрытия выше 50 пунктов от уровня (Close[1] > Level100 ), т.е. цена идет вниз, при этом последние 3 часа цена не перескала данный уровень (иначе это уже не уровень), то при выполнении этого правила и одного или двух сразу из предыдущих, балов хватит, чтобы открыть сделку. Далее проверяем другие динамические показатели цены, если они не удовлетворительны, то отменяем сделку (путем вычитания 50 балов)

int HiLevel = 600, LoLevel = 250, x, LoLevel2 = 450;

for (x=0;x<=11;x++) {if (iHigh(NULL,PERIOD_M1,x) > Level100 + HiLevel*Point) BAL = BAL - 50;} если цена в ближайшие 11 минут уже прошла 600 пунктов, т.е. слишком сильное движение, то отмена

for (x=0;x<=30;x++) {if (iHigh(NULL,PERIOD_M1,x + 3) - iLow(NULL,PERIOD_M1,x) > 300*Point && iOpen(NULL,PERIOD_M1,x + 3) > iClose(NULL,PERIOD_M1,x)

&& RAVI0_2_24_D1 < -2) BAL = BAL - 50;} если ближайшие 30 минут был рывок в 300 пунктов за 3 минуты, т.е. слишком сильное движение, то отмена

bool IsCrossLowLevel2 = false;

for (x=0;x<=14;x++) {if (iHigh(NULL,PERIOD_H1,x) > Level100 + LoLevel2*Point) IsCrossLowLevel2 = true;}

if (IsCrossLowLevel2 == false) BAL = BAL - 50; если цена за последние 14 часов не поднималась выше 450 пунктов от уровня, т.е. слишком слабое движение, то отмена

if (iHigh(NULL,PERIOD_M30,0) < Level100 + LoLevel*Point && iHigh(NULL,PERIOD_M30,1) < Level100 + LoLevel*Point

&& iHigh(NULL,PERIOD_M30,2) < Level100 + LoLevel*Point

&& iHigh(NULL,PERIOD_M30,3) < Level100 + LoLevel*Point

&& iHigh(NULL,PERIOD_M30,4) < Level100 + LoLevel*Point

&& iHigh(NULL,PERIOD_M30,5) < Level100 + LoLevel*Point

&& iHigh(NULL,PERIOD_M30,6) < Level100 + LoLevel*Point

&& iHigh(NULL,PERIOD_M30,7) < Level100 + LoLevel*Point) BAL = BAL - 50; если цена за последние 3,5 часа не поднималась выше 250 пунктов от уровня, т.е. слишком слабое движение, то отмена

if (BAL >= 50) return(true);

return(false);

}

Открывается отложенный ордер со сроком истечения 20 минут (функция void OpenBuyOrder()) сразу за уровнем с расчитанными стоплоссом и тэйкпрофитом (с закрытием ордера только по ним).

При установке параметра UseTrailingStop=true, если есть открытая убыточная позиция и цена резко (за 3 минуты более 1/2 цента) идет в сторону убытка, ТП выставляется в 1 пункте (по 4-х знач.сис.) от цены открытия. Более осторожный вариант, но менее доходный (за период с 01.01.2009), за то последняя убыточная сделка уходит в 0.
 

Вот как раз я и провожу оптимизацию средней линии, т.к. от неё пляшут все переменные вида RAVI0_2_24_H1

По хорошему, стоит ещё протестить int PointFromLevelGo = 50, PtFrRise = 700;

[Удален]  
Спасибо, Виктор! Ну и конечно отдельное спасибо, Максиму!
 

Строго не судить ...

Вот результаты оптимизации советника с первым параметром 3 по второму параметру с 1 до 30.

По прибыльности:


По просадке (в сумме):


По просадке (в процентах):


По матожиданию:


Кто что скажет?

Какие будут соображения?

Повторяю, оптимизация за период в 1,5 года.

[Удален]  
sezon:

Строго не судить ...

Вот результаты оптимизации советника с первым параметром 3 по второму параметру с 1 до 30....

Попробуй еще второй параметр с 31 по 48. Но мне кажется, что мы не там ищем, может еще какие-то параметры можно оптимизировать?
 
ct6024:
sezon:

Строго не судить ...

Вот результаты оптимизации советника с первым параметром 3 по второму параметру с 1 до 30....

Попробуй еще второй параметр с 31 по 48. Но мне кажется, что мы не там ищем, может еще какие-то параметры можно оптимизировать?
Всё может быть. Тут сейчас основное - выбрать некоторые оптимальные критерии, по которым дальше можно будет двигаться.
[Удален]  
sezon:

Строго не судить ...

Вот результаты оптимизации советника с первым параметром 3 по второму параметру с 1 до 30.

По прибыльности:


По просадке (в сумме):


По просадке (в процентах):


По матожиданию:


Кто что скажет?

Какие будут соображения?

Повторяю, оптимизация за период в 1,5 года.




Наиболее интересные optim2=25 или26 ИМХО
[Удален]  
Strike:

Наиболее интересные optim2=25 или26 ИМХО

А почему? Мне кажется что при 3 и 30 наилучшие результаты.
[Удален]  

Подели прибыль на просадку - чем больше результат тем меньше риск