БИРЖА ИДЕЙ - страница 15

 
leonid553 писал (а) >>

Да дело, собственно, не в стратегии. Индюк-то вставить нетрудно.

А вот как программно заставить код эксперта работать по ЦЕНАМ ОТКРЫТИЯ?

Чтобы при прогоне ПО ВСЕМ ТИКАМ получить такой же результат, как и при прогоне по ЦЕНАМ ОТКРЫТИЯ ?

Мне это сделать пока не удается.....

Привязываться ко времени или объему - фигово... можно тики пропустить

я делаю так.

в переменные

int last_bar =0;

int start()

{

if (!IsNewBar()) return(0);

сюда попадаем только 1н раз на первом пойманном тике нового бара. даже если пропустили первые тики этого бара

}

bool IsNewBar()

{

if (last_bar == Bars) return(false);
last_bar = Bars;
return(true);

}

 
kharko писал (а) >>

Лови код... открывает и модифицирует по ценам открытия...

kharko и esmaster, благодарю !

Но я уже писал выше на пред. странице что такие простые приемы не помогают. Я так уже и сам пробовал по обоим вариантам, вставляя в void start() условие по ценам открытия.

Но видимо, этого мало ! По прежнему при прогоне ПО ЦЕНАМ ОТКРЫТИЯ и при прогоне ПО ВСЕМ ТИКАМ получаются разные, резко противоположные результаты.

Возможно, тут нужно на визуальном графике тестера отследить работу "так и эдак", потом "почувствовать разницу" и каким то образом чуть изменить работу др. функций (помимо start() )

//-----------------------------------------------------------
void start()
   {
   if (!IsTradeAllowed()) return;
   level_buy_stop=0;
   level_sell_stop=0;
   StepingStop();
   StepingPendings();
   if (TotalBuy ()==0 && TotalBuyStop ()==0) SetBuyStop ();
   if (TotalSell()==0 && TotalSellStop()==0) SetSellStop();
   Comment("Level Buy Stop=",level_buy_stop*Point,
    "\n","Level Sell Stop=",level_sell_stop*Point);
   }
//-----------------------------------------------------
void StepingStop()      {... .  }
//-----------------------------------------------------
void StepingPendings()  {... .  }
//-----------------------------------------------------
void SetBuyStop()    {... ...}

void SetSellStop()   {... ...}

int TotalBuy()       {  ...  }

int TotalBuyStop()   {...    }

int TotalSell()      {...... }

int TotalSellStop()  {.... ..}

// End
 
leonid553 разные потому, что фиксация идет по ценам открытия... нужно стопы и профиты вообще убрать... и фиксировать по ценам открытия...
 
leonid553 писал (а) >>

Всем привет. Предлагаю к использованию так. наз. "Тренд-детектор". Я не ожидал такого хорошего результата от этой своей находки. Случайно слепил - поставил. Вставляю этот кусок в почти любой эксперт и даже убыточный советник дает какую-никакую прибыль! Он снижает число сделок против тренда (в основном убыточных) и значительно увеличивает параметр ПРИБЫЛЬНОСТЬ эксперта, - зачастую не менее, чем до двух!. А это означает, вне периода оптимизации мы с гораздо большей вероятностью получим прибыль!

А идея вот в чем : Берем индикаторы BearsPower и BullsPower (сила быков и сила медведей) и сравниваем их меж собой. Но просто так их сравнивать – дело муторное…. Программно это сделать канительно. Поэтому я повесил на них МА и сравниваю именно показания МА на нулевом баре ! Просто складываем эти значения = Delta. Далее всё просто. Если ДЕЛЬТА ..>0 – тренд вверх. Иначе – вниз !

Нужно просто добавить в условие для покупки if ((Delta>=0) && ... ...

А в условие для продажи - if ( (Delta<=0) && ... ...

Во внешние параметры любого эксперта вставляем :

Можно и не вставлять. Но тогда нужно эти параметры подобрать и вставить цифровые значения вместо названий переменных прямо в код. А вот сам этот блок :

Вот пример работы советника с этим Тренд-детектором. Видно что при тренде вверх - идут сделки в бай и наоборот.!

Возможно, у кого-то будут предложения по улучшению и доработке конструкции. Хотелось бы узнать, насколько перспективным окажется этот тренд-детектор.

Сделал индюк по точному описанию - удивился :) получился запаздывающий MACCD :)

Файлы:
 
Vinin писал (а) >>

вот и индикатор. _LineStat_1.mq4

На экран выводится количество баров.Выводится 3 сигмы. И если цена находится внутри одно СКО, то перерасчета не прноизводится, так как все в допустимых пределах. При пробитии, будет перерасчет.

На графике в лев. углу сверху после N=150(кол-во баров) ) выведены три числ. значения. Скажите, пож., что они означают и как их использовать

 
Figar0 писал (а) >>

Моя затея, мне и начинать...

Идея старая, но отчего-то не получившия широкого распространения в реализациях, сам использую, с некоторыми стратегиями работает весьма не плохо. Выход только по тейкпрофиту. Угадали с направления - получаем изначально запланированный тейк, неугадали - подтягиваем ТП вслед за ценой (можно использовать разные алгоритмы - удавки, резинки, индикаторы уровней и т.п. ) и закрываемся по ТП на откате, в данном случае тейк может оказаться и отрицательным, но зачастую это гораздо выгоднее срабатывания стоплосса. Страховочный стоплосс для ограничения громадных потерь не возбраняется.

1) Я тоже это использую при дейтрейдинге, и называю "Трейлинг профит". А, вот, "трейлинг стоп" в дейтрейдинге не использю, т.к. это - путь к минимизации профита.

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

 
rid писал (а) >>

На графике в лев. углу сверху после N=150(кол-во баров) ) выведены три числ. значения. Скажите, пож., что они означают и как их использовать

Delta равна разнице левого и правого конца средней линии.

3*S это три среднеквадратичных отклонения

n - сколько баров не пересчитывался канал регрессии.

Если цена на последнем баре находится в пределах 3 среднеквадратичных отклонения (+-1.5) перерасчет не производится.

Пришлось в код лезти (слишком индикатор старый, сделан был в 2006 году)

Если есть пожелания изменить выводимую информацию, то всегда пожалуйста

 
Ок! Благодарю.
 
Vinin писал (а) >>

Пришлось в код лезти (слишком индикатор старый, сделан был в 2006 году)

Если есть пожелания изменить выводимую информацию, то всегда пожалуйста

Есть одна скромная просьба. Если не трудно. Как ЗАПИСАТЬ выражение iCustom для этого индикатора?

Хотя бы для КАЖДОЙ жёлтой линии и для центральной линии ?

Сам я никак не соображу!

 
rid писал (а) >>

Есть одна скромная просьба. Если не трудно. Как ЗАПИСАТЬ выражение iCustom для этого индикатора?

Хотя бы для КАЖДОЙ жёлтой линии и для центральной линии ?

Сам я никак не соображу!

Если нужно, то могу поискать в закромах нужный индикатор или сделать. А как с этим работать в советнике - только все расчеты в нем (советнике) делать.

Причина обращения: