Friday 21 June 2019

Arrow indicator forex that draws


DRAWARROW O estilo DRAWARROW desenha setas da cor especificada (símbolos do conjunto Wingdings) com base no valor do buffer do indicador. A largura e a cor dos símbolos podem ser especificadas como para o estilo DRAWLINE - usando diretrizes do compilador ou usando dinamicamente a função PlotIndexSetInteger (). As mudanças dinâmicas das propriedades de traçado permitem alterar a aparência de um indicador com base na situação atual. O código do símbolo é definido usando a propriedade PLOTARROW. --- Defina o código de símbolo da fonte Wingdings para desenhar PLOTARROW PlotIndexSetInteger (0, PLOTARROW, código) O valor padrão de PLOTARROW159 (um círculo). Cada seta é realmente um símbolo que tem a altura e o ponto de ancoragem, e pode cobrir algumas informações importantes em um gráfico (por exemplo, o preço de fechamento na barra). Portanto, podemos também especificar a mudança vertical em pixels, que não depende da escala do gráfico. As setas serão deslocadas para baixo pelo número especificado de pixels, embora os valores do indicador permaneçam os mesmos: --- Defina o deslocamento vertical das setas em pixels PlotIndexSetInteger (0, PLOTARROWSHIFT, shift) Um valor negativo de PLOTARROWSHIFT significa o Deslocar as setas para cima, um valor positivo desloca a flecha para baixo. O estilo DRAWARROW pode ser usado em uma sub-janela separada de um gráfico e na sua janela principal. Os valores vazios não são desenhados e não aparecem no quotData Windowquot, todos os valores nos buffers indicadores devem ser definidos explicitamente. Os buffers não são inicializados com um valor zero. --- Defina um valor vazio PlotIndexSetDouble (indexofplotDRAWARROW, PLOTEMPTYVALUE, 0) O número de buffers necessários para traçar DRAWARROW é 1. Um exemplo do indicador, que desenha setas em cada barra com o preço de fechamento superior ao preço de fechamento do anterior Barra. A cor, a largura, o deslocamento e o código de símbolo de todas as setas são alterados de forma aleatória a cada N carrapatos. No exemplo, para plot1 com o estilo DRAWARROW, as propriedades, a cor e o tamanho são especificados usando a propriedade de diretiva do compilador. E então, na função OnCalculate (), as propriedades são definidas aleatoriamente. O parâmetro N é configurado em parâmetros externos do indicador para a possibilidade de configuração manual (a guia Parâmetros na janela Propriedades do indicador). Descrição da propriedade quotAn indicador para demonstrar DRAWARROWquot descrição da propriedade quotDraws setas definidas por caracteres Unicode, em uma descrição da descrição da descrição do gráfico. A cor, o tamanho, o deslocamento e o código do símbolo da seta são alterados em uma descrição da propriedade do wayquot aleatório. Após cada descrição de propriedade do N ticksquot, o parâmetro do código Define o valor de base: code159 (um círculo) quot property indicatorchartwindow property indicatorbuffers 1 plotters de propriedades 1 --- plot Arrows property indicatorlabel1 quotArrowsquot propriedade indicatortype1 DRAWARROW propriedade indicatorcolor1 clrGreen propriedade indicatorwidth1 1 --- input parameters input int N 5 Número de carrapatos a mudar Código de entrada ush 159 Código de símbolo para desenhar em DRAWARROW --- Um buffer de indicador para o gráfico duplo ArrowsBuffer --- Uma matriz para armazenar cores cores cores ------------------- ----------------------------------------------- Inicialização personalizada do indicador Função -------------------------------------------- ---------------------- int OnInit () --- mapeamento de buffers de indicadores SetIndexBuffer (0, ArrowsBuffer, INDICATORDATA) --- Defina o código de símbolo para desenho PLotARROW PlotIndexSetInteger (0, PLOTARROW, código) --- Defina o deslocamento vertical das setas em pixels PlotIndexSetInteger (0, PLOTARROWSHIFT, 5) --- Defina como um valor vazio 0 PlotIndexSetDouble (0, PLOTEMPTYVALUE, 0) --- retorno ( INITSUCCEEDED) ------------------------------------------------ ------------------ Função de iteração do indicador personalizado ---------------------------- -------------------------------------- int OnCalculate (const int ratestotal, const int prevcalculated, const Datatime amptime, const double ampopen, const double amphigh, const double amplow, const double ampclose, const long amptickvolume, const long ampvolume, const int ampspread) static int ticks0 --- Calcular carrapatos para alterar a cor, tamanho, mudança e código de As tiques de seta --- Se um número crítico de tiques tiver sido acumulado se (ticksgt N) --- Alterar th E propriedades de linha ChangeLineAppearance () --- Repor o contador de tiques para zero ticks0 --- Bloquear para calcular valores de indicador int start1 se (prevcalculatedgt0) startprevcalculated-1 --- Ciclo de cálculo para (int i1iltratestotali) --- Se a corrente O preço de fechamento é maior do que o anterior, desenhe uma seta se (closeigtclosei-1) ArrowsBuffericlosei --- Caso contrário, especifique o valor zero, além de ArrowsBufferi0 --- valor de retorno de prevcalculated para retorno de chamada seguinte (ratestotal) ------- -------------------------------------------------- --------- Muda a aparência dos símbolos no indicador --------------------------------- --------------------------------- void ChangeLineAppearance () --- Uma string para a formação de informações sobre o indicador Propriedades string com quotquot --- Um bloco para alterar a seta do número de cores int. MathRand () Obter um número aleatório --- O divisor é igual ao tamanho da matriz de cores tamanho int ArraySize (cores) --- Obter o índice para Selecione um novo Cor como o restante da divisão inteira int colorindexnumbersize --- Defina a cor como a propriedade PLOTLINECOLOR PlotIndexSetInteger (0, PLOTLINECOLOR, colorscolorindex) --- Escreva a cor de linha comcomm quotrnquot (string) colorscolorindex --- Um bloco para alterar as setas de tamanho Número MathRand () --- Obtém a largura do restante da inteira divisão int widthnumber5 O tamanho está definido de 0 a 4 --- Defina a cor como a propriedade PLOTLINEWIDTH PlotIndexSetInteger (0, PLOTLINEWIDTH, width) --- Escreva a seta Comando de tamanho com Núcleo InteiroToString (largura) --- Um bloco para alterar o número do código de seta (PLOTARROW) MathRand () --- Obtém o restante da divisão inteira para calcular um novo código da seta (de 0 a 19) int codeaddnnumber20 - - Defina o novo código de símbolo como resultado do codecodeadd PlotIndexSetInteger (0, PLOTARROW. Código de códigoadd) --- Escreva o código do símbolo PLOTARROW com quotrnquot quotPLOTARROWquot IntegerToString (code codeadd) comm --- Um bloco para mudar o deslocamento vertical das setas no número de pixels MathRand () --- Obter o turno como o restante do inteiro Divisão int shift20-number41 --- Defina a nova mudança de -20 para 20 PlotIndexSetInteger (0, PLOTARROWSHIFT, shift) --- Escreva a mudança PLOTARROWSHIFT com quotrnquot quotPLOTARROWSHIFTquot IntegerToString (shift) comm --- Mostra as informações no gráfico usando Um comentário Comentário (comm) Indicador Ajuda para desenhar seta após x pip mover Precisa de ajuda com meu indicador. Encontre o código abaixo. É suposto desenhar setas em regiões onde o preço moveu mais que quotXquot número de pips dentro das últimas 20 barras, portanto: Openi gt (Openi20 PriceMove Point)) Desenha a flecha bem no gráfico onde eu quero, mas por algum motivo, faz Não é atualizado ao vivo. Se for necessário reiniciar o indicador e as setas aparecerem depois disso. Por favor avise onde há erro no código é se você puder. Rgrds e obrigado antecipadamente, o número de buffers para cálculo, até 8 indicadores de propriedades 2 A cor para exibir a característica de setas indicatorcolor1 Verde Long signo de propriedade indicadoracolor2 Vermelho Sinal curto Largura da largura de indicador de propriedade de setas1 2 Indicador de propriedade de seta de sinal longo2 2 Seta de sinal curto Extern int PriceMove 20 Buffers para os cálculos dobro UpArrowBuffer buffer longo para exibição duplo DownArrowBuffer buffer curto para exibição ------------------------------ ------------------------------------ Função de inicialização do indicador personalizado ---------- -------------------------------------------------- ------ int init () SetIndexStyle - define o novo tipo, estilo, largura e cor de uma determinada linha de indicadores SetIndexBuffer - liga a variável da matriz declarada em um nível global ao buffer predefinido do indicador personalizado SetIndexArrow - define um Seta para linha indicadores do tipo DRAWARROW. SetIndexStyle (0, DRAWARROW) SetIndexBuffer (0, UpArrowBuffer) SetIndexArrow (0, 233) Seta para cima SetIndexStyle (1, DRAWARROW) SetIndexBuffer (1, DownArrowBuffer) SetIndexArrow (1, 234) Seta para baixo ---- return (0) - -------------------------------------------------- -------------- Função de desinitialização do indicador personalizado -------------------------------- ---------------------------------- int deinit () ---- ---- return (0) -------------------------------------------------- ---------------- Função de iteração do indicador personalizado ------------------------------ ------------------------------------ int start () int i Índice de barras int Barras contadas Número de barras contadas -------------------------------------------------- ------------------ CountedbarsIndicatorCounted () Número de barras contadas iBars-Countedbars-2 Índice do primeiro não contado enquanto (igt0) Loop para barras não reconhecidas se (isUpSwingBar (i)) UpArrowBufferi Lowi - (20 Point) DownArrowBufferi EMPTYVALUE i - continue se (isDownSwingBar (i)) DownArro WBufferi Highi (20 pontos) UpArrowBufferi EMPTYVALUE i-- continuar UpArrowBufferi EMPTYVALUE DownArrowBufferi EMPTYVALUE i-- bool isUpSwingBar (int i) se (Openi gt (Openi20 PriceMove Point)) retornar (verdadeiro) retornar (falso)

No comments:

Post a Comment