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

 

Здравствуйте, король Младен, сэр,

В этом файле мне нужна одна модификация, текущая свеча high/ low engulf предыдущая свеча open close bodies., один шаг текущего бара вы уже добавили, что показывает, что вы уже знаете, вы гений, все знают.

с уважением

Файлы:
audusdh15.png  28 kb
 
keansajeweki:
Здравствуйте, Младен. Не могли бы вы посмотреть на эту угрозу, потому что когда я вставляю ее в MT4 и запускаю снова, у меня нет файла ex. Это USC Murrey Math Oscillator V2

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

 
hanic:
Здравствуйте, король Младен, сэр,

В этом файле мне нужна одна модификация, текущая свеча high/ low engulf предыдущей свечи open close bodies., один шаг текущего бара вы уже добавили, что показывает, что вы уже знаете, вы гений, все знают.

с уважением

Максимум этой свечи не перекрыл максимумы предыдущих 3 баров (посмотрите на максимум этого бара и сравните его с максимумом 2 баров назад).

Также нельзя сравнивать яблоки и груши: если сравнивается open/close (тело), то используются не high и low текущего бара, а open/close (тело). Если вы используете high./low, то максимумы/минимумы сравниваемых баров тоже используются.

 

Текст Pivot Point Confluence

Я нашел хороший индикатор MT4 Pivot Point Confluence, но он не показывает текстовые метки и цифры, как на изображении ниже. Он только рисует линии, но мне также нравится видеть текст и цифры.

Файлы:
 
keansajeweki:
Здравствуйте, Младен. Не могли бы вы посмотреть на эту угрозу, потому что когда я вставляю ее в MT4 и запускаю снова, у меня нет файла ex. Это USC Murrey Math Oscillator V2.

keansajeweki

Это код TradingView (не код metatrader).

Кто-то разместил его как mq4, но это не имеет никакого отношения к метатрейдеру.

 

может ли какой-нибудь добрый человек исправить это для работы на 6-значном брокере?

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

//| 70/50VolBreakout.mq4 |

//| Keris2112 |

//| |

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

#property copyright "Keris2112"

#property link ""

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DodgerBlue

#property indicator_color2 Red

#property indicator_color3 Sienna

#property indicator_color4 Lime

#property indicator_width1 5

#property indicator_width2 3

#property indicator_width3 5

#property indicator_width4 3

extern int EntryPercent = 70;

extern int StopPercent = 50;

int i=1, shift;

double PrevRange;

double LongEntry;

double LongStop;

double ShortEntry;

double ShortStop;

bool result;

//---- буферы

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

double ExtMapBuffer4[];

double ExtMapBuffer5[];

bool isNewDay(int _shift)

{

//----

result=false;

if ( (TimeHour(Time[_shift])==0) && (TimeMinute(Time[_shift])==0) ) result=true;

//----

return(result);

}

void GetRS1ofDay(int _shift)

{

int prevDay=TimeDay(Time[_shift+1]);

//----

i=1;

while (TimeDay(Time[_shift+i])==prevDay) i++;

i--;

PrevRange=High - Low[Lowest(NULL,0,MODE_LOW,i,_shift+1)];

LongEntry = Open[_shift] + (PrevRange * (EntryPercent*0.01));

LongStop = LongEntry - (PrevRange * (StopPercent*0.01));

ShortEntry = Open[_shift] - (PrevRange * (EntryPercent*0.01));

ShortStop = ShortEntry + (PrevRange * (StopPercent*0.01));

ExtMapBuffer1[_shift] = LongEntry;

ExtMapBuffer2[_shift] = LongStop;

ExtMapBuffer3[_shift] = ShortEntry;

ExtMapBuffer4[_shift] = ShortStop;

Comment(

"Предыдущий диапазон: ",PrevRange*1/Point, "pips",

"\n",(EntryPercent),"% от предыдущего диапазона: ",MathRound((EntryPercent*PrevRange*(0.01/Point))), "пунктов",

"\n",(StopPercent),"% от предыдущего диапазона: ",MathRound((StopPercent*PrevRange*(0.01/Point))), "pips",

"\nOpen: ",Open[_shift],

"\nEnter BuyStop at: ",ExtMapBuffer1[_shift], "со StopLoss на: ",ExtMapBuffer2[_shift],

"\nEnter SellStop at: ",ExtMapBuffer3[_shift], "со StopLoss на: ",ExtMapBuffer4[_shift]);

}

