Помощь в кодировании - страница 179

 

Большое спасибо! mladen

Теперь все стало ясно!

Так я не думал Спасибо еще раз!

 
mladen:
На вашем рисунке изображен часовой график и дневное значение индикатора.

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

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

Младен день добрый, ещё раз...

вот что у меня сейчас получилось...

Дальше ни фантазии, ни опыта не хватает,

сильно не судите и не ругайте... для меня это ещё тяжело.

Я надеюсь на вашу снисходительность и понимание.

datetime timeprev;

extern color Color_Buy = Blue;// цвет вертикальной линии при сигнале к покупке

extern color Color_Sell = Red;// цвет вертикальной линии при сигнале к продаже

int start() {

double aTrend[2] ;

int ticket, err;

if (timeprev == Time[0]) return (0);

timeprev = Time[0];

aTrend[0] =iCustom(NULL, PERIOD_D1, "DSS Bressert + ahtf_(FILTER)", 6, 0); // буфер номер 6

aTrend[0] =iCustom(NULL, PERIOD_D1, "DSS Bressert + ahtf_(FILTER)", 6, 1); // буфер номер 6

if (aTrend[0] > aTrend[1] && aTrend[0] !=Close[1]) //Signal_Buy

{

RefreshRates();

//=========================================

{

string name = StringConcatenate(" BUY ",Symbol()," ",TimeToStr(Time[0]));

ObjectCreate(name,OBJ_VLINE,0,Time[0],0);

ObjectSet(name,OBJPROP_COLOR,Color_Buy);//Color_Buy_line

}

//=========================================

err = GetLastError();

}

if (aTrend[0] < aTrend[1] && aTrend[0] !=Close[1])//Signal_Sell

{

RefreshRates();

//============================================

{

name = StringConcatenate(" SELL ",Symbol()," ",TimeToStr(Time[0]));

ObjectCreate(name,OBJ_VLINE,0,Time[0],0);

ObjectSet(name,OBJPROP_COLOR,Color_Sell);//Color_Sell_line

}

//=============================================

err = GetLastError();

}

return(0); }

//+-----------------------------------+

Помогите взять сигналы с индикатора - с периодом( PERIOD_D1),

на рабочем графике (H1)

 

Добрый день всем. Я здесь с просьбой. Я хотел бы иметь оповещение, когда тренд, будь то вверх или вниз, достигает 70%. Также было бы неплохо, если бы была индикация, т.е. цвет на свече, где + Тренд + UP или DOWN достиг 70%.

Если при компиляции возникла ошибка 'использование декомпилированного исходного кода запрещено', то это поможет: Я использовал более старую сборку mt4 это FXDDmt4setup_Build220 выложенную matfx и она успешно скомпилировалась без ошибок. Извините за беспокойство.

 
shtopr:
Младен день добрый, ещё раз...

вот что у меня сейчас получилось...

Дальше ни фантазии, ни опыта не хватает,

сильно не судите и не ругайте... для меня это ещё тяжело.

Надеюсь на вашу снисходительность и понимание.

datetime timeprev;

extern color Color_Buy = Blue;// цвет вертикальной линии при сигнале к покупке

extern color Color_Sell = Red;// цвет вертикальной линии при сигнале к продаже

int start() {

double aTrend[2] ;

int ticket, err;

if (timeprev == Time[0]) return (0);

timeprev = Time[0];

aTrend[0] =iCustom(NULL, PERIOD_D1, "DSS Bressert + ahtf_(FILTER)", 6, 0); // буфер номер 6

aTrend[0] =iCustom(NULL, PERIOD_D1, "DSS Bressert + ahtf_(FILTER)", 6, 1); // буфер номер 6

if (aTrend[0] > aTrend[1] && aTrend[0] !=Close[1]) //Signal_Buy

{

RefreshRates();

//=========================================

{

string name = StringConcatenate(" BUY ",Symbol()," ",TimeToStr(Time[0]));

ObjectCreate(name,OBJ_VLINE,0,Time[0],0);

ObjectSet(name,OBJPROP_COLOR,Color_Buy);//Color_Buy_line

}

//=========================================

err = GetLastError();

}

if (aTrend[0] < aTrend[1] && aTrend[0] !=Close[1])//Signal_Sell

{

RefreshRates();

//============================================

{

name = StringConcatenate(" SELL ",Symbol()," ",TimeToStr(Time[0]));

ObjectCreate(name,OBJ_VLINE,0,Time[0],0);

ObjectSet(name,OBJPROP_COLOR,Color_Sell);//Color_Sell_line

}

//=============================================

err = GetLastError();

}

return(0); }

//+-----------------------------------+[/PHP]

Помогите взять сигналы с индикатора - с периодом( PERIOD_D1),

на рабочем графике (H1)

shtopr

Замените это :

aTrend[0] =iCustom(NULL, PERIOD_D1, "DSS Bressert + ahtf_(FILTER)", 6, 0); // буфер номер 6

aTrend[0] =iCustom(NULL, PERIOD_D1, "DSS Bressert + ahtf_(FILTER)", 6, 1); // буфер номер 6

на это :

[PHP]aTrend[0] =iCustom(NULL, PERIOD_D1, "DSS Bressert + ahtf_(FILTER)", 6, 0); // буфер номер 6

aTrend[1] =iCustom(NULL, PERIOD_D1, "DSS Bressert + ahtf_(FILTER)", 6, 1); // буфер номер 6

(вторая строка должна использовать atrend[1], а не atrend[0], как в первой строке)

и попробуйте

 

Младен Спасибо болшое!!!

 
strawmango:
Добрый день всем. Я здесь по просьбе. Хотелось бы иметь оповещение, когда тренд, будь то вверх или вниз, достигает 70%. Также было бы неплохо, если бы была индикация, т.е. цвет на свече, где тренд + UP или DOWN достиг 70%.

Если при компиляции возникла ошибка 'использование декомпилированного исходного кода запрещено', то это поможет: Я использовал более старую сборку mt4 это FXDDmt4setup_Build220 выложенную matfx и она успешно скомпилировалась без ошибок. Извините за беспокойство.

забирайте. Код большой, пришлось повозиться.

 

доброго дня младенец!

исправления помогли! Спасибо.

теперь уже гораздо лучше! но ещё есть ложные сигналы,

как от них избавиться? Хотелось, что бы всё работало идеально... ))

как сделать правильно???

Файлы:
84701_1.jpg  140 kb
 
shtopr:
доброго дня младенец!

исправления помогли! Спасибо.

теперь уже гораздо лучше! но ещё есть ложные сигналы,

как от них избавиться? Хотелось, что бы всё работало идеально... ))

как сделать правильно???

Честно говоря, я не знаю, что происходит.

Первое - вы использовали параметры по умолчанию вместо 2,9,5 (как на индикаторе).

Второе - следующее. Я заметил, что значения дневного dss время от времени меняются, хотя они не должны меняться вообще. Это означает, что при тестировании они что-то изменили в том, как мультитаймфреймовые индикаторы вызываются из советника. Что они изменили, я понятия не имею, но похоже, что с этого момента бэк-тестирование мультитаймфреймов не будет работать как раньше.

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

Файлы:
test_5.mq4  2 kb
 
shtopr:
доброго дня младенец!

исправления помогли! Спасибо.

теперь уже гораздо лучше! но ещё есть ложные сигналы,

как от них избавиться? Хотелось, что бы всё работало идеально... ))

как сделать правильно???

shtopr,

Загляните в этот пост: https: //www.mql5.com/en/forum/181280/page7

Там вы найдете, что происходит, когда вы используете мультитаймфреймовый индикатор в советнике и когда вы тестируете такой советник.

 
kenwa:
Здравствуйте, mladen, не могли бы вы помочь конвертировать эти два индикатора в rsi версию по отдельности? Я пытаюсь, но не знаю, как это сделать, т.е. rsi от kairi, rsi от cci? Большое спасибо за помощь.

кенва

Это rsi от cci

Вы обнаружите, что очень легко сделать то же самое с индикатором "kairi".

Файлы:
Причина обращения: