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

 

Неважно, теперь я вижу, что мне нужно удалить строку else AlarmTotal = AlarmTotal+1;

 

Нужна помощь в добавлении текста в мой индикатор

Я написал пользовательский индикатор, который находит максимумы и минимумы колебаний.

В настоящее время он помещает объект-стрелку на ценовой уровень и временной бар. Зеленая для High и красная для Low.

Я хотел бы изменить его на текст, который показывает переменную count.

Вот часть кода, который я создал, но он не показывает текст.

Может ли кто-нибудь показать мне, что не так. Спасибо.

if (Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low)

{

SwingLoBar = 1;

SwingLo = Low;

SwingCount = SwingCount + 1;

ObjectCreate("Text",OBJ_TEXT,0,0,0);

ObjectSet("Text",OBJPROP_TIME,i);

ObjectSet("Text",OBJPROP_PRICE,SwingLo-20*pips);

ObjectSetString(0,"Text",OBJPROP_TEXT,SwingCount);

ObjectSet("Text",OBJPROP_COLOR,clrRed);
 
ThemBonez:
Я написал пользовательский индикатор, который находит максимумы и минимумы свинга.

В настоящее время он помещает объект стрелки на уровень цены и временной бар. Зеленый для High и красный для Low.

Я хотел бы изменить его на текст, который показывает переменную count.

Вот часть кода, который я создал, но он не показывает текст.

Может ли кто-нибудь показать мне, что не так. Спасибо.

if (Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low)

{

SwingLoBar = 1;

SwingLo = Low;

SwingCount = SwingCount + 1;

ObjectCreate("Text",OBJ_TEXT,0,0,0);

ObjectSet("Text",OBJPROP_TIME,i);

ObjectSet("Text",OBJPROP_PRICE,SwingLo-20*pips);

ObjectSetString(0,"Text",OBJPROP_TEXT,SwingCount);

ObjectSet("Text",OBJPROP_COLOR,clrRed);

Попробуйте изменить

ObjectSet("Text",OBJPROP_TIME,i);

ObjectSet("Text",OBJPROP_PRICE,SwingLo-20*pips);

на

ObjectSet("Text",OBJPROP_TIME1,Time);

ObjectSet("Text",OBJPROP_PRICE1,SwingLo-20*_пункты);

 

Спасибо, но не помогло. Текстовых меток нет.

Вот весь код, может это поможет.

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

//| SwingHighLow.mq4 |

//| Dream Reality Productions, LLC |

//| http://www.dreamrealityproductions.com |

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

#property copyright "Dream Reality Productions, LLC"

#property link "http://www.dreamrealityproductions.com"

#property indicator_chart_window

#property indicator_buffers 6

#property indicator_color1 Orange

#property indicator_color2 Aqua

double SwingHiBar[];

double SwingLoBar[];

double SwingHiDraw[];

double SwingLoDraw[];

double SwingHi[];

double SwingLo[];

static int SwingCount=0;

double pips;

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

//| Custom indicator initialization function |

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

int init()

{

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,1);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,1);

SetIndexArrow(1,233);

SetIndexArrow(0,234);

SetIndexBuffer(0,SwingHiDraw);

SetIndexBuffer(1,SwingLoDraw);

SetIndexBuffer(2,SwingHiBar);

SetIndexBuffer(3,SwingLoBar);

SetIndexBuffer(4,SwingHi);

SetIndexBuffer(5,SwingLo);

double ticksize = MarketInfo (Symbol(),MODE_TICKSIZE);

if (ticksize == .00001 || ticksize == .001)

pips = ticksize * 10;

else pips = ticksize;

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

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

//| Find Hi and Lo Bars |

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

int counted_bars = IndicatorCounted();

if (counted_bars<0) return (-1);

if (counted_bars>0) counted_bars--;

int uncountedbars = Bars - counted_bars;

//---

for (int i=4;i<uncountedbars;i++)

{

if (High > High

&& High > High

&& High > High

&& High > High

&& High > High

&& High > High)

{

SwingHiBar = 1;

SwingHi = High;

SwingCount = SwingCount + 1;

ObjectCreate("Text",OBJ_TEXT,0,0,0);

ObjectSet("Text",OBJPROP_TIME1,Time);

ObjectSet("Text",OBJPROP_PRICE1,SwingHi+20*pips);

ObjectSetString(0,"Text",OBJPROP_TEXT,SwingCount);

ObjectSet("Text",OBJPROP_COLOR,clrGreen);

}

else

{ SwingHiBar=0; SwingHi=0;

SwingHiDraw=0;

if (Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low)

{

SwingLoBar = 1;

SwingLo = Low;

SwingCount = SwingCount + 1;

ObjectCreate("Text",OBJ_TEXT,0,0,0);

ObjectSet("Text",OBJPROP_TIME1,Time);

ObjectSet("Text",OBJPROP_PRICE1,SwingLo-20*_Point);

ObjectSetString(0,"Text",OBJPROP_TEXT,SwingCount);

ObjectSet("Text",OBJPROP_COLOR,clrRed);

}

else {SwingLoBar = 0; SwingLo=0;

SwingLoDraw=0;}

}

}

return(0);

}

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

 
ThemBonez:
Спасибо, но не помогло. Нет текстовых меток.

Вот весь код, может это поможет.

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

//| SwingHighLow.mq4 |

//| Dream Reality Productions, LLC |

//| http://www.dreamrealityproductions.com |

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

#property copyright "Dream Reality Productions, LLC"

#property link "http://www.dreamrealityproductions.com"

#property indicator_chart_window

#property indicator_buffers 6

#property indicator_color1 Orange

#property indicator_color2 Aqua

double SwingHiBar[];

double SwingLoBar[];

double SwingHiDraw[];

double SwingLoDraw[];

double SwingHi[];

double SwingLo[];

static int SwingCount=0;

double pips;

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

//| Custom indicator initialization function |

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

int init()

{

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,1);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,1);

SetIndexArrow(1,233);

SetIndexArrow(0,234);

SetIndexBuffer(0,SwingHiDraw);

SetIndexBuffer(1,SwingLoDraw);

SetIndexBuffer(2,SwingHiBar);

SetIndexBuffer(3,SwingLoBar);

SetIndexBuffer(4,SwingHi);

SetIndexBuffer(5,SwingLo);

double ticksize = MarketInfo (Symbol(),MODE_TICKSIZE);

if (ticksize == .00001 || ticksize == .001)

pips = ticksize * 10;

else pips = ticksize;

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

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

//| Find Hi and Lo Bars |

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

int counted_bars = IndicatorCounted();

if (counted_bars<0) return (-1);

if (counted_bars>0) counted_bars--;

int uncountedbars = Bars - counted_bars;

//---

for (int i=4;i<uncountedbars;i++)

{

if (High > High

&& High > High

&& High > High

&& High > High

&& High > High

&& High > High)

{

SwingHiBar = 1;

SwingHi = High;

SwingCount = SwingCount + 1;

ObjectCreate("Text",OBJ_TEXT,0,0,0);

ObjectSet("Text",OBJPROP_TIME1,Time);

ObjectSet("Text",OBJPROP_PRICE1,SwingHi+20*pips);

ObjectSetString(0,"Text",OBJPROP_TEXT,SwingCount);

ObjectSet("Text",OBJPROP_COLOR,clrGreen);

}

else

{ SwingHiBar=0; SwingHi=0;

SwingHiDraw=0;

if (Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low)

{

SwingLoBar = 1;

SwingLo = Low;

SwingCount = SwingCount + 1;

ObjectCreate("Text",OBJ_TEXT,0,0,0);

ObjectSet("Text",OBJPROP_TIME1,Time);

ObjectSet("Text",OBJPROP_PRICE1,SwingLo-20*_Point);

ObjectSetString(0,"Text",OBJPROP_TEXT,SwingCount);

ObjectSet("Text",OBJPROP_COLOR,clrRed);

}

else {SwingLoBar = 0; SwingLo=0;

SwingLoDraw=0;}

}

}

return(0);

}

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

Он там был, но только один (в прошлом).

Используйте это :

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

//| SwingHighLow.mq4 |

//| Dream Reality Productions, LLC |

//| http://www.dreamrealityproductions.com |

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

#property copyright "Dream Reality Productions, LLC"

#property link "http://www.dreamrealityproductions.com"

#property indicator_chart_window

#property indicator_buffers 6

#property indicator_color1 Orange

#property indicator_color2 Aqua

double SwingHiBar[];

double SwingLoBar[];

double SwingHiDraw[];

double SwingLoDraw[];

double SwingHi[];

double SwingLo[];

static int SwingCount=0;

double pips;

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

//| Custom indicator initialization function |

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

int init()

{

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,1);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,1);

SetIndexArrow(1,233);

SetIndexArrow(0,234);

SetIndexBuffer(0,SwingHiDraw);

SetIndexBuffer(1,SwingLoDraw);

SetIndexBuffer(2,SwingHiBar);

SetIndexBuffer(3,SwingLoBar);

SetIndexBuffer(4,SwingHi);

SetIndexBuffer(5,SwingLo);

double ticksize = MarketInfo (Symbol(),MODE_TICKSIZE);

if (ticksize == .00001 || ticksize == .001)

pips = ticksize * 10;

else pips = ticksize;

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

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

//| Find Hi and Lo Bars |

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

int counted_bars = IndicatorCounted();

if (counted_bars<0) return (-1);

if (counted_bars>0) counted_bars--;

int uncountedbars = Bars - counted_bars;

//---

for (int i=4;i<uncountedbars;i++)

{

if (High > High

&& High > High

&& High > High

&& High > High

&& High > High

&& High > High)

{

SwingHiBar = 1;

SwingHi = High;

SwingCount = SwingCount + 1;

ObjectCreate("Text"+Time,OBJ_TEXT,0,0,0);

ObjectSet("Text"+Time,OBJPROP_TIME1,Time);

ObjectSet("Text"+Time,OBJPROP_PRICE1,SwingHi+20*_Point);

ObjectSetString(0,"Text"+Time,OBJPROP_TEXT,SwingCount);

ObjectSet("Text"+Time,OBJPROP_COLOR,clrGreen);

}

else

{ SwingHiBar=0; SwingHi=0;

SwingHiDraw=0;

if (Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low

&& Low < Low)

{

SwingLoBar = 1;

SwingLo = Low;

SwingCount = SwingCount + 1;

ObjectCreate("Text"+Time,OBJ_TEXT,0,0,0);

ObjectSet("Text"+Time,OBJPROP_TIME1,Time);

ObjectSet("Text"+Time,OBJPROP_PRICE1,SwingLo-20*_Point);

ObjectSetString(0,"Text"+Time,OBJPROP_TEXT,SwingCount);

ObjectSet("Text"+Time,OBJPROP_COLOR,clrRed);

}

else {SwingLoBar = 0; SwingLo=0;

SwingLoDraw=0;}

}

}

return(0);

}

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

уважаемые mladen, mrtools с нетерпением жду вашего ответа на мои вопросы по поводу изменения настроек индикатора в сообщении выше.

надеюсь, вы дадите ответ, когда у вас будет время.

спасибо.

 
brijeshsinh:
привет,

могут ли mladen, mrtools помочь мне добавить следующие настройки для индикатора--- Rsi bar chart v2.02 mtf & alerts

---можно ли окрашивать бары в разные цвета, когда они пересекаются выше или ниже средней линии (50 уровень для rsi перспективы); --т.е. выше 50 линии один цвет и ниже 50 уровня другой цвет.

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

Прикрепляю индикатор и изображение.

rsi_bar_chart_v2.02_mtf_amp_alerts.mq4

заранее спасибо, ваша помощь будет очень признательна.

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

Что касается среднего - то же самое, что и с пересечениями: так как есть 4 значения rsi, среднее не имеет уникального значения, к которому можно было бы его применить.

 

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

 

здравствуйте,

mladen, mr tools не могли бы вы помочь изменить следующие настройки в индикаторе FXUltraTrend, размещенные ниже на

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

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

Прикрепляю ниже индикатор и его изображение для вас

fxultratrend.mq4

Надеюсь, вы не обидитесь, что я отнял у вас немного времени, но вы, ребята, делаете отличную работу для таких, как мы, новичков на этой платформе и не знающих программирования.

Вы действительно заслуживаете благодарности от меня и от всех членов этого форума за ваши ценные усилия.

спасибо за быстрый ответ на предыдущее сообщение.

Файлы:
444.png  56 kb
 

Реализация; Индикатор NonLag_Schaff_TrendCycle:

Привет ПроКодеры,

Я хотел бы, чтобы кто-нибудь мог помочь мне в реализации индикатора NonLag_Schaff_TrendCycle.

Экстерны индикатора:

extern int FastLength = 23;

extern int SlowLength = 50;

extern int StcPeriod = 10;

extern int MacdPrice = PRICE_CLOSE;

extern bool Interpolate = true;

extern bool MultiColor = true;

Буферы индикаторов:

IndicatorBuffers(8);

SetIndexBuffer(0,stcBuffer);

SetIndexBuffer(1,stcBufferUA);

SetIndexBuffer(2,stcBufferUB);

SetIndexBuffer(3,macdBuffer);

SetIndexBuffer(4,fastKBuffer);

SetIndexBuffer(5,fastDBuffer);

SetIndexBuffer(6,fastKKBuffer);

SetIndexBuffer(7,trend);

Я пытаюсь сделать что-то вроде:

double STC1_c=iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);

double STC2_c=iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar+1);

if((STC1_c>15 && STC2_c85 && STC2_c BUY

if((STC1_c15)||(STC1_c85) -> SELL

Но я получаю сообщение об ошибке:

Ошибка: NonLag_Schaff_TrendCycle был удален.

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

Заранее спасибо!

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