void CopyLevels1Day(int _shift)

{

ExtMapBuffer1[_shift]=ExtMapBuffer1[_shift+1];

ExtMapBuffer2[_shift]=ExtMapBuffer2[_shift+1];

ExtMapBuffer3[_shift]=ExtMapBuffer3[_shift+1];

ExtMapBuffer4[_shift]=ExtMapBuffer4[_shift+1];

ExtMapBuffer5[_shift]=ExtMapBuffer5[_shift];

}

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

//| Пользовательская функция инициализации индикатора |

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

int init()

{

//---- индикаторы

IndicatorBuffers(4);

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,160);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexEmptyValue(0,0.0);

SetIndexLabel(0,0);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1,160);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexEmptyValue(1,0.0);

SetIndexLabel(1,0);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(2,160);

SetIndexBuffer(2,ExtMapBuffer3);

SetIndexEmptyValue(2,0.0);

SetIndexLabel(2,0);

SetIndexStyle(3,DRAW_ARROW);

SetIndexArrow(3,160);

SetIndexBuffer(3,ExtMapBuffer4);

SetIndexEmptyValue(3,0.0);

SetIndexLabel(3,0);

SetIndexBuffer(0,ExtMapBuffer5);

//----

return(0);

}

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

//| Функция деинициализации индикатора Custor |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Пользовательская функция итерации индикатора |

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

int start()

{

int limit,firstDay;

int counted_bars=IndicatorCounted();

if (counted_bars<0) return(0);

if (counted_bars==0)

{

limit=Bars-1;

i=1;

firstDay=TimeDay(Time[limit]);

while (TimeDay(Time[limit-i])==firstDay) i++;

limit=limit-i-PERIOD_D1/Period();

}

if (counted_bars>0) limit=Bars-counted_bars;

//----

if (Period()>PERIOD_D1) return;

for (shift=limit;shift>=0;shift--)

{

if (isNewDay(shift)) GetRS1ofDay(shift); else CopyLevels1Day(shift);

}

//----

return(0);

}

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

 

Здравствуйте Младен - как всегда спасибо за ваш ответ - входит ли в ваши навыки создание такого индикатора? Заранее спасибо еще раз.

mladen:
Насколько я искал, такого индикатора не существует.
 
angrysky:
может ли кто-нибудь из добрых людей исправить это, чтобы это работало на 6-значном брокере?

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

//| 70/50VolBreakout.mq4 |

//| Keris2112 |

//| |

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

#property copyright "Keris2112"

#property link ""

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DodgerBlue

#property indicator_color2 Red

#property indicator_color3 Sienna

#property indicator_color4 Lime

#property indicator_width1 5

#property indicator_width2 3

#property indicator_width3 5

#property indicator_width4 3

extern int EntryPercent = 70;

extern int StopPercent = 50;

int i=1, shift;

double PrevRange;

double LongEntry;

double LongStop;

double ShortEntry;

double ShortStop;

bool result;

//---- буферы

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

double ExtMapBuffer4[];

double ExtMapBuffer5[];

bool isNewDay(int _shift)

{

//----

result=false;

if ( (TimeHour(Time[_shift])==0) && (TimeMinute(Time[_shift])==0) ) result=true;

//----

return(result);

}

void GetRS1ofDay(int _shift)

{

int prevDay=TimeDay(Time[_shift+1]);

//----

i=1;

while (TimeDay(Time[_shift+i])==prevDay) i++;

i--;

PrevRange=High - Low[Lowest(NULL,0,MODE_LOW,i,_shift+1)];

LongEntry = Open[_shift] + (PrevRange * (EntryPercent*0.01));

LongStop = LongEntry - (PrevRange * (StopPercent*0.01));

ShortEntry = Open[_shift] - (PrevRange * (EntryPercent*0.01));

ShortStop = ShortEntry + (PrevRange * (StopPercent*0.01));

ExtMapBuffer1[_shift] = LongEntry;

ExtMapBuffer2[_shift] = LongStop;

ExtMapBuffer3[_shift] = ShortEntry;

ExtMapBuffer4[_shift] = ShortStop;

Comment(

"Предыдущий диапазон: ",PrevRange*1/Point, "pips",

"\n",(EntryPercent),"% от предыдущего диапазона: ",MathRound((EntryPercent*PrevRange*(0.01/Point))), "пунктов",

"\n",(StopPercent),"% от предыдущего диапазона: ",MathRound((StopPercent*PrevRange*(0.01/Point))), "pips",

"\nOpen: ",Open[_shift],

"\nEnter BuyStop at: ",ExtMapBuffer1[_shift], "со StopLoss на: ",ExtMapBuffer2[_shift],

"\nEnter SellStop at: ",ExtMapBuffer3[_shift], "со StopLoss на: ",ExtMapBuffer4[_shift]);

}

void CopyLevels1Day(int _shift)

{

ExtMapBuffer1[_shift]=ExtMapBuffer1[_shift+1];

ExtMapBuffer2[_shift]=ExtMapBuffer2[_shift+1];

ExtMapBuffer3[_shift]=ExtMapBuffer3[_shift+1];

ExtMapBuffer4[_shift]=ExtMapBuffer4[_shift+1];

ExtMapBuffer5[_shift]=ExtMapBuffer5[_shift];

}

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

//| Пользовательская функция инициализации индикатора |

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

int init()

{

//---- индикаторы

IndicatorBuffers(4);

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,160);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexEmptyValue(0,0.0);

SetIndexLabel(0,0);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1,160);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexEmptyValue(1,0.0);

SetIndexLabel(1,0);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(2,160);

SetIndexBuffer(2,ExtMapBuffer3);

SetIndexEmptyValue(2,0.0);

SetIndexLabel(2,0);

SetIndexStyle(3,DRAW_ARROW);

SetIndexArrow(3,160);

SetIndexBuffer(3,ExtMapBuffer4);

SetIndexEmptyValue(3,0.0);

SetIndexLabel(3,0);

SetIndexBuffer(0,ExtMapBuffer5);

//----

return(0);

}

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

//| Функция деинициализации индикатора Custor |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Пользовательская функция итерации индикатора |

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

int start()

{

int limit,firstDay;

int counted_bars=IndicatorCounted();

if (counted_bars<0) return(0);

if (counted_bars==0)

{

limit=Bars-1;

i=1;

firstDay=TimeDay(Time[limit]);

while (TimeDay(Time[limit-i])==firstDay) i++;

limit=limit-i-PERIOD_D1/Period();

}

if (counted_bars>0) limit=Bars-counted_bars;

//----

if (Period()>PERIOD_D1) return;

for (shift=limit;shift>=0;shift--)

{

if (isNewDay(shift)) GetRS1ofDay(shift); else CopyLevels1Day(shift);

}

//----

return(0);

}

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

Кажется, работает

С какой проблемой вы сталкиваетесь?

Файлы:
test.gif  71 kb
 

Здравствуйте, сэр,

Когда мы сравниваем уравнение, т.е. минимум или максимум предыдущей свечи, больше или меньше предыдущей свечи, метатрейдер не позволяет это сделать?

В паттерне Belthold используется эта формула, в этом c >h1.

Правда ли, что мы не можем сравнивать high low с телами open close? Я думаю, что во многих случаях, во многих свечных паттернах формула high low сравнивается с телами свечей.

с уважением,

Файлы:
mdsir.png  16 kb
belthold.png  20 kb
 
triip:
Я нашел хороший индикатор MT4 Pivot Point Confluence, но он не показывает текстовые метки и числа, как на картинке ниже. Он только рисует линии, но мне также нравится видеть текст и цифры.

Я не знаю, какая версия была использована для такого отображения, но в старой версии метатрейдера он тоже так не отображается (я также пробовал его в билде 432, и он отображается точно так же, как и в новых билдах).