Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Acontece que quando um objeto é criado, o valor "_H", _L", é atribuído.
Bem, você tem que pensar sobre isso, eu concordo. E eu não bebo muito.
Acho que vai melhorar com o tempo. Obrigado.
objName+"_H",
objName+"_L",
Você pode me dizer por alguma razão quando você muda o parâmetro indicator_chart_window paraindicator_separate_window a imagem da janela principal não é exibida na subjanela.
Por favor, diga-me se houver um erro. O que precisa ser mudado para que o losango e a cruz sejam traçados sobre a própria barra e não sobre a barra zero. (no primeiro bar de cada mês).
Obrigado.
//+------------------------------------------------------------------+
#property strict
#property indicator_chart_window
//--- Внешние Глобальные переменные
extern int barsToProcess = 5; //--- Кол-во отображаемых периодов (линий)
//--- Глобальные переменные
string Name_Obj; //--- Имя Элементов
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
double Buf_High[];
double Buf_Low[];
MqlDateTime mqlDateTime;
MqlRates mqlRates[1];
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,Buf_High);
SetIndexStyle (0,DRAW_ARROW,0,0);
SetIndexArrow (0,116);
SetIndexBuffer(1,Buf_Low);
SetIndexStyle (1,DRAW_ARROW,0,0);
SetIndexArrow (0,116);
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
int i;
for (i=0; i<Bars; i++) //--- Выбираем все установленные объекты
{
ObjectDelete(Name_Obj + " High" + DoubleToStr(i,0)); //--- Удаляем все объекты
ObjectDelete(Name_Obj + " Low" + DoubleToStr(i,0)); //--- Удаляем все объекты
}
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баров
int limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барам
if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан
//--- основной цикл
limit = Bars - counted_bars;
for(int i = 0; i < limit; i ++)
{
//+------------------------ При выборе кол-ва линий отобразим их ко-во------------------------+
if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий)
{
limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)
//+------------------------ Рисуем линии -----------------------------------------------------+
while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.
{
datetime t_Line = iTime(Symbol(),PERIOD_MN1,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара
CopyRates(_Symbol, PERIOD_W1, t_Line, 1, mqlRates);
{
Buf_High[i] = mqlRates[i].high;
Buf_Low[i] = mqlRates[i].low;
//+------------------------ Рисуем Объекты -----------------------------------------------------+
//--- Строим линию по Хай
ObjectCreate (0,Name_Obj + " High" + DoubleToStr(i,0), OBJ_TREND, 0,t_Line, mqlRates[0].high,t_Line+PeriodSeconds(PERIOD_MN1),mqlRates[0].high);
ObjectSetInteger(0,Name_Obj + " High" + DoubleToStr(i,0), OBJPROP_RAY_RIGHT, false);
//--- Строим линию по Лоу
ObjectCreate (0,Name_Obj + " Low" + DoubleToStr(i,0), OBJ_TREND, 0,t_Line, mqlRates[0].low,t_Line+PeriodSeconds(PERIOD_MN1),mqlRates[0].low);
ObjectSetInteger(0,Name_Obj + " Low" + DoubleToStr(i,0), OBJPROP_RAY_RIGHT, false);
}
i++;
}
}
}
return(0);
}
Por favor, diga-me se houver um erro. O que precisa ser mudado para que o losango e a cruz sejam traçados sobre a própria barra e não sobre a barra zero. (no primeiro bar de cada mês).
Obrigado.
Começando já a aprender a nova sintaxe, eu entenderia um dinossauro velho que só escrevia na língua antiga e não tem vontade de se reciclar, mas tendo acabado de começar a aprender e ficar de pé em uma sintaxe que está obsoleta há vários anos com um respingo de novo, é perverso.
E comece a ler a ajuda para que você pelo menos entenda o que está acontecendo.
É compreensível, mas onde está o novo e onde está o velho, não se pode dizer ao mesmo tempo. E eu li o manual, ele está escrito em uma linguagem muito inteligente.
Obrigado especialmente pelas críticas. Isso me ajuda a ir na direção certa.
Você pode me dar uma dica? Como posso fazer mark-ups para períodos trimestrais?
Preciso traçar linhas verticais quando estas datas ocorrem.
1 de janeiro1 de abril 1 dejulho 1 deoutubro 1.
Primeiro leia atentamente minhas palavras, depois leia a documentação lingüística, em particular a seção "Objetos gráficos".
A documentação indica claramente quais parâmetros devem estar presentes ao criar um objeto gráfico. Uma delas é o TEMPO - estas são suas datas que você precisa colocar neste parâmetro. O preço não é importante para as linhas verticais, mas é necessário para a função. Não há nenhuma dificuldade em fazer isto.
Primeiro leia atentamente minhas palavras, depois leia atentamente a documentação lingüística, em particular a seção "Objetos Gráficos".
A documentação diz claramente quais parâmetros devem estar presentes ao criar um objeto gráfico. Uma delas é o TEMPO em que estas são suas datas e devem ser inseridas neste parâmetro. O preço não é importante para as linhas verticais, mas é obrigatório para a função, portanto é preciso colocar 0. Não há nenhuma dificuldade em fazer isto.
Eu não sei como fazer isso. Por favor, me diga como fazê-lo. O período máximo é de um mês.
Na variávelt_Line. precisamos inserir o valor de 1ª, 2ª, 3ª, 4ª, kv.
Eu não consigo entender.
Eu agradeceria muito.
int start()
{
int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баров
int limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барам
if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан
//--- основной цикл
limit = Bars - counted_bars;
for(int i = 0; i < limit; i ++)
{
if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий)
{
limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)
while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.
{
datetime t_Line = iTime(Symbol(),PERIOD_MN1,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара
{
ObjectCreate (Name_VLine + " VLine" + DoubleToStr(i,0),OBJ_VLINE,0,t_Line,0); //--- Создаём обьект вертикальную линию
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_STYLE,2); //--- Со стилем
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_COLOR,DimGray); //--- Со цветом
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_WIDTH,0); //--- С толщиной
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_BACK,0); //--- С типом отображения. Объект на заднем плане
}
i++;
}
}
}
return(0);
}