Os ponteiros na MQL4 são complicados. Não há apoio direto. Alguém aqui no fórum tentou fazer isso com arrays, eu acho. Não posso ser mais preciso. Pesquise você mesmo.
Você só pode mudar programmaticamente a primeira dimensão da matriz. A função ArrayResize(). A segunda, terceira e quarta dimensões têm de ser fixadas rigidamente.
Bem, esqueçamos também os ponteiros e as matrizes dinâmicas...
Aguardando a 5ª versão do idioma...
Obrigado pela ajuda...
Trabalhar com uma grade é fácil de implementar.
O engraçado é que, para minha idéia, uma rede não era suficiente, e eu queria fazer um algoritmo para alternar entre redes, com apontadores não é difícil.
Mas não... teremos que codificá-lo de forma rígida.
Esta função define o OBJ_TRENDBYANGLE objeto da linha de tendência pelo ângulo de inclinação no gráfico atual.
cl - Cor do objeto TRENDBYANGLE. Parâmetro necessário.
nm - Nome do objeto. Quando o valor padrão é passado - "", o tempo aberto da barra atual é usado como o nome.
t1 - Primeira coordenada do tempo de ajuste do objeto. Valor padrão - 0 - tempo de abertura da décima barra.
p1 - Primeira coordenada do objeto que fixa o preço. Valor padrão - 0 - mínimo da décima barra.
t2 - Segunda coordenada do tempo de ajuste do objeto. Valor padrão - 0 - tempo de abertura da barra atual.
p2 - Segunda coordenada do objeto que fixa o preço. Este parâmetro é uma espécie de interruptor. Seu valor não zero iguala esta função ao SetTLine(), ou seja, uma linha de tendência será desenhada usando o par de coordenadas tempo/preço, enquanto o valor do ângulo de inclinação da linha de tendência será ignorado. Valor padrão - 0 - construção de linha de tendência por ângulo de inclinação.
an - Ângulo de inclinação em graus. Valor padrão - 0 - Linha horizontal.
ry - Bandeira da propriedade BOW. O valor padrão é Falso.
st - Estilo de linha. Os valores válidos são STYLE_SOLID (padrão), STYLE_DASH, STYLE_DOT, STYLE_DASHDOT.
wd - Largura da linha. O valor padrão é 1.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка объекта OBJ_TRENDBYANGLE трендовая линия по углу |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ( "" - время открытия текущего бара) |//| t1 - время открытия бара ( 0 - Time[10] |//| p1 - ценовой уровень ( 0 - Low[10]) |//| t2 - время открытия бара ( 0 - время открытия текущего бара) |//| p2 - ценовой уровень ( 0 - по углу) |//| an - угол ( 0 - по умолчанию) |//| ry - луч (False - не луч) |//| st - стиль линии ( 0 - простая линия) |//| wd - ширина линии ( 1 - по умолчанию) |//+----------------------------------------------------------------------------+voidSetTLineByAngle(colorcl, stringnm="",
datetimet1=0, doublep1=0, datetimet2=0, doublep2=0,
doublean=0, boolry=False, intst=0, intwd=1){if(nm=="")nm=DoubleToStr(Time[0], 0);
if(t1<=0)t1=Time[10];
if(p1<=0)p1=Low[10];
if(t2<=0)t2=Time[0];
if(ObjectFind(nm)<0)ObjectCreate(nm, OBJ_TRENDBYANGLE, 0, 0,0);
ObjectSet(nm, OBJPROP_TIME1 , t1);
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_TIME2 , t2);
if(p2>0)ObjectSet(nm, OBJPROP_PRICE2, p2);
elseObjectSet(nm, OBJPROP_ANGLE, an);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_RAY , ry);
ObjectSet(nm, OBJPROP_STYLE, st);
ObjectSet(nm, OBJPROP_WIDTH, wd);
}
Esta função define o ícone do objeto OBJ_ARROW para a tabela atual.
cd - código do ícone. Parâmetro necessário.
cl - Cor do ícone. Parâmetro necessário.
nm - Nome do objeto. Se o valor padrão for transferido - "", o tempo aberto da barra atual é usado como um nome.
t1 - Primeira coordenada do tempo de ajuste do objeto. Valor padrão - 0 - tempo de abertura da barra atual.
p1 - Primeira coordenada do objeto que fixa o preço. Valor padrão - 0 - preço atual da Licitação.
sz - Tamanho do ícone. Valor padrão - 0.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка значка на графике, объекта OBJ_ARROW. |//+----------------------------------------------------------------------------+//| Параметры: |//| cd - код значка |//| cl - цвет значка |//| nm - наименование ("" - время открытия текущего бара) |//| t1 - время открытия бара (0 - текущий бар) |//| p1 - ценовой уровень (0 - Bid) |//| sz - размер значка (0 - по умолчанию) |//+----------------------------------------------------------------------------+voidSetArrow(intcd, colorcl,
stringnm="", datetimet1=0, doublep1=0, intsz=0){if(nm=="")nm=DoubleToStr(Time[0], 0);
if(t1<=0)t1=Time[0];
if(p1<=0)p1=Bid;
if(ObjectFind(nm)<0)ObjectCreate(nm, OBJ_ARROW, 0, 0,0);
ObjectSet(nm, OBJPROP_TIME1 , t1);
ObjectSet(nm, OBJPROP_PRICE1 , p1);
ObjectSet(nm, OBJPROP_ARROWCODE, cd);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_WIDTH , sz);
}
Muito obrigado pelo que você faz, você se importa se eu coletar os recursos deste tópico e publicá-los em meu site, em uma seção separada com um link para o fórum e para o seu site?
Em geral, seria legal ter um "Índice" na primeira página deste post. Uma tabela com uma lista de funções, descrições e links para páginas. Ou manter um arquivo atualizado na primeira página, e as descrições podem ser encontradas nas outras páginas.
Portanto, se xrust fizer sua sugestão, seria bom repeti-la aqui. Por uma questão de sistematização dos ganhos duros :))
xrust писал (а)>> ...você se importa se eu coletar recursos deste tópico e publicá-los em meu site, em uma seção separada com um link para o fórum, e para seu site
xrust писал (а)>> Muito obrigado pelo que você está fazendo, importa-se que eu colete as funções desta filial e as publique em meu site, em uma seção separada com uma referência ao fórum e ao seu site?
Criar um arquivo "inluder" (mqh) (provavelmente 2 - "comércio" e "outros"), concordar com seu nome e forçar os "desenvolvedores" a incluí-lo na distribuição. Para que todos em cada EA não tenham que reinventar a roda.
Obrigado mais uma vez, sou apenas um pouco preguiçoso, quero recolher tudo o que está à mão. Outra pergunta, você se importaria se eu utilizasse a mesma sintaxe e nomes de variáveis em minhas funções como você, para padronizá-las, por assim dizer.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Os ponteiros na MQL4 são complicados. Não há apoio direto. Alguém aqui no fórum tentou fazer isso com arrays, eu acho. Não posso ser mais preciso. Pesquise você mesmo.
MathRand()
Você só pode mudar programmaticamente a primeira dimensão da matriz. A função ArrayResize(). A segunda, terceira e quarta dimensões têm de ser fixadas rigidamente.Bem, esqueçamos também os ponteiros e as matrizes dinâmicas...
Aguardando a 5ª versão do idioma...
Obrigado pela ajuda...
Trabalhar com uma grade é fácil de implementar.
O engraçado é que, para minha idéia, uma rede não era suficiente, e eu queria fazer um algoritmo para alternar entre redes, com apontadores não é difícil.
Mas não... teremos que codificá-lo de forma rígida.
A função SetTLineByAngle().
Esta função define o OBJ_TRENDBYANGLE objeto da linha de tendência pelo ângulo de inclinação no gráfico atual.
Exemplos de como usar o SetTLineByAngle().
ZY. Em anexo está um roteiro para testar SetTLineByAngle().
A função SetArrow().
Esta função define o ícone do objeto OBJ_ARROW para a tabela atual.
Exemplos de como usar o SetArrow().
SZY. Em anexo está um roteiro para testar a função SetArrow().
Em geral, seria legal ter um "Índice" na primeira página deste post. Uma tabela com uma lista de funções, descrições e links para páginas. Ou manter um arquivo atualizado na primeira página, e as descrições podem ser encontradas nas outras páginas.
Portanto, se xrust fizer sua sugestão, seria bom repeti-la aqui. Por uma questão de sistematização dos ganhos duros :))
...você se importa se eu coletar recursos deste tópico e publicá-los em meu site, em uma seção separada com um link para o fórum, e para seu site
Não, eu não vou...
Muito obrigado pelo que você está fazendo, importa-se que eu colete as funções desta filial e as publique em meu site, em uma seção separada com uma referência ao fórum e ao seu site?
Criar um arquivo "inluder" (mqh) (provavelmente 2 - "comércio" e "outros"), concordar com seu nome e forçar os "desenvolvedores" a incluí-lo na distribuição. Para que todos em cada EA não tenham que reinventar a roda.
:)