Tutorial de programação PHP Socket Sockets Php e tcpip Este é um guia rápido para aprender a programação de soquetes no php. Socket programming php é muito semelhante ao C. A maioria das funções são semelhantes nos nomes, parâmetros e saída. No entanto, ao contrário de C, os programas de soquetes escritos em php funcionariam da mesma forma em qualquer um que tenha instalado o php. Portanto, o código não precisa de mudanças específicas da plataforma (principalmente). Para resumir o básico, os soquetes são as coisas fundamentais de qualquer tipo de comunicação de rede feita pelo seu computador. Por exemplo, quando você digita google no seu navegador da Web, ele abre um soquete e se conecta ao google para buscar a página e mostrá-lo para você. Mesmo com qualquer cliente de bate-papo como o Gtalk ou o Skype. Qualquer comunicação de rede passa por um soquete. Antes de começar Este tutorial pressupõe que você já conhece o php e também como executar scripts php do comandolineterminal. Os scripts Php são normalmente executados a partir do interior do navegador, colocando-os no diretório raiz apache como var, no entanto, esses programas de linha de comando podem ser executados a partir de qualquer diretório. Eles também podem ser executados a partir de navegadores. Então vamos começar com soquetes. Criando um soquete Esta primeira coisa a fazer é criar um soquete. A função socketcreate faz isso. Aqui está um exemplo de código: a função socketcreate cria um soquete e retorna um descritor de soquete que pode ser usado em outros comandos de rede. O código acima criará um soquete com as seguintes propriedades. Endereço Família. AFINET (esta é a versão IP 4) Digite. SOCKSTREAM (isto significa protocolo TCP orientado a conexão). 0 ou IPPROTOIP Este é o protocolo IP Se alguma das funções do soquete falhar, as informações de erro podem ser recuperadas usando as funções socketlasterror e socketstrerror. Está bem. Então você criou um soquete com sucesso. Mas o que vem depois. Em seguida, devemos tentar conectar-se a algum servidor usando este soquete. Podemos nos conectar ao Google Além do tipo de soquetes SOCKSTREAM, existe outro tipo chamado SOCKDGRAM que indica o protocolo UDP. Este tipo de soquete é um soquete de não conexão. Neste tutorial, devemos manter os soquetes SOCKSTREAM ou TCP. Conecte-se a um Servidor Conectamos a um servidor remoto em um determinado número de porta. Então precisamos de 2 coisas. Endereço IP e número de porta para se conectar. Então, você precisa saber o endereço IP do servidor remoto ao qual você está se conectando. Aqui usamos o endereço IP do google como amostra. Um pouco mais tarde, veremos como descobrir o endereço IP de um determinado nome de domínio. A última coisa necessária é a função de conexão. Ele precisa de um soquete e uma estrutura sockaddr para se conectar. Aqui está um exemplo de código. Execute o programa php varwwwsocket. php Socket criado Conexão estabelecida Ele cria um soquete e depois se conecta. Tente conectar-se a uma porta diferente da porta 80 e você não deve se conectar, o que indica que a porta não está aberta para conexão. Essa lógica pode ser usada para construir um scanner de portas. OK, então estamos conectados. Vamos fazer a próxima coisa. Enviando alguns dados para o servidor remoto. O conceito de conexões se aplica ao tipo de sockets SOCKSTREAMTCP. Conexão significa um fluxo confiável de dados, de modo que pode haver vários desses fluxos cada um tendo comunicação própria. Pense nisso como um tubo que não é interferido por outros dados. Outros soquetes como o UDP. ICMP. ARP não tem um conceito de conexão. Estas são comunicação não relacionada à conexão. O que significa que você continua enviando ou recebendo pacotes de todos e de todos. O envio de função de dados enviada simplesmente enviará dados. Ele precisa do descritor do soquete. Os dados a serem enviados e seu tamanho. Aqui está um exemplo muito simples de enviar alguns dados para o google ip: no exemplo acima. Primeiro nos conectamos a um endereço IP e, em seguida, enviamos a mensagem de cadeia GET HTTP1.1rnrn para ele. A mensagem é, na verdade, um comando http para buscar a página principal de um site. Agora que enviamos alguns dados. É hora de receber uma resposta do servidor. Então, vamos fazê-lo. Ao enviar dados para um soquete você basicamente está escrevendo dados para esse soquete. Isso é semelhante à escrita de dados em um arquivo. Portanto, você também pode usar a função de gravação para enviar dados para um soquete. Mais tarde, neste tutorial, devemos usar a função de gravação para enviar dados. Recebendo dados A função recv é usada para receber dados em um soquete. No exemplo a seguir, enviaremos a mesma mensagem como o último exemplo e receberemos uma resposta do servidor. Aqui está a saída do código acima: podemos ver qual resposta foi enviada pelo servidor. Parece algo como Html, bem, é html. O Google respondeu com o conteúdo da página que solicitamos. Bastante simples Agora que recebemos nossa resposta, é hora de fechar o soquete. Soquete fechado A função socketclose é usada para fechar o soquete. Vamos Rever Assim, no exemplo acima, aprendemos como: 1. Criar um soquete 2. Conectar ao servidor remoto 3. Enviar alguns dados 4. Receber uma resposta É útil saber que seu navegador também faz a mesma coisa quando abre o google Esse tipo de atividade de soquete representa um CLIENTE. Um cliente é um sistema que se conecta a um sistema remoto para buscar dados. O outro tipo de atividade de soquete é chamado de SERVER. Um servidor é um sistema que usa sockets para receber conexões recebidas e fornecer dados. É exatamente o oposto do Cliente. Portanto, o google é um servidor e seu navegador é um cliente. Ou, mais tecnicamente, o google é um servidor HTTP e seu navegador web é um cliente HTTP. Agora é hora de fazer algumas tarefas do servidor usando sockets. Mas antes de seguir em frente, existem alguns tópicos secundários que devem ser cobertos apenas se você precisar deles. Obter o endereço IP de um hostnamedomain Ao se conectar a um host remoto. É necessário ter seu endereço IP. A função gethostbyname é usada para este propósito. Ele leva o nome do domínio como o parâmetro e retorna o endereço IP. Portanto, o código acima pode ser usado para encontrar o endereço IP de qualquer nome de domínio. Então, o endereço IP pode ser usado para fazer uma conexão usando um soquete. Programação de servidor OK agora em coisas do servidor. Os servidores basicamente fazem o seguinte: 1. Abra um soquete 2. Vincule a um endereço (e porta). 3. Ouça as conexões recebidas. 4. Aceitar conexões 5. ReadSend Já aprendemos a abrir um soquete. Então, a próxima coisa seria obrigá-lo. Vincular um soquete O bind de função pode ser usado para vincular um soquete a um endereço e porta específicos. Ele precisa de uma estrutura sockaddrin semelhante à função de conexão. Agora que o bind está pronto, é hora de fazer o socket ouvir as conexões. Nós ligamos um soquete a um endereço IP específico e um determinado número de porta. Ao fazer isso, garantimos que todos os dados recebidos direcionados para este número de porta sejam recebidos por este aplicativo. Isso torna óbvio que você não pode ter 2 soquetes vinculados à mesma porta. Há exceções a esta regra, mas devemos analisar isso em algum outro artigo. Ouvir conexões Depois de ligar um soquete a uma porta, a próxima coisa que precisamos fazer é ouvir conexões. Para isso precisamos colocar o soquete no modo de audição. Função socketlisten é usado para colocar o soquete no modo de audição. Basta adicionar a seguinte linha após ligar. O segundo parâmetro da função socketlisten é chamado de backlog. Ele controla o número de conexões recebidas que estão aguardando se o programa já estiver ocupado. Então, ao especificar 10, isso significa que se 10 conexões já estiverem aguardando processamento, então o 11º pedido de conexão deve ser rejeitado. Isso será mais claro depois de verificar socketaccept. Agora vem a principal parte da aceitação de novas conexões. Aceitar conexão Função socketaccept é usado para isso. Execute o programa. Ele deve mostrar php varwwwserver. php Socket criado Socket bind OK Socket listen OK Esperando conexões recebidas. Então, agora, este programa está aguardando conexões recebidas na porta 5000. Não feche este programa. Mantenha-o em funcionamento. Agora, um cliente pode se conectar a ele nesta porta. Devemos usar o cliente telnet para testar isso. Abra um terminal e digite telnet localhost 5000 Ele mostrará imediatamente o telnet localhost 5000 Tentando 127.0.0.1. Conectado ao localhost. O personagem de escape é. Conexão fechada por host estrangeiro. E a saída do servidor mostrará o Cliente 127.0.0.1. 36689 agora está conectado a nós. Então, podemos ver que o cliente está conectado ao servidor. Experimente os passos acima até conseguir que ele seja perfeito. A função socketgetpeername é usada para obter detalhes sobre o cliente que está conectado ao servidor através de um soquete particular. Aceitamos uma conexão de entrada, mas fechamos imediatamente. Isso não foi muito produtivo. Há muitas coisas que podem ser feitas depois que uma conexão entrante é estabelecida. Depois de tudo, a conexão foi estabelecida para fins de comunicação. Então, responda ao cliente. A função socketwrite pode ser usada para escrever algo no soquete da conexão de entrada e o cliente deve vê-lo. Aqui está um exemplo: Execute o código acima em 1 terminal. E conecte-se a este servidor usando telnet de outro terminal e você deve ver isso: então o cliente (telnet) recebeu uma resposta do servidor. Podemos ver que a conexão é fechada imediatamente depois disso simplesmente porque o programa do servidor termina depois de aceitar e enviar a resposta. Um servidor como o Google sempre aceita conexões recebidas. Isso significa que um servidor deveria estar funcionando o tempo todo. Afterall é um servidor destinado a servir. Portanto, precisamos manter o nosso servidor de FUNCIONAMENTO sem parar. A maneira mais simples de fazer isso é colocar o aceitar em um loop para que ele possa receber conexões recebidas o tempo todo. Servidor ao vivo Então, um servidor ao vivo estará sempre vivo. Permite codificar isso. Não conseguimos muito lá. Basta colocar o socketaccept em um loop. Agora execute o programa do servidor em 1 terminal. E abra 3 outros terminais. De cada um dos 3 terminais faça um telnet para a porta do servidor. Cada um dos terminais telnet mostraria: telnet localhost 5000 Tentando 127.0.0.1. Conectado ao localhost. O personagem de escape é. Feliz OK. Conexão feliz fechada por host estrangeiro. E o terminal do servidor mostraria php varwwwserver. php Socket criado Socket bind OK Socket listen OK Esperando as conexões recebidas. Cliente 127.0.0.1. 37119 agora está conectado a nós. Cliente 127.0.0.1. 37122 agora está conectado a nós. Cliente 127.0.0.1. 37123 agora está conectado a nós. Então, agora, o servidor está funcionando sem parar e os terminais telnet também estão conectados sem interrupção. Agora, feche o programa do servidor. Todos os terminais telnet mostrarão conexão fechada por host externo. Bom até agora. Mas ainda não existe comunicação efetiva entre o servidor e o cliente. O programa do servidor aceita conexões em um loop e apenas envia-lhes uma resposta, depois não faz nada com elas. Também não é capaz de lidar com mais de 1 conexão por vez. Então agora é hora de lidar com as conexões. E lidar com múltiplas conexões em conjunto. Manipulação de conexões Para lidar com todas as conexões, precisamos de um código de manipulação separado para executar junto com o servidor principal que aceita conexões. Uma maneira de conseguir isso é usar threads. O programa do servidor principal aceita uma conexão e cria um novo tópico para lidar com a comunicação para a conexão e, em seguida, o servidor volta a aceitar mais conexões. No entanto, o php não suporta o threading diretamente. Outro método é usar a função de seleção. A função de seleção basicamente pesquisa ou observa um conjunto de soquetes para determinados eventos, como se fosse legível ou gravável ou teve um problema ou não, etc. Portanto, a função de seleção pode ser usada para monitorar vários clientes e verificar qual cliente enviou uma mensagem. Execute o servidor acima e abra 3 terminais como antes. Agora, o servidor criará um segmento para cada cliente que se conecte a ele. Os terminais de telnet mostrariam: O terminal do servidor pode parecer assim. O manipulador de conexão acima leva alguma entrada do cliente e responde de volta com o mesmo. Simples Aqui está como a saída do telnet pode parecer Então agora temos um servidor que é comunicativo. Isso é útil agora. Conclusão Até agora, você deve ter aprendido os conceitos básicos de programação de socket em php. Você pode experimentar algumas experiências, como escrever um cliente de bate-papo ou algo semelhante. Se você acha que o tutorial precisa de alguns complementos ou melhorias ou qualquer um dos trechos de código acima, não trabalhe, então, sinta-se livre para fazer um comentário abaixo para que ele consiga corrigir. Última atualização em. 26 de março de 2017Dados binários de transmissão via protocolo UDP (Winsock) Eu estou fazendo um programa cliente que requer que os dados binários sejam enviados para o servidor através do protocolo UDP. (Eu uso o controle winsock) Eu tenho usado o seguinte código. Dim ByteX como Byte Dim X como Long Dim FileX como Interger Winsock3.LocalPort 10000 Winsock3.RemoteHost 211.233.70.51 Winsock3.RemotePort 9500 FileX FreeFile Abrir App. Path udp1.dat para Binário como FileX X 1 Até Até X FileLen (App. Path udp1.dat) 1 Obter FileX. X, ByteX Winsock3.SendData ByteX X X 1 Loop Fechar arquivoX Quando envio dados dessa forma, ele envia 52 pacotes contendo 1 byte cada vez em vez de 1 pacote contendo 52 bytes. Este código funciona corretamente para o protocolo TCP, mas o UDP não funciona da mesma maneira. Como posso enviar dados binários usando o protocolo UDP que enviará apenas 1 pacote de dados. Estou fazendo um programa cliente que exige que dados binários sejam enviados para o servidor através do protocolo UDP. (Estou usando o controle winsock):: Eu tenho usado o seguinte código. :: Dim ByteX como Byte: Dim X como Long: Dim FileX como Interger:: Winsock3.LocalPort 10000: Winsock3.RemoteHost 211.233.70.51: Winsock3.RemotePort 9500:: FileX FreeFile: Abra o App. Path udp1.dat para Binário como FileX : X 1: Faça até X FileLen (App. Path udp1.dat) 1: Obter FileX. X, ByteX: Winsock3.SendData ByteX: X X 1: Loop: Fechar FileX:: Quando envio dados dessa forma, ele envia 52 pacotes contendo 1 byte em vez de 1 pacote contendo 52 bytes. Este código funciona corretamente para o protocolo TCP, mas o UDP não funciona da mesma maneira. Como posso enviar dados binários usando o protocolo UDP que enviará apenas 1 pacote de dados: Oi Experimente este protocolo Winsock3.Protocol sckUDPProtocol O Winsock tem sckTCPProtocol por padrão ... purpleDont levar a vida muito a sério, de qualquer forma, você não vai escapar vivo com isso usando dados binários usando winsock Im Desculpe, você está dizendo que eu tenho que usar Datagram em vez de Stream Sockets para ter esse trabalho que estou usando SOCKSTREAM neste momento, e eu preferiria ficar com ele. Existe alguma maneira de conseguir isso para aceitar o 0x00 e aceitar dados depois, enquanto ainda usa sockets de fluxo. Mais uma vez, obrigado por toda sua ajuda. Mikyu Hmm, isso é estranho. Eu pensei que o argumento SOCKDGRAM deveria especificar dados binários, em oposição a SOCKSTREAM. : O recv deve ler além de zero no caso. : Tem certeza de que não está capturando os dados em um tipo de tipo de seqüência de caracteres que você está imprimindo ou escrevendo para um arquivo ou algo com uma das rotinas de str: Quero dizer, você tem certeza de que está exibindo os dados recebidos corretamente Desculpe, você está dizendo que eu tenho que usar Datagram em vez de Stream Sockets para ter esse trabalho que estou usando SOCKSTREAM neste momento, e eu preferiria ficar com ele. Existe alguma maneira de conseguir isso para aceitar o 0x00 e aceitar dados depois, enquanto ainda usa sockets de fluxo. Mais uma vez, obrigado por toda sua ajuda. : Mikyu:. Hmm, isso é estranho. Eu pensei que o argumento SOCKDGRAM deveria especificar dados binários, em oposição a SOCKSTREAM. . O recv deve ler além de zero no caso. . Tem certeza de que não está capturando os dados em um tipo de dados de string que você está imprimindo ou escrevendo para um arquivo ou algo com uma das rotinas de str. Quero dizer, você tem certeza de que está exibindo os dados recebidos corretamente: SOCKDGRAM não significa dados binários. Isso significa que você deseja usar o protocolo UDP para enviar dados e os dados são enviados nos datagramas. SOCKSTREAM significa que você deseja usar o protocolo TCP e enviar dados como fluxo. Socket não se importa com o tipo de dados que você está enviando. Tudo o que você precisa é ponteiro para o buffer que contém os dados e o comprimento desse buffer. Zero dentro de dados não significa nada, é apenas zero. Os dados não são encerrados por zero como C-strings são. Socket não se preocupa com o conteúdo dos dados. Eu acho que há algo de errado com você receber o código. Talvez você esteja usando zero como terminador lá, o que é coisa muito ruim. Se você pudesse publicar o código que recebe dados aqui, eu poderia tentar descobrir o que estava errado com ele. Aqui está o código que estou usando. Mais uma vez, eu sou novo no winsock, então, fique comigo. Obrigado código int servidor (void) unsigned char recmsg3072 SOCKET serverfd, clientfd ouvir no sockfd, nova conexão no newfd SOCKADDRIN serveraddr SOCKADDRIN clientaddr int len int j int msgsize 0 char pergunta WSADATA wsadata unsigned short verrequest FILE mike LINGER LingVar verrequest MAKEWORD (2,2 ) Se (WSAStartup (verrequest, ampwsadata) -1) printf (Não foi possível encontrar uma DLL Winsock utilizável) sair (1) se ((socket serverfd (AFINET, SOCKSTREAM, 0)) -1) perror (LADO DO SERVIDOR: não pode abrir o soquete) LingVar. lonoff TRUE LingVar. llinger 0 se (setsockopt (serverfd, SOLSOCKET, SOOOBINLINE, (char FAR) ampLingVar, sizeof (LingVar)) -1) perror (SERVER SIDE: não pôde executar setsockopt) exit (1) serveraddr. sinfamily AFINET serveraddr. sinport htons (SERVERPORT) serveraddr. sinaddr. saddr htonl (INADDRANY) memset (amp (serveraddr. sinzero),, 8) if (bind (serverfd, (struct sockaddr) ampserveraddr, sizeof (serveraddr)) -1) perror (SERVER SIDE: não pode ligar a porta) exit (1) if (listen (serverfd, PACKETQUEUE) -1) por Ror (SÉRIE DO SERVIDOR: não pode ouvir soquete) sair (1) memset (recmsg, 0x0, 3072) enquanto (1) printf (Você quer continuar (YN)) pergunta getchar () se (pergunta) pergunta getchar () if (Pergunta N pergunta n) retornar 0 printf (SERVER SIDE: Waiting for Data na porta) len sizeof (clientaddr) clientfd accept (serverfd, (struct sockaddr) ampclientaddr, amplen) if (clientfd -1) perror (SERVER SIDE: não pode aceitar Conexão) return ERROR printf (SERVER SIDE: conexão recebida de: s, inetntoa (clientaddr. sinaddr)) msgsize readline (recmsg, clientfd, clientaddr) se (MSgsize ERROR) printf (SERVER SIDE: Não foi possível ler a mensagem) coutltltthis é o tamanho da mensagem : Ltltmsgsizeltltendl fwrite (recmsg, sizeof (short int), 10, mike) para (j0 jlt10 j) printf (- c, recmsgj) closesocket (clientfd) se (WSACleanup () -1) perror (Problema com WSACLEANUP) sair ( 1) int readline (signignet char buf, SOCKET sd, SOCKADDRIN clientaddr) char segMAXDATA int offset 0 int res 1 int cliLen memset (seg, 0x0, MAXDATA) cliL (Tamanho do servidor (clientaddr) enquanto que ((res recvfrom (sd, seg, MAXDATA, 0, (struct sockaddr) ampclientaddr, ampcliLen)) SOCKETERROR) se (resEOFresWSAECONNRESETresWSAECONNABORTED) 0 outro lado terminated conn printf (conexão terminada pelo cliente) return offset memcpy (bufoffset, Seg, res) offset res memset (seg, 0x0, MAXDATA) retorna o código ERROR: SOCKDGRAM não significa dados binários. Isso significa que você deseja usar o protocolo UDP para enviar dados e os dados são enviados nos datagramas. SOCKSTREAM significa que você deseja usar o protocolo TCP e enviar dados como fluxo. :: Socket não se importa com o tipo de dados que você está enviando. Tudo o que você precisa é ponteiro para o buffer que contém os dados e o comprimento desse buffer. :: O zero de dados internos não significa nada, é apenas zero. Os dados não são encerrados por zero como C-strings são. Socket não se preocupa com o conteúdo dos dados. :: Eu acho que há algo de errado com você receber o código. Talvez você esteja usando zero como terminador lá, o que é coisa muito ruim. Se você pudesse publicar o código que recebe dados aqui, eu poderia tentar descobrir o que estava errado com ele. : Uma introdução ao Windows Socket Programming with C O que temos neste capítulo 1 parte 4 Data Transmission send () e WSASend () WSASendDisconnect () Dados fora da banda recv () e WSARecv () WSARecvDisconnect () Stream Protocols Scatter - Gather IO Breaking Connection Shutdown () closesocket () TCP ReceiverServer Com select () Exemplo de envio de transmissão de dados () e WSASend () WSASendDisconnect () Dados fora da banda recv () e WSARecv () A solicitação de recebimento será concluída somente Quando ocorre um dos seguintes eventos: o buffer fornecido pelo chamador está completamente cheio. A conexão foi fechada. O pedido foi cancelado ou ocorreu um erro. Observe que, se o transporte subjacente não suportar MSGWAITALL, ou se o soquete estiver em modo não bloqueador, essa chamada falhará com WSAEOPNOTSUPP. Além disso, se MSGWAITALL for especificado juntamente com MSGOOB, MSGPEEK ou MSGPARTIAL, essa chamada falhará com WSAEOPNOTSUPP. Este sinalizador não é suportado em sockets de datagramas ou em soquetes de CO orientados para mensagens. Claro, 0 não especifica ações especiais. O MSGPEEK faz com que os dados disponíveis para serem copiados para o buffer de recebimento fornecido. Mas esses dados não são removidos do buffer de sistemas. O número de bytes pendentes também é retornado. A inspeção de mensagens é ruim. Não só degrada o desempenho, como agora você precisa fazer duas chamadas de sistema (uma para espiar e outra sem o sinalizador MSGPEEK para realmente remover os dados), mas também não é confiável em determinadas circunstâncias. Os dados retornados podem não refletir a quantidade total disponível. Além disso, ao deixar dados nos buffers do sistema, o sistema tem menos espaço para conter dados recebidos. Como resultado, o sistema reduz o tamanho da janela TCP para todos os remetentes. Isso impede que seu aplicativo alcance o rendimento máximo possível. A melhor coisa a fazer é copiar todos os dados que você pode em seu próprio buffer e manipulá-lo lá. Existem algumas considerações ao usar recv () em um socket baseado em mensagem ou datagrama, como o UDP, que descreveremos mais tarde. Se os dados pendentes forem maiores do que o buffer fornecido, o buffer é preenchido com a quantidade de dados que ele irá conter. Nesse caso, a chamada recv () gera o erro WSAEMSGSIZE. Observe que o erro de tamanho da mensagem ocorre com os protocolos orientados para mensagens. Transfira protocolos como dados de entrada do buffer TCP e retornará tantos dados como os pedidos do aplicativo, mesmo que a quantidade de dados pendentes seja maior. Assim, para protocolos de transmissão você não encontrará o erro WSAEMSGSIZE. A função WSARecv () adiciona novas capacidades sobre recv (), como IO sobreposta e notificações de datagramas parciais. A definição de WSARecv () é: o parâmetro s é o soquete conectado. O segundo e terceiro parâmetros são os buffers para receber os dados. O parâmetro lpBuffers é uma matriz de estruturas WSABUF e dwBufferCount indica o número de estruturas WSABUF na matriz. O parâmetro lpNumberOfBytesReceived aponta para o número de bytes recebidos por esta chamada se a operação de recebimento for concluída imediatamente. O parâmetro lpFlags pode ser um dos valores MSGPEEK, MSGOOB ou MSGPARTIAL, ou uma combinação OR bit a bit desses valores. A bandeira MSGPARTIAL tem vários significados diferentes, dependendo de onde ele é usado ou encontrado. Para protocolos orientados a mensagens que suportam mensagens parciais (como o AppleTalk), esta bandeira é definida após o retorno de WSARecv () (se a mensagem inteira não puder ser retornada nesta chamada devido ao espaço de buffer insuficiente). Nesse caso, as chamadas subseqüentes de WSARecv () definem esta bandeira até que a mensagem inteira seja retornada, quando o sinalizador MSGPARTIAL for apagado. Se esse sinalizador for passado como um parâmetro de entrada, a operação de recepção deve ser concluída assim que os dados estiverem disponíveis, mesmo que seja apenas uma parte da mensagem inteira. O sinalizador MSGPARTIAL é usado apenas com protocolos orientados a mensagens, não com os de transmissão. Além disso, nem todos os protocolos suportam mensagens parciais. A entrada de protocolo para cada protocolo contém um sinalizador que indica se ele é compatível com esse recurso. Os parâmetros lpOverlapped e lpCompletionRoutine são usados em operações IO sobrepostas, discutidas em outro capítulo. Existe uma outra função de recepção especializada que você deve estar ciente de: WSARecvDisconnect (). WSARecvDisconnect () Esta função é o oposto do WSASendDisconnect () e é definido da seguinte forma: int WSARecvDisconnect (SOCKET s, LPWSABUF lpInboundDisconnectData) Como a contrapartida de envio, os parâmetros do WSASendDisconnect () são o identificador de soquete conectado e uma estrutura WSABUF válida com o Dados a serem recebidos. Os dados recebidos podem ser apenas desconectando dados enviados por um WSASendDisconnect () no outro lado, ele não pode ser usado para receber dados normais. Além disso, uma vez que os dados são recebidos, esta função desativa a recepção da parte remota, o que equivale a chamar a função shutdown () (que é descrita mais tarde) com SDRECEIVE. Protocolos de fluxo Como a maioria das comunicações orientadas para conexão, como TCP, são protocolos de transmissão, descreva-os brevemente aqui. Um protocolo de transmissão é aquele que o remetente e o receptor podem dividir ou coagir dados em grupos menores ou maiores. A figura a seguir descreve brevemente o fluxo de pacotes TCP entre os lados do cliente e do servidor. A principal coisa a ter em conta com qualquer função que envia ou recebe dados em um soquete de fluxo é que você não está garantido para ler ou escrever a quantidade de dados que você solicita. Digamos que você tenha um buffer de caracteres com 2048 bytes de dados que deseja enviar com a função de envio. O código para enviar isto é: int nBytes 2048 Preencha o envio com 2048 bytes de dados Suponha que s é um soquete de fluxo conectado válido e conectado enviando (s, sendbuff, nBytes, 0) É possível enviar para retornar tendo enviado menos de 2048 bytes . A variável ret será definida para o número de bytes enviados porque o sistema aloca uma certa quantidade de espaço de buffer para cada socket para enviar e receber dados. No caso de enviar dados, os buffers internos mantêm os dados a serem enviados até que os dados possam ser colocados no fio. Várias situações comuns podem causar isso. Por exemplo, simplesmente transmitir uma enorme quantidade de dados fará com que esses buffers sejam preenchidos rapidamente. Além disso, para o TCPIP, existe o que é conhecido como o tamanho da janela (demonstração da janela deslizante). A extremidade de recepção ajustará esse tamanho de janela para indicar a quantidade de dados que pode receber. Se o receptor estiver inundado com dados, pode configurar o tamanho da janela para 0 para recuperar o atraso nos dados pendentes. Isso forçará o remetente a parar até receber um novo tamanho de janela maior do que 0. No caso de nossa chamada de envio, pode haver espaço de buffer para armazenar apenas 1024 bytes, caso em que você deve reenviar os 1024 bytes restantes. O código a seguir garante que todos os seus bytes sejam enviados: int nBytes 2048, nLeft, idx Remova o envio com 2048 bytes de dados enquanto (nLeft gt 0) Suponha que s é um soquete de fluxo conectado válido. As coisas ficam um pouco complicadas se o tamanho da sua mensagem variar . É necessário impor seu próprio protocolo para que o receptor saiba quão grande será a próxima mensagem. Por exemplo, os quatro primeiros bytes gravados no receptor serão sempre o tamanho inteiro em bytes da próxima mensagem. O receptor iniciará todas as leituras, observando os quatro primeiros bytes, convertendo-os em um inteiro e determinando quantos bytes adicionais incluirão essa mensagem. O suporte Scatter-Gather IO Scatter-gather é um conceito originalmente introduzido em Berkeley Sockets com as funções recv e writev. Esta funcionalidade está disponível com as funções Wassock 2 WSARecv (), WSARecvFrom (), WSASend () e WSASendTo (). É muito útil para aplicativos que enviam e recebem dados formatados de forma muito específica. Por exemplo, as mensagens de um cliente para um servidor podem ser sempre compostas por um cabeçalho fixo de 32 bytes especificando alguma operação, seguido por um bloco de dados de 64 bytes e terminado com um trailer de 16 bytes. Neste exemplo, WSASend () pode ser chamado com uma matriz de três estruturas WSABUF, cada uma correspondente aos três tipos de mensagem. Na extremidade receptora, WSARecv () é chamado com três estruturas WSABUF, cada uma contendo buffers de dados de 32 bytes, 64 bytes e 16 bytes. Ao usar sockets baseados em fluxo, as operações de dispersão e coleta simplesmente tratam os buffers de dados fornecidos nas estruturas WSABUF como um buffer contíguo. Além disso, a chamada de recepção pode retornar antes que todos os buffers estejam cheios. Nos soquetes baseados em mensagens, cada chamada para uma operação de recepção recebe uma única mensagem até o tamanho do buffer fornecido. Se o espaço de buffer for insuficiente, a chamada falhará com WSAEMSGSIZE e os dados serão truncados para se ajustarem ao espaço disponível. Claro, com protocolos que suportam mensagens parciais, o sinalizador MSGPARTIAL pode ser usado para evitar a perda de dados. Partindo a conexão Depois de terminar uma conexão de soquete, você deve fechá-la e liberar todos os recursos associados a esse identificador de soquete. Para realmente liberar os recursos associados a um identificador de soquete aberto, use a chamada closesocket (). Esteja ciente, no entanto, de que closesocket () pode ter alguns efeitos adversos, dependendo de como é chamado, que pode levar à perda de dados. Por este motivo, uma conexão deve ser terminada graciosamente com a função shutdown () antes de uma chamada para a função closesocket (). Estas duas funções da API são discutidas a seguir. Desligamento () Para garantir que todos os dados enviados por um aplicativo sejam recebidos pelo interlocutor, um aplicativo bem escrito deve notificar o destinatário de que não serão enviados mais dados. Do mesmo modo, os pares devem fazer o mesmo. Isso é conhecido como um fechamento gracioso e é executado pela função shutdown (), definida como: shutdown int (SOCKET s, int how) O parâmetro como pode ser SDRECEIVE, SDSEND ou SDBOTH. Para SDRECEIVE, as chamadas subseqüentes para qualquer função de recebimento no soquete são desativadas. Isso não tem efeito nas camadas de protocolo mais baixas. E para sockets TCP, se os dados estiverem em fila para receber ou se os dados chegarem subsequentemente, a conexão será redefinida. No entanto, em dados de entrada de soquetes UDP ainda é aceito e enfileirado (porque o desligamento () não tem significado para protocolos sem conexão). Para SDSEND, as chamadas subseqüentes para qualquer função de envio não são permitidas. Para sockets TCP, isso faz com que um pacote FIN seja gerado depois que todos os dados são enviados e reconhecidos pelo receptor. Finalmente, especificando SDBOTH desativa ambos envia e recebe. Observe que nem todos os protocolos orientados a conexão suportam o encerramento gracioso, que é o que a API de desligamento () é executada. Para esses protocolos (como ATM), somente closesocket () precisa ser chamado para encerrar a sessão. Uma bandeira que descreve quais tipos de operação estão resumidos na tabela a seguir. Os valores possíveis para este sinalizador estão listados no arquivo de cabeçalho Winsock2.h. Uma vez que a função shutdown () é chamada para desativar envio, receber ou ambos, não há nenhum método para reativar enviar ou receber para a conexão de soquete existente. Um aplicativo não deve confiar em ser capaz de reutilizar um soquete depois que ele foi desligado. Em particular, um provedor Windows Sockets não é necessário para suportar o uso de connect () em um soquete que foi encerrado. Se um aplicativo quiser reutilizar um soquete, a função DisconnectEx () deve ser chamada com o parâmetro dwFlags configurado para TFREUSESOCKET para fechar uma conexão em um soquete e preparar o identificador de soquete para ser reutilizado. Quando a solicitação DisconnectEx () for concluída, o identificador de soquete pode ser passado para a função AcceptEx () ou ConnectEx (). Se um aplicativo quiser reutilizar um soquete, as funções TransmitFile () ou TransmitPackets () podem ser chamadas com o conjunto de parâmetros dwFlags com TFDISCONNECT e TFREUSESOCKET para desligar depois de todos os dados terem sido enfileirados para transmissão e preparar o identificador de soquete para serem reutilizados. Quando a solicitação TransmitFile () for concluída, o identificador de soquete pode ser passado para a chamada de função usada anteriormente para estabelecer a conexão, como, por exemplo, AcceptEx () ou ConnectEx (). When the TransmitPackets() function completes, the socket handle can be passed to the AcceptEx() function. Take note that the socket level disconnect is subject to the behavior of the underlying transport. For example, a TCP socket may be subject to the TCP TIMEWAIT state, causing the DisconnectEx(), TransmitFile(), or TransmitPackets() call to be delayed. closesocket() The closesocket() function closes a socket and is defined as: int closesocket (SOCKET s) If no error occurs, closesocket() returns zero. Otherwise, a value of SOCKETERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError(). The socket is marked as nonblocking, but the lonoff member of the linger structure is set to non-zero and the llinger member of the linger structure is set to a nonzero timeout value. Calling closesocket() releases the socket descriptor and any further calls using the socket fail with WSAENOTSOCK. If there are no other references to this socket, all resources associated with the descriptor are released. This includes discarding any queued data. Pending synchronous calls issued by any thread in this process are canceled without posting any notification messages. Pending overlapped operations are also canceled. Any event, completion routine, or completion port that is associated with the overlapped operation is performed but will fail with the error WSAOPERATIONABORTED. In addition, one other factor influences the behavior of closesocket(): whether the socket option SOLINGER has been set. An application should always have a matching call to closesocket() for each successful call to socket to return any socket resources to the system. TCP ReceiverServer With select() Example 1. While in the Visual C IDE, click File menu gt Project sub menu to create a new project. 2. Select Win32 for the Project types: and Win32 Console Application for the Templates. Put the project and solution name. Adjust the project location if needed and click OK. 3. Click Next for the Win32 Application Wizard Overview page. We will remove all the unnecessary project items. 4. In the Application page, select Empty project for the Additional options. Leave others as given and click Finish. 5. Next, we need to add new source file. Click Project menu gt Add New Item sub menu or select the project folder in the Solution Explorer gt Select Add menu gt Select New Item sub menu. 6. Select C File (.cpp) for the Templates. Put the source file name and click Add. Although the extension is. cpp, Visual C IDE will recognize that the source code used is C based on the Compile as C Code (TC) option which will be set in the project property page later. 7. Now, add the source code as given below. A sample of the select() return value int recvTimeOutTCP(SOCKET socket, long sec, long usec)
Friday, 21 September 2018
Monday, 17 September 2018
Método de previsão de vendas média móvel
3 Compreendendo níveis e métodos de previsão Você pode gerar previsões de detalhes (itens únicos) e previsões de resumo (linha de produtos) que refletem padrões de demanda de produtos. O sistema analisa as vendas passadas para calcular as previsões usando 12 métodos de previsão. As previsões incluem informações detalhadas no nível do item e informações de nível superior sobre um ramo ou a empresa como um todo. 3.1 Critérios de avaliação de desempenho de previsão Dependendo da seleção de opções de processamento e de tendências e padrões nos dados de vendas, alguns métodos de previsão apresentam melhor desempenho do que outros para um determinado conjunto de dados históricos. Um método de previsão apropriado para um produto pode não ser apropriado para outro produto. Você pode achar que um método de previsão que fornece bons resultados em um estágio do ciclo de vida de um produto permanece apropriado ao longo de todo o ciclo de vida. Você pode selecionar entre dois métodos para avaliar o desempenho atual dos métodos de previsão: porcentagem de precisão (POA). Desvio absoluto médio (MAD). Ambos os métodos de avaliação de desempenho exigem dados históricos de vendas por um período que você especifica. Este período é chamado de período de suspensão ou período de melhor ajuste. Os dados nesse período são usados como base para recomendar qual método de previsão usar na próxima projeção de previsão. Esta recomendação é específica para cada produto e pode mudar de uma geração de previsão para a próxima. 3.1.1 Melhor ajuste O sistema recomenda a melhor estimativa de ajuste, aplicando os métodos de previsão selecionados ao histórico de pedidos de vendas anteriores e comparando a simulação de previsão com o histórico real. Quando você gera uma previsão de melhor ajuste, o sistema compara os históricos reais das ordens de vendas com as previsões para um período de tempo específico e calcula com que precisão cada método de previsão diferente previu as vendas. Então o sistema recomenda a previsão mais precisa como o melhor ajuste. Este gráfico ilustra as melhores previsões de ajuste: Figura 3-1 Previsão de melhor ajuste O sistema usa esta seqüência de etapas para determinar o melhor ajuste: use cada método especificado para simular uma previsão para o período de espera. Compare as vendas reais com as previsões simuladas para o período de suspensão. Calcule o POA ou o MAD para determinar qual método de previsão corresponde mais às vendas reais passadas. O sistema usa POA ou MAD, com base nas opções de processamento que você seleciona. Recomenda uma melhor previsão ajustada pelo POA que é mais próximo de 100 por cento (sobre ou abaixo) ou o MAD que é o mais próximo de zero. 3.2 Métodos de previsão O JD Edwards EnterpriseOne Forecast Management usa 12 métodos para previsão quantitativa e indica qual método fornece o melhor ajuste para a situação de previsão. Esta seção discute: Método 1: porcentagem acima do último ano. Método 2: percentual calculado em relação ao ano passado. Método 3: Ano passado para este ano. Método 4: Média móvel. Método 5: Aproximação linear. Método 6: Regressão de mínimos quadrados. Método 7: Aproximação de segundo grau. Método 8: Método flexível. Método 9: média móvel ponderada. Método 10: Suavização linear. Método 11: Suavização exponencial. Método 12: Suavização exponencial com Tendência e Sazonalidade. Especifique o método que deseja usar nas opções de processamento para o programa de geração de previsão (R34650). A maioria desses métodos fornece controle limitado. Por exemplo, o peso colocado em dados históricos recentes ou o intervalo de datas de dados históricos que é usado nos cálculos pode ser especificado por você. Os exemplos no guia indicam o procedimento de cálculo para cada um dos métodos de previsão disponíveis, dado um conjunto idêntico de dados históricos. Os exemplos de métodos no guia usam parte ou todos esses conjuntos de dados, que são dados históricos dos últimos dois anos. A projeção de previsão vai para o próximo ano. Este histórico de vendas é estável com pequenos aumentos sazonais em julho e dezembro. Esse padrão é característico de um produto maduro que pode estar se aproximando da obsolescência. 3.2.1 Método 1: Percentagem acima do último ano Este método usa a fórmula Percent Over Over Year para multiplicar cada período de previsão pelo aumento ou diminuição percentual especificado. Para prever a demanda, esse método requer o número de períodos para o melhor ajuste mais um ano de histórico de vendas. Este método é útil para prever a demanda por itens sazonais com crescimento ou declínio. 3.2.1.1 Exemplo: Método 1: Porcentagem acima do ano passado A porcentagem acima da fórmula do ano passado multiplica os dados de vendas do ano anterior por um fator que você especifica e, em seguida, projetos que resultaram no próximo ano. Este método pode ser útil no orçamento para simular o efeito de uma taxa de crescimento especificada ou quando o histórico de vendas tem um componente sazonal significativo. Especificações de previsão: fator de multiplicação. Por exemplo, especifique 110 na opção de processamento para aumentar os dados do histórico de vendas dos anos anteriores em 10%. Histórico de vendas obrigatório: um ano para calcular a previsão, além do número de períodos de tempo necessários para avaliar o desempenho da previsão (períodos de melhor ajuste) que você especificou. Esta tabela é uma história utilizada no cálculo da previsão: a previsão de fevereiro é igual a 117 vezes 1.1 128.7 arredondada para 129. A previsão de março é igual a 115 vezes 1.1 126.5 arredondada para 127. 3.2.2 Método 2: Percentual calculado acima do ano passado Este método usa o percentual calculado acima Fórmula do ano passado para comparar as vendas passadas de períodos especificados para vendas dos mesmos períodos do ano anterior. O sistema determina uma porcentagem de aumento ou diminuição e, em seguida, multiplica cada período pela porcentagem para determinar a previsão. Para prever a demanda, esse método requer o número de períodos de histórico de pedidos de vendas mais um ano de histórico de vendas. Este método é útil para prever a demanda de curto prazo para itens sazonais com crescimento ou declínio. 3.2.2.1 Exemplo: Método 2: Percentual calculado em relação ao ano passado A porcentagem calculada em relação à fórmula do ano passado multiplica os dados de vendas do ano anterior por um fator que é calculado pelo sistema e, em seguida, projeta esse resultado para o próximo ano. Esse método pode ser útil para projetar o efeito de ampliar a taxa de crescimento recente para um produto no próximo ano, preservando um padrão sazonal que está presente no histórico de vendas. Especificações de previsão: faixa de histórico de vendas para usar no cálculo da taxa de crescimento. Por exemplo, especifique n igual a 4 na opção de processamento para comparar o histórico de vendas para os quatro períodos mais recentes para os mesmos quatro períodos do ano anterior. Use a proporção calculada para fazer a projeção para o próximo ano. Histórico de vendas obrigatório: um ano para calcular a previsão, além do número de períodos de tempo necessários para avaliar o desempenho da previsão (períodos de melhor ajuste). Esta tabela é uma história usada no cálculo da previsão, dada n 4: a previsão de fevereiro é igual a 117 vezes 0,9766 114,26 arredondada para 114. A previsão de março é igual a 115 vezes 0,9766 112,31 arredondada para 112. 3.2.3 Método 3: ano passado para este ano Este método usa Vendas dos últimos anos para a previsão dos próximos anos. Para prever a demanda, esse método requer o número de períodos melhor ajustados mais um ano de histórico de pedidos de vendas. Este método é útil para prever a demanda por produtos maduros com demanda de nível ou demanda sazonal sem tendência. 3.2.3.1 Exemplo: Método 3: Ano passado a este ano O ano passado para este ano a fórmula copia dados de vendas do ano anterior para o próximo ano. Este método pode ser útil no orçamento para simular as vendas no nível atual. O produto é maduro e não tem tendência a longo prazo, mas pode existir um padrão de demanda sazonal significativo. Especificações de previsão: Nenhuma. Histórico de vendas obrigatório: um ano para calcular a previsão, além do número de períodos de tempo necessários para avaliar o desempenho da previsão (períodos de melhor ajuste). Esta tabela é uma história utilizada no cálculo da previsão: a previsão de janeiro é igual a janeiro do ano passado com um valor de previsão de 128. A previsão de fevereiro é igual a fevereiro do ano passado com um valor de previsão de 117. A previsão de março é igual a março do ano passado com um valor de previsão de 115. 3.2.4 Método 4: Média em Movimento Este método usa a fórmula da Média Mover para calcular o número de períodos especificado para projetar o próximo período. Você deve recalcular isso com freqüência (mensal, ou pelo menos trimestral) para refletir o nível de demanda em mudança. Para prever a demanda, esse método requer o número de períodos que melhor se ajustam, além do número de períodos de histórico de pedidos de vendas. Este método é útil para prever a demanda por produtos maduros sem uma tendência. 3.2.4.1 Exemplo: Método 4: A média móvel média móvel (MA) é um método popular para a média dos resultados do histórico de vendas recente para determinar uma projeção para o curto prazo. O método de previsão MA está atrasado nas tendências. Os preconceitos de previsão e os erros sistemáticos ocorrem quando o histórico de vendas do produto exibe fortes tendências ou padrões sazonais. Este método funciona melhor para previsões de curto alcance de produtos maduros do que para produtos que estão nos estágios de crescimento ou obsolescência do ciclo de vida. Especificações de previsão: n é igual ao número de períodos de histórico de vendas a serem usados no cálculo da previsão. Por exemplo, especifique n 4 na opção de processamento para usar os quatro períodos mais recentes como base para a projeção no próximo período de tempo. Um grande valor para n (como 12) requer mais histórico de vendas. Isso resulta em uma previsão estável, mas é lento para reconhecer mudanças no nível de vendas. Por outro lado, um valor pequeno para n (como 3) é mais rápido para responder às mudanças no nível de vendas, mas a previsão pode flutuar tão amplamente que a produção não pode responder às variações. Histórico de vendas obrigatório: n mais o número de períodos de tempo necessários para avaliar o desempenho previsto (períodos de melhor ajuste). Esta tabela é uma história utilizada no cálculo da previsão: a previsão de fevereiro é igual (114 119 137 125) 4 123.75 arredondada para 124. A previsão de março é igual (119 137 125 124) 4 126.25 arredondada para 126. 3.2.5 Método 5: Aproximação linear Este método Usa a fórmula de Aproximação Linear para calcular uma tendência a partir do número de períodos de histórico de pedidos de vendas e projetar essa tendência para a previsão. Você deve recalcular a tendência mensalmente para detectar mudanças nas tendências. Este método requer o número de períodos de melhor ajuste mais o número de períodos especificados de histórico de pedidos de vendas. Este método é útil para prever a demanda por novos produtos, ou produtos com tendências positivas ou negativas consistentes que não se devem a flutuações sazonais. 3.2.5.1 Exemplo: Método 5: Aproximação linear Aproximação linear calcula uma tendência baseada em dois pontos de dados de histórico de vendas. Esses dois pontos definem uma linha de tendência direta que é projetada para o futuro. Use este método com cautela porque as previsões de longo alcance são alavancadas por pequenas mudanças em apenas dois pontos de dados. Especificações de previsão: n é igual ao ponto de dados no histórico de vendas que é comparado ao ponto de dados mais recente para identificar uma tendência. Por exemplo, especifique n 4 para usar a diferença entre dezembro (dados mais recentes) e agosto (quatro períodos antes de dezembro) como base para o cálculo da tendência. Histórico de vendas mínimo exigido: n mais 1 mais o número de períodos de tempo necessários para avaliar o desempenho da previsão (períodos de melhor ajuste). Esta tabela é história utilizada no cálculo da previsão: Previsão de janeiro em dezembro do ano passado 1 (Tendência), que equivale a 137 (1 vezes 2) 139. Previsão de fevereiro em dezembro do ano passado 1 (Tendência), que é igual a 137 (2 vezes 2) 141. Previsão de março em dezembro do ano passado 1 (Tendência), que é igual a 137 (3 vezes 2) 143. 3.2.6 Método 6: Regressão de Menos Esquemas O método de Regressão de Menos Esquemas (LSR) deriva de uma equação descrevendo uma relação linear entre os dados históricos de vendas E a passagem do tempo. LSR cabe uma linha para o intervalo selecionado de dados para que a soma dos quadrados das diferenças entre os pontos reais de dados de vendas e a linha de regressão seja minimizada. A previsão é uma projeção dessa linha direta para o futuro. Este método requer o histórico de dados de vendas para o período que é representado pelo número de períodos melhor ajustado mais o número especificado de períodos de dados históricos. O requisito mínimo é dois pontos de dados históricos. Este método é útil para prever a demanda quando uma tendência linear está nos dados. 3.2.6.1 Exemplo: Método 6: Regressão Linear de Regressão de Menores Esquemas, ou Regressão de Menos Esquemas (LSR), é o método mais popular para identificar uma tendência linear nos dados históricos de vendas. O método calcula os valores para a e b a serem utilizados na fórmula: Esta equação descreve uma linha reta, onde Y representa vendas e X representa tempo. A regressão linear é lenta para reconhecer os pontos de viragem e os turnos da função passo na demanda. A regressão linear corresponde a uma linha reta aos dados, mesmo quando os dados são sazonais ou melhor descritos por uma curva. Quando os dados do histórico de vendas seguem uma curva ou possuem um padrão sazonal forte, ocorrem preconceitos e erros sistemáticos. Especificações de previsão: n é igual ao período de histórico de vendas que será usado no cálculo dos valores para a e b. Por exemplo, especifique n 4 para usar o histórico de setembro a dezembro como base para os cálculos. Quando os dados estão disponíveis, um n maior (como n 24) normalmente seria usado. LSR define uma linha para apenas dois pontos de dados. Para este exemplo, foi escolhido um pequeno valor para n (n 4) para reduzir os cálculos manuais necessários para verificar os resultados. Histórico de vendas mínimo exigido: n períodos mais o número de períodos de tempo necessários para avaliar o desempenho previsto (períodos de melhor ajuste). Esta tabela é o histórico usado no cálculo da previsão: a previsão de março é igual a 119,5 (7 vezes 2,3) 135,6 arredondada para 136. 3.2.7 Método 7: Aproximação de segundo grau Para projetar a previsão, esse método usa a fórmula de Aproximação de Segundo Grau para traçar uma curva Isso é baseado no número de períodos de histórico de vendas. Este método requer o número de períodos melhor ajustados mais o número de períodos de histórico de pedidos de vendas vezes três. Este método não é útil para prever a demanda por um período de longo prazo. 3.2.7.1 Exemplo: Método 7: Regressão linear de aproximação de segundo grau determina valores para a e b na fórmula de previsão Y a b X com o objetivo de ajustar uma linha reta aos dados do histórico de vendas. A Aproximação do Segundo Grau é semelhante, mas este método determina valores para a, b e c na fórmula de previsão: Y a b X c X 2 O objetivo deste método é ajustar uma curva aos dados do histórico de vendas. Este método é útil quando um produto está na transição entre os estágios do ciclo de vida. Por exemplo, quando um novo produto passa da introdução para os estágios de crescimento, a tendência de vendas pode acelerar. Por causa do segundo termo da ordem, a previsão pode rapidamente se aproximar do infinito ou diminuir para zero (dependendo se o coeficiente c é positivo ou negativo). Este método é útil apenas no curto prazo. Especificações de previsão: a fórmula encontra a, b e c para ajustar uma curva para exatamente três pontos. Você especifica n, o número de períodos de tempo a serem acumulados em cada um dos três pontos. Neste exemplo, n 3. Os dados de vendas reais de abril a junho são combinados no primeiro ponto, Q1. De julho a setembro são adicionados juntos para criar Q2, e outubro e dezembro somam para o terceiro trimestre. A curva é ajustada aos três valores Q1, Q2 e Q3. Histórico de vendas obrigatório: 3 vezes n períodos para calcular a previsão, além do número de períodos de tempo necessários para avaliar o desempenho previsto (períodos de melhor ajuste). Esta tabela é história utilizada no cálculo da previsão: Q0 (Jan) (Fev) (Mar) Q1 (Abr) (Maio) (Jun), que é igual a 125 122 137 384 Q2 (Jul) (Ago) (Sep), que é igual a 140 129 131 400 Q3 (outubro) (novembro) (dezembro) que é igual a 114 119 137 370 O próximo passo envolve o cálculo dos três coeficientes a, b e c a serem usados na fórmula de previsão Y ab X c X 2. Q1, Q2 e Q3 são apresentados no gráfico, onde o tempo é plotado no eixo horizontal. Q1 representa as vendas históricas totais de abril, maio e junho e é plotado em X 1 O segundo trimestre corresponde a julho a setembro O terceiro trimestre corresponde a outubro a dezembro e o quarto trimestre representa janeiro a março. Este gráfico ilustra o traçado de Q1, Q2, Q3 e Q4 para a aproximação de segundo grau: Figura 3-2 Traçado Q1, Q2, Q3 e Q4 para aproximação de segundo grau Três equações descrevem os três pontos no gráfico: (1) Q1 Um bX cX 2 onde X 1 (Q1 abc) (2) Q2 a bX cX 2 onde X 2 (Q2 a 2b 4c) (3) Q3 a bX cX 2 em que X 3 (Q3 a 3b 9c) Resolva as três equações simultaneamente Para encontrar b, a e c: Subtrair a equação 1 (1) da equação 2 (2) e resolver para b: (2) ndash (1) Q2 ndash Q1 b 3c b (Q2 ndash Q1) ndash 3c Substitua esta equação para B na equação (3): (3) Q3 a 3 (Q2 ndash Q1) ndash 3c 9c a Q3 ndash 3 (Q2 ndash Q1) Finalmente, substitua estas equações por a e b na equação (1): (1) Q3 ndash 3 (Q2 ndash Q1) (Q2 ndash Q1) ndash 3c c Q1 c (Q3 ndash Q2) (Q1 ndash Q2) 2 O método de Aproximação do Segundo Grau calcula a, b e c da seguinte maneira: um Q3 ndash 3 (Q2 ndash Q1 ) 370 ndash 3 (400 ndash 384) 370 ndash 3 (16) 322 b (Q2 ndash Q1) ndash3c (400 nda Sh 384) ndash (3 vezes ndash23) 16 69 85 c (Q3 ndash Q2) (Q1 ndash Q2) 2 (370 ndash 400) (384 ndash 400) 2 ndash23 Este é um cálculo da previsão de aproximação de segundo grau: Y a bX cX 2 322 85X (ndash23) (X 2) Quando X 4, Q4 322 340 ndash 368 294. A previsão é igual a 294 3 98 por período. Quando X 5, Q5 322 425 ndash 575 172. A previsão é igual a 172 3 58,33 arredondada para 57 por período. Quando X 6, Q6 322 510 ndash 828 4. A previsão é igual a 4 3 1,33 arredondada para 1 por período. Esta é a previsão para o ano que vem, ano passado para este ano: 3.2.8 Método 8: Método flexível Este método permite selecionar o melhor número de períodos de histórico de pedidos de vendas que começa n meses antes da data de início da previsão e para Aplicar um aumento percentual ou diminuir o fator de multiplicação com o qual modificar a previsão. Este método é semelhante ao Método 1, Percentagem acima do último ano, exceto que você pode especificar o número de períodos que você usa como base. Dependendo do que você seleciona como n, este método requer períodos de melhor ajuste, além do número de períodos de dados de vendas indicados. Este método é útil para prever a demanda por uma tendência planejada. 3.2.8.1 Exemplo: Método 8: Método Flexível O Método Flexível (Percentagem sobre n Meses Prior) é semelhante ao Método 1, Percentagem acima do Ano passado. Ambos os métodos multiplicam os dados de vendas de um período de tempo anterior por um fator especificado por você e, em seguida, projetam esse resultado no futuro. No método Percent Over Over Year, a projeção é baseada em dados do mesmo período do ano anterior. Você também pode usar o Método Flexível para especificar um período de tempo, diferente do mesmo período do ano passado, para usar como base para os cálculos. Fator de multiplicação. Por exemplo, especifique 110 na opção de processamento para aumentar os dados do histórico de vendas anteriores em 10%. Período base. Por exemplo, n 4 faz com que a primeira previsão seja baseada em dados de vendas em setembro do ano passado. Histórico de vendas mínimo exigido: o número de períodos de retorno para o período base mais a quantidade de períodos necessários para avaliar o desempenho previsto (períodos de melhor ajuste). Esta tabela é o histórico utilizado no cálculo da previsão: 3.2.9 Método 9: Média de Movimento Ponderada A fórmula da Média Mover Ponderada é semelhante ao Método 4, fórmula de Motivo em Mudança, porque significa o histórico de vendas dos meses anteriores para projetar o histórico de vendas dos próximos meses. No entanto, com esta fórmula, você pode atribuir pesos para cada um dos períodos anteriores. Este método requer o número de períodos ponderados selecionados mais o número de períodos de melhores dados. Semelhante à média móvel, este método está atrasado nas tendências da demanda, portanto, este método não é recomendado para produtos com fortes tendências ou sazonalidade. Este método é útil para prever a demanda por produtos maduros com demanda que seja relativamente nivelada. 3.2.9.1 Exemplo: Método 9: Média móvel ponderada O método da média móvel ponderada (WMA) é semelhante ao Método 4, Média móvel (MA). No entanto, você pode atribuir pesos desiguais aos dados históricos ao usar o WMA. O método calcula uma média ponderada do histórico de vendas recente para chegar a uma projeção para o curto prazo. Os dados mais recentes geralmente são atribuídos a um peso maior do que os dados mais antigos, portanto, a WMA é mais sensível às mudanças no nível de vendas. No entanto, os preconceitos e erros sistemáticos ocorrem quando o histórico de vendas do produto exibe fortes tendências ou padrões sazonais. Este método funciona melhor para previsões de curto alcance de produtos maduros do que para produtos nos estágios de crescimento ou obsolescência do ciclo de vida. O número de períodos de histórico de vendas (n) a serem utilizados no cálculo da previsão. Por exemplo, especifique n 4 na opção de processamento para usar os quatro períodos mais recentes como base para a projeção no próximo período de tempo. Um grande valor para n (como 12) requer mais histórico de vendas. Esse valor resulta em uma previsão estável, mas é lenta reconhecer mudanças no nível de vendas. Por outro lado, um pequeno valor para n (como 3) responde mais rapidamente às mudanças no nível de vendas, mas a previsão pode flutuar tão amplamente que a produção não pode responder às variações. O número total de períodos para a opção de processamento rdquo14 - os períodos para includeerdquo não devem exceder 12 meses. O peso atribuído a cada um dos períodos de dados históricos. Os pesos atribuídos devem totalizar 1,00. Por exemplo, quando n 4, atribua pesos de 0,50, 0,25, 0,15 e 0,10, com os dados mais recentes recebendo o maior peso. Histórico de vendas mínimo exigido: n mais o número de períodos de tempo necessários para avaliar o desempenho da previsão (períodos de melhor ajuste). Esta tabela é histórico usado no cálculo da previsão: a previsão de janeiro é igual (131 vezes 0,10) (114 vezes 0,15) (119 vezes 0,25) (137 vezes 0,50) (0,10 0,15 0,25 0,50) 128,45 arredondado para 128. A previsão de fevereiro é igual (114 vezes 0.10) (119 vezes 0,15) (137 vezes 0,25) (128 vezes 0,50) 1 127,5 arredondado para 128. A previsão de março é igual (119 vezes, 0,10) (137 vezes 0,15) (128 vezes 0,25) (128 vezes 0,50) 1 128,45 arredondado para 128. 3.2.10 Método 10: Suavização linear Este método calcula uma média ponderada de dados de vendas anteriores. No cálculo, este método usa o número de períodos de histórico de pedidos de vendas (de 1 a 12) que é indicado na opção de processamento. O sistema usa uma progressão matemática para pesar os dados no intervalo desde o primeiro (menor peso) até o final (mais peso). Em seguida, o sistema projeta essas informações para cada período na previsão. Este método requer o melhor ajuste dos meses mais o histórico de pedidos de vendas para o número de períodos especificados na opção de processamento. 3.2.10.1 Exemplo: Método 10: Suavização linear Este método é semelhante ao Método 9, WMA. No entanto, em vez de atribuir arbitrariamente pesos aos dados históricos, uma fórmula é usada para atribuir pesos que diminuem linearmente e somam para 1,00. O método então calcula uma média ponderada do histórico de vendas recente para chegar a uma projeção para o curto prazo. Como todas as técnicas de previsão média móvel média, previsão de viés e erros sistemáticos ocorrem quando o histórico de vendas do produto exibe fortes tendências ou padrões sazonais. Este método funciona melhor para previsões de curto alcance de produtos maduros do que para produtos nos estágios de crescimento ou obsolescência do ciclo de vida. N é igual ao número de períodos de histórico de vendas a serem usados no cálculo da previsão. Por exemplo, especifique n igual a 4 na opção de processamento para usar os quatro períodos mais recentes como base para a projeção no próximo período de tempo. O sistema atribui automaticamente os pesos aos dados históricos que recuam linearmente e somam para 1,00. Por exemplo, quando n é igual a 4, o sistema atribui pesos de 0,4, 0,3, 0,2 e 0,1, com os dados mais recentes recebendo o maior peso. Histórico de vendas mínimo exigido: n mais o número de períodos de tempo necessários para avaliar o desempenho da previsão (períodos de melhor ajuste). Esta tabela é o histórico utilizado no cálculo da previsão: 3.2.11 Método 11: Suavização exponencial Este método calcula uma média suavizada, que se torna uma estimativa que representa o nível geral de vendas nos períodos de dados históricos selecionados. Este método requer o histórico de dados de vendas para o período de tempo que é representado pelo número de períodos melhor ajustado mais o número de períodos de dados históricos que são especificados. O requisito mínimo é dois períodos de dados históricos. Este método é útil para prever a demanda quando não há tendência linear nos dados. 3.2.11.1 Exemplo: Método 11: Suavização exponencial Este método é semelhante ao Método 10, Suavização Linear. No Linear Smoothing, o sistema atribui pesos que diminuem linearmente para os dados históricos. Em Suavização Exponencial, o sistema atribui pesos que se deterioram exponencialmente. A equação para a previsão de suavização exponencial é: Previsão alfa (Vendas reais anteriores) (1 ndashalpha) (Previsão anterior) A previsão é uma média ponderada das vendas reais do período anterior e da previsão do período anterior. Alpha é o peso aplicado às vendas reais do período anterior. (1 ndash alfa) é o peso que é aplicado à previsão do período anterior. Valores para o intervalo alfa de 0 a 1 e geralmente cai entre 0,1 e 0,4. A soma dos pesos é 1,00 (alfa (1 ndash alfa) 1). Você deve atribuir um valor para a constante de alisamento, alfa. Se você não atribuir um valor para a constante de suavização, o sistema calcula um valor assumido que é baseado no número de períodos de histórico de vendas que é especificado na opção de processamento. Alfa é igual à constante de suavização que é usada para calcular a média suavizada para o nível geral ou a magnitude das vendas. Os valores para o intervalo alfa de 0 a 1. n são iguais ao intervalo de dados do histórico de vendas para incluir nos cálculos. Geralmente, um ano de dados de histórico de vendas é suficiente para estimar o nível geral de vendas. Para este exemplo, foi escolhido um pequeno valor para n (n 4) para reduzir os cálculos manuais necessários para verificar os resultados. Suavização exponencial pode gerar uma previsão que se baseia em um ponto de dados histórico tão pouco quanto. Histórico de vendas mínimo exigido: n mais o número de períodos de tempo necessários para avaliar o desempenho da previsão (períodos de melhor ajuste). Esta tabela é o histórico utilizado no cálculo da previsão: 3.2.12 Método 12: Suavização exponencial com Tendência e Sazonalidade Este método calcula uma tendência, um índice sazonal e uma média exponencialmente suavizada do histórico de pedidos de vendas. O sistema então aplica uma projeção da tendência à previsão e ajusta o índice sazonal. Este método requer o número de períodos melhor ajustados mais dois anos de dados de vendas, e é útil para itens que têm tendência e sazonalidade na previsão. Você pode inserir o fator alfa e beta, ou fazer o cálculo deles. Os fatores Alpha e beta são a constante de suavização que o sistema usa para calcular a média suavizada para o nível geral ou magnitude das vendas (alfa) e o componente de tendência da previsão (beta). 3.2.12.1 Exemplo: Método 12: Suavização exponencial com Tendência e Sazonalidade Este método é semelhante ao Método 11, Suavização Exponencial, na medida em que uma média suavizada é calculada. No entanto, o Método 12 também inclui um termo na equação de previsão para calcular uma tendência suavizada. A previsão é composta por uma média suavizada que é ajustada para uma tendência linear. Quando especificado na opção de processamento, a previsão também é ajustada para a sazonalidade. Alpha é igual à constante de suavização que é usada no cálculo da média suavizada para o nível geral ou a magnitude das vendas. Valores para o intervalo alfa de 0 a 1. Beta é igual à constante de suavização que é usada no cálculo da média suavizada para o componente de tendência da previsão. Valores para o intervalo beta de 0 a 1. Se um índice sazonal é aplicado à previsão. Alpha e beta são independentes um do outro. Eles não precisam somar 1,0. Histórico de vendas mínimo exigido: um ano mais o número de períodos de tempo necessários para avaliar o desempenho da previsão (períodos de melhor ajuste). Quando dois ou mais anos de dados históricos estão disponíveis, o sistema usa dois anos de dados nos cálculos. O Método 12 usa duas equações de Suavização Exponencial e uma média simples para calcular uma média suavizada, uma tendência suavizada e um índice sazonal médio simples. Uma média exponencialmente suavizada: uma tendência exponencialmente suavizada: um índice sazonal médio simples: Figura 3-3 Índice Sazonal Médio Simples A previsão é então calculada usando os resultados das três equações: L é o comprimento da sazonalidade (L é igual a 12 meses ou 52 semanas). T é o período de tempo atual. M é o número de períodos de tempo no futuro da previsão. S é o fator de ajuste sazonal multiplicativo indexado ao período de tempo apropriado. Esta tabela lista o histórico utilizado no cálculo da previsão: esta seção fornece uma visão geral das avaliações de previsão e discute: você pode selecionar os métodos de previsão para gerar até 12 previsões para cada produto. Cada método de previsão pode criar uma projeção ligeiramente diferente. Quando milhares de produtos são previstos, uma decisão subjetiva é impraticável quanto à previsão a ser utilizada nos planos para cada produto. O sistema avalia automaticamente o desempenho para cada método de previsão que você selecionou e para cada produto que você preveja. Você pode selecionar entre dois critérios de desempenho: MAD e POA. MAD é uma medida de erro de previsão. POA é uma medida do viés de previsão. Ambas as técnicas de avaliação de desempenho exigem dados reais do histórico de vendas por um período especificado por você. O período de histórico recente usado para avaliação é chamado de período de espera ou período de melhor ajuste. Para medir o desempenho de um método de previsão, o sistema: usa as fórmulas de previsão para simular uma previsão para o período histórico de retenção. Faz uma comparação entre os dados de vendas reais e a previsão simulada para o período de espera. Quando você seleciona vários métodos de previsão, esse mesmo processo ocorre para cada método. As previsões múltiplas são calculadas para o período de espera e comparadas com o histórico de vendas conhecido para o mesmo período. O método de previsão que produz a melhor combinação (melhor ajuste) entre a previsão e as vendas reais durante o período de suspensão é recomendado para uso nos planos. Esta recomendação é específica para cada produto e pode mudar cada vez que você gera uma previsão. 3.3.1 Mean Absolute Deviation Mean Absolute Deviation (MAD) is the mean (or average) of the absolute values (or magnitude) of the deviations (or errors) between actual and forecast data. MAD is a measure of the average magnitude of errors to expect, given a forecasting method and data history. Because absolute values are used in the calculation, positive errors do not cancel out negative errors. When comparing several forecasting methods, the one with the smallest MAD is the most reliable for that product for that holdout period. When the forecast is unbiased and errors are normally distributed, a simple mathematical relationship exists between MAD and two other common measures of distribution, which are standard deviation and Mean Squared Error. For example: MAD (Sigma (Actual) ndash (Forecast)) n Standard Deviation, (sigma) cong 1.25 MAD Mean Squared Error cong ndashsigma2 This example indicates the calculation of MAD for two of the forecasting methods. This example assumes that you have specified in the processing option that the holdout period length (periods of best fit) is equal to five periods. 3.3.1.1 Method 1: Last Year to This Year This table is history used in the calculation of MAD, given Periods of Best Fit 5: Mean Absolute Deviation equals (2 1 20 10 14) 5 9.4. Based on these two choices, the Moving Average, n 4 method is recommended because it has the smaller MAD, 9.4, for the given holdout period. 3.3.2 Percent of Accuracy Percent of Accuracy (POA) is a measure of forecast bias. When forecasts are consistently too high, inventories accumulate and inventory costs rise. When forecasts are consistently too low, inventories are consumed and customer service declines. A forecast that is 10 units too low, then 8 units too high, then 2 units too high is an unbiased forecast. The positive error of 10 is canceled by negative errors of 8 and 2. (Error) (Actual) ndash (Forecast) When a product can be stored in inventory, and when the forecast is unbiased, a small amount of safety stock can be used to buffer the errors. In this situation, eliminating forecast errors is not as important as generating unbiased forecasts. However, in service industries, the previous situation is viewed as three errors. The service is understaffed in the first period, and then overstaffed for the next two periods. In services, the magnitude of forecast errors is usually more important than is forecast bias. POA (SigmaForecast sales during holdout period) (SigmaActual sales during holdout period) times 100 percent The summation over the holdout period enables positive errors to cancel negative errors. When the total of forecast sales exceeds the total of actual sales, the ratio is greater than 100 percent. Of course, the forecast cannot be more than 100 percent accurate. When a forecast is unbiased, the POA ratio is 100 percent. A 95 percent accuracy rate is more desirable than a 110 percent accurate rate. The POA criterion selects the forecasting method that has a POA ratio that is closest to 100 percent. This example indicates the calculation of POA for two forecasting methods. This example assumes that you have specified in the processing option that the holdout period length (periods of best fit) is equal to five periods. 3.3.2.1 Method 1: Last Year to This Year This table is history used in the calculation of MAD, given Periods of Best Fit 5: 3.4.2 Forecast Accuracy These statistical laws govern forecast accuracy: A long term forecast is less accurate than a short term forecast because the further into the future you project the forecast, the more variables can affect the forecast. A forecast for a product family tends to be more accurate than a forecast for individual members of the product family. Some errors cancel each other as the forecasts for individual items summarize into the group, thus creating a more accurate forecast. 3.4.3 Forecast Considerations You should not rely exclusively on past data to forecast future demands. These circumstances might affect the business, and require you to review and modify the forecast: New products that have no past data. Plans for future sales promotion. Changes in national and international politics. New laws and government regulations. Weather changes and natural disasters. Innovations from competition. You can use long term trend analysis to influence the design of the forecasts: Leading economic indicators. 3.4.4 Forecasting Process You use the Refresh Actuals program (R3465) to copy data from the Sales Order History File table (F42119), the Sales Order Detail File table (F4211), or both, into either the Forecast File table (F3460) or the Forecast Summary File table (F3400), depending on the kind of forecast that you plan to generate. Scripting on this page enhances content navigation, but does not change the content in any way. moving average Mean of time series data (observations equally spaced in time) from several consecutive periods. Chamado de movimento porque é continuamente recalculado à medida que novos dados ficam disponíveis, progride soltando o valor mais antigo e adicionando o valor mais recente. Por exemplo, a média móvel das vendas de seis meses pode ser calculada tomando a média das vendas de janeiro a junho, depois a média das vendas de fevereiro a julho, de março a agosto, e assim por diante. As médias móveis (1) reduzem o efeito das variações temporárias nos dados, (2) melhoram o ajuste dos dados para uma linha (um processo chamado suavização) para mostrar a tendência dos dados mais claramente e (3) realçar qualquer valor acima ou abaixo do tendência. Se você está calculando algo com variância muito alta o melhor que você pode fazer é descobrir a média móvel. Eu queria saber qual era a média móvel dos dados, então eu teria uma melhor compreensão de como estávamos fazendo. Quando você está tentando descobrir alguns números que mudam frequentemente, o melhor que você pode fazer é calcular a média móvel.
Sunday, 16 September 2018
Mudança de cruzamento duplo médio
MÉDIA DE MOVIMENTO DUPLA Enquanto os sistemas de média simples e dupla em movimento são comuns, eles são mencionados principalmente como sistemas de reversão que estão no mercado 100 do tempo. Sabemos que o mercado não se tende 100 vezes, então o exemplo do sistema de cruzamento médio em movimento duplo abaixo é configurado para desencadear uma entrada, mas nem sempre está no mercado. A versão do sistema de reversão é mencionada e testada como a média móvel dupla no Guia do Turtle and Technical Traders para Análise de Computadores do Mercado de Futuros. O sistema de cruzamento de média dupla em movimento é uma versão simplificada do sistema Donchian 5 e 20 que é mencionado e testado no Guia Dow Jones-Irwin para sistemas de negociação, no entanto, vimos outras versões do sistema Donchian 520 com regras de entrada adicionais além da Simples cruzamento de MA sozinho. LeBeau e Lucas dizem que o Donchian 520. Não é um sistema de reversão simples, mas usa um conjunto elaborado de filtros. A entrada básica do sistema de média dupla móvel é quando a linha média móvel mais rápida do cronograma cruza a linha média móvel mais lenta do timeframe. Para as médias móveis do Donchian de 5 dias e 20 dias, uma posição longa ocorre quando a média móvel de 5 dias cruza acima da média móvel de 20 dias. Uma posição curta ocorre quando a média móvel de 5 dias cruza abaixo da média móvel de 20 dias. Você pode optar por pegar a entrada assim que as linhas cruzarem ou aguardar até o preço fechar no lado da cruz. TAMANHO DE POSIÇÃO O dimensionamento de posição e a parada são as maiores mudanças a partir da versão de reversão. Bem, use uma parada e calcule o tamanho da posição usando o método de porcentagem de volatilidade, que é um risco estabelecido se for interrompido. Para o nosso exemplo, temos uma parada ATR 1.5 de 14 dias que arrisca o patrimônio da conta 2 por posição. Se uma entrada longa em 10 tiver uma parada em 8,5, 1,5 estaria em risco para cada ação se fosse uma compra de ações. Se o tamanho da conta é de 10.000 e o risco por posição é 2, seu risco seria 200. O 200 (10.000 2) dividido por 1.50 (do valor ATR se a parada for atingida) seria uma posição de 133 ações. Calcule o tamanho da posição tomando seu risco e dividindo-o pelo valor do movimento até a parada. Juntamente com o cálculo do tamanho da posição, use um múltiplo do ATR como parada. Um exemplo é usar um ATR de 14 dias multiplicado por 1,5 e, assim, adicionar números a ele. Se você tiver um estoque que você inseriu em 10 e o ATR de 14 dias é 1, você seria impedido de uma posição longa às 8.50. Uma posição curta seria interrompida às 11h50. As versões de reversão esperam até que as linhas de média móvel atravessem o outro lado, mas, dependendo dos seus prazos, você pode ter um atraso significativo que dá grande parte do lucro das tendências. Uma saída mais apertada, como o preço que atinge uma SAR Parabólica, uma ruptura de um canal de preço ou a interrupção de outra linha média móvel pode ser uma alternativa melhor para o seu sistema. VARIÁRIOS Para evitar alguns whipsaws quando o mercado está tendendo de lado, você pode adicionar filtragem adicional, como ADX, Stochastics ou RSI. Se você estiver usando prazos mais lentos, as médias móveis irão atrasar a ação de preço, de modo que um filtro adicional para compensar pode ser um novo preço alto antes de uma posição longa ou um novo preço baixo antes de uma posição curta. MAIS DETALHES Uma pesquisa na internet irá encontrar muitas páginas relacionadas a este sistema. Você também pode encontrá-lo nos três livros mencionados acima com resultados de testes e compará-lo com outros sistemas. Way of the Turtle usa-o como um sistema de longo prazo com linhas de 100 dias e 350 dias. Guia Técnico de Comerciantes de Análise de Computadores do Futures Market e The Dow Jones-Irwin Guide To Trading Systems usá-lo com as linhas de 5 dias e 20 dias. Copie 2017 GTV HOLDINGS, LLC. TODOS OS DIREITOS RESERVADOS. Sobre nós Contate-nos VOCE ASSUME TODOS OS RISCOS ASSOCIADOS COM DECISÕES DE INVESTIMENTO FEITAS NA BASE DE INFORMAÇÕES CONTIDAS NESTE SITE. A NEGOCIAÇÃO É ESPECIAL NA NATUREZA E NÃO É APROPRIADA PARA TODOS OS INVESTIDORES. Os INVESTIDORES NÃO DEVEM UTILIZAR USO DO CAPITAL DE RISCO QUE ESTÃO PREPARADOS PARA PERDER, COMO SEMPRE EXISTE O RISCO DE PERDA SUBSTANCIAL. Os INVESTIDORES DEVEM EXAMINAR TOTALMENTE A SITUAÇÃO FINANCEIRA PESSOAL ANTES DE TRADING. OS SISTEMAS NESTE SITE SÃO EXEMPLOS EDUCATIVOS E NÃO SÃO RECOMENDAÇÕES PARA COMPRAR OU VENDER. PERFEIO PASSO NÃO GARANTIA RESULTADOS FUTUROS. OANDA usa cookies para tornar nossos sites fáceis de usar e personalizados para nossos visitantes. Os cookies não podem ser usados para identificá-lo pessoalmente. Ao visitar o nosso site, você aceita o uso de cookies da OANDA8217 de acordo com nossa Política de Privacidade. Para bloquear, excluir ou gerenciar cookies, visite aboutcookies. org. A restrição de cookies impedirá que você se beneficie de algumas das funcionalidades do nosso site. Baixe o nosso Mobile Apps Select conta: ampltiframe src4489469.fls. doubleclick. netactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 mcesrc4489469.fls. doubleclick. netactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 width1 height1 frameborder0 styledisplay: nenhum mcestyledisplay: Lição 1 noneampgtampltiframeampgt: Médias Móveis Interpretação Movendo Sinais média móvel médias fornecer dados para a direção geral e impulso De um par de moedas. Como as médias móveis são fáceis de aplicar, elas são freqüentemente usadas em conjunto com outros indicadores para confirmar uma direção do mercado. Sinal de venda de movimento móvel único Um sinal de venda é indicado quando a taxa de localização cruza sob a média móvel. Isso sugere que o preço do mercado está perdendo força e está sendo insuficiente quando comparado à média móvel. Símbolo único de movimento e sinal de venda de taxa pontual No gráfico acima, observe onde a taxa spot atinge a média móvel 8211, este é um sinal de venda clássico. O fato de que o padrão de gráfico de dupla face ocorre em aproximadamente o mesmo ponto, reforça o nível como uma oportunidade de venda provável. Este é realmente o caso, uma vez que a taxa no local sofre um declínio pronunciado pouco depois do cruzamento inicial. Para obter mais informações sobre os padrões do gráfico de preços, incluindo padrões de topo e de cabeça e ombros, consulte Reconhecendo o gráfico de barras e os padrões de gráfico de linha na Lição 6 de Introdução à negociação de moeda. Sinal único de compra média simples Quando a taxa spot ultrapassa a média móvel, essa é uma indicação de que a taxa spot é tendencial para cima, pois está aumentando a uma taxa mais rápida do que a média móvel. Por esta razão, isso geralmente é visto como uma potencial oportunidade de compra. Mais uma vez, é aconselhável confirmar a análise 8211 neste caso, o padrão inverso de cabeça e ombros (como visto no quadro abaixo) é um sinal de reversão de taxa comum: Média móvel única e sinal de compra de taxa pontual Ao usar a taxa spot e a média móvel Através dos sinais comerciais, é importante ter em mente dois pontos. Dependendo da volatilidade do mercado, os cross overs podem ser extremamente pouco confiáveis, pelo que é aconselhável solicitar confirmação adicional antes de atuar. Nos exemplos de compra e venda que examinamos aqui, a formação de um padrão duplo e reverso de cabeça e ombros ajudou a confirmar a direção do mercado. O número de períodos de relatório incluídos no cálculo da média móvel pode ter um tremendo efeito sobre a média móvel. A regra básica a lembrar é que quanto menor for o número de períodos de relatório, quanto mais a média permanecerá com a taxa local. Sinais Produzidos por Várias Transversais Médias Moventes Os comerciantes geralmente colocam várias médias móveis no mesmo gráfico de preços. Normalmente, uma das médias móveis será designada como a média móvel mais rápida consistindo em menos pontos de dados, e uma será uma média de movimentação mais lenta. Por definição, a média móvel mais rápida será mais volátil do que a média móvel mais lenta. Isso é demonstrado no seguinte gráfico de preços de 1 dia que foi modificado para incluir duas médias móveis: a média rápida é calculada a partir de apenas sete dias de dados. A média de movimentação lenta é baseada em trinta dias de dados completos: Médias móveis rápidas e rápidas mostrando sinais de cruzamento A média móvel com menos pontos de dados (a média rápida) responde mais rapidamente a uma mudança na taxa de pontos. Se a média de movimento rápido cruza acima da média móvel mais lenta, é considerado um sinal de compra. Quando a média móvel mais rápida passa abaixo da média móvel mais lenta, é considerado um sinal de venda. Médias móveis rápidas e rápidas mostrando com a média móvel muito lenta No nosso exemplo, incluímos apenas duas médias móveis para manter a confusão ao mínimo, mas, na prática, você pode ter tantas médias móveis de velocidade variável como quiser. Além de uma média rápida e mais lenta, alguns comerciantes gostam de adicionar uma média móvel muito lenta, pois isso remove quase todas as flutuações e mostra a direção global, a longo prazo do mercado. Por exemplo, no seguinte gráfico de um dia, há uma média móvel de uma semana (média móvel rápida), uma média móvel de um mês (média lenta) e uma média móvel de seis meses (média móvel muito lenta): 169 1996 - 2017 OANDA Corporation. Todos os direitos reservados. A família de marcas OANDA, fxTrade e OANDAs fx são de propriedade da OANDA Corporation. Todas as outras marcas registradas que aparecem neste site são propriedade de seus respectivos proprietários. A negociação com alavancagem em contratos de moeda estrangeira ou outros produtos off-exchange na margem traz um alto nível de risco e pode não ser adequado para todos. Recomendamos que você considere cuidadosamente se o comércio é apropriado para você à luz de suas circunstâncias pessoais. Você pode perder mais do que você investir. As informações sobre este site são de natureza geral. Recomendamos que você procure conselhos financeiros independentes e assegure-se de compreender plenamente os riscos envolvidos antes da negociação. Negociar através de uma plataforma online traz riscos adicionais. Consulte aqui nossa seção legal. As apostas de propagação financeira estão disponíveis apenas para os clientes da OANDA Europe Ltd que residem no Reino Unido ou na República da Irlanda. CFDs, capacidades de cobertura MT4 e rácios de alavancagem superiores a 50: 1 não estão disponíveis para residentes dos EUA. A informação neste site não é dirigida a residentes em países onde sua distribuição ou uso por qualquer pessoa seria contrária à legislação ou regulamentação local. A OANDA Corporation é uma negociante de câmbio mercantil e varejista registrada da Comissão de Futuros com a Commodity Futures Trading Commission e é membro da National Futures Association. Não: 0325821. Por favor, consulte a NFA FOREX INVESTOR ALERT, onde apropriado. OANDA (Canadá) Corporation As contas ULC estão disponíveis para qualquer pessoa com uma conta bancária canadense. OANDA (Canadá) Corporation A ULC é regulada pela Organização Reguladora do Indústria do Investimento do Canadá (OCRCVM), que inclui o banco de dados do conselheiro on-line da IIROCs (Relatório do conselheiro da IIROC) e as contas dos clientes são protegidas pelo Fundo Canadense de Proteção ao Investidor dentro dos limites especificados. Uma brochura que descreve a natureza e os limites da cobertura está disponível mediante solicitação ou em cipf. ca. A OANDA Europe Limited é uma empresa registrada na Inglaterra número 7110087, e tem sua sede no Floor 9a, Tower 42, 25 Old Broad St, Londres EC2N 1HQ. É autorizado e regulado pela Autoridade de Conduta Financeira160. Não: 542574. OANDA Asia Pacific Pte Ltd (Co. Reg. No 200704926K) possui uma Licença de Serviços de Mercados de Capitais emitida pela Autoridade Monetária de Singapura e também é licenciada pela International Enterprise Singapore. A OANDA Australia Pty Ltd 160 é regulada pela Comissão de Valores Mobiliários e Investimentos da ASIC (ABN 26 152 088 349, AFSL nº 412981) e é o emissor dos produtos e / ou serviços neste site. É importante para você considerar o atual Guia de Serviços Financeiros (FSG). Declaração de divulgação do produto (PDS). Termos de conta e outros documentos OANDA relevantes antes de tomar decisões de investimento financeiro. Estes documentos podem ser encontrados aqui. OANDA Japan Co. Ltd. Primeiro Diretor de Negócios Financeiros de Tipo I do Kanto Local Financial Bureau (Kin-sho) Nº 2137 do Instituto de Futuros Financeiros número 1571. Negociação FX e CFDs na margem é de alto risco e não é adequado para todos. As perdas podem exceder o investimento. Médias migratórias - Médias móveis simples e exponentes - Introdução simples e exponencial As médias móveis suavizam os dados do preço para formar um indicador de tendência seguinte. Eles não prevêem a direção do preço, mas sim definem a direção atual com um atraso. As médias móveis são desactualizadas porque se baseiam em preços passados. Apesar deste atraso, as médias móveis ajudam a melhorar a ação do preço e a eliminar o ruído. Eles também formam os blocos de construção para muitos outros indicadores técnicos e sobreposições, como Bollinger Bands. MACD e o McClellan Oscillator. Os dois tipos mais populares de médias móveis são a média móvel simples (SMA) e a média móvel exponencial (EMA). Essas médias móveis podem ser usadas para identificar a direção da tendência ou definir níveis potenciais de suporte e resistência. Aqui é um gráfico com um SMA e um EMA nele: Cálculo da média móvel simples Uma média móvel simples é formada calculando o preço médio de uma garantia em um período específico de períodos. A maioria das médias móveis baseia-se nos preços de fechamento. Uma média móvel simples de 5 dias é a soma de cinco dias de preços de fechamento dividida por cinco. Como o próprio nome indica, uma média móvel é uma média que se move. Os dados antigos são descartados à medida que novos dados estão disponíveis. Isso faz com que a média se mova ao longo da escala de tempo. Abaixo está um exemplo de uma média móvel de 5 dias evoluindo ao longo de três dias. O primeiro dia da média móvel cobre os últimos cinco dias. O segundo dia da média móvel diminui o primeiro ponto de dados (11) e adiciona o novo ponto de dados (16). O terceiro dia da média móvel continua diminuindo o primeiro ponto de dados (12) e adicionando o novo ponto de dados (17). No exemplo acima, os preços aumentam gradualmente de 11 para 17 durante um total de sete dias. Observe que a média móvel também aumenta de 13 para 15 durante um período de cálculo de três dias. Observe também que cada valor médio móvel está abaixo do último preço. Por exemplo, a média móvel para o dia 1 é igual a 13 e o último preço é 15. Os preços nos quatro dias anteriores foram menores e isso faz com que a média móvel atinja. Cálculo médio exponencial da movimentação As médias móveis exponentes reduzem o atraso aplicando mais peso aos preços recentes. A ponderação aplicada ao preço mais recente depende do número de períodos na média móvel. Existem três etapas para calcular uma média móvel exponencial. Primeiro, calcule a média móvel simples. Uma média móvel exponencial (EMA) tem que começar em algum lugar, de modo que uma média móvel simples é usada como EMA do período anterior em o primeiro cálculo. Em segundo lugar, calcule o multiplicador de ponderação. Em terceiro lugar, calcule a média móvel exponencial. A fórmula abaixo é para uma EMA de 10 dias. Uma média móvel exponencial de 10 períodos aplica uma ponderação de 18,18 para o preço mais recente. Um EMA de 10 períodos também pode ser chamado de 18.18 EMA. Uma EMA de 20 períodos aplica uma pesagem de 9,52 ao preço mais recente (2 (201) .0952). Observe que a ponderação para o período de tempo mais curto é maior do que a ponderação para o período de tempo mais longo. Na verdade, a ponderação cai pela metade cada vez que o tempo médio móvel dobra. Se você quiser uma porcentagem específica para um EMA, você pode usar essa fórmula para convertê-la em períodos de tempo e, em seguida, insira esse valor como o parâmetro EMA039s: abaixo é um exemplo de planilha de uma média móvel simples de 10 dias e um 10- Média móvel exponencial do dia para a Intel. As médias móveis simples são diretas e requerem pouca explicação. A média de 10 dias simplesmente se move à medida que novos preços se tornam disponíveis e os preços antigos caem. A média móvel exponencial começa com o valor médio móvel simples (22.22) no primeiro cálculo. Após o primeiro cálculo, a fórmula normal assume o controle. Como um EMA começa com uma média móvel simples, seu valor verdadeiro não será realizado até 20 ou mais períodos mais tarde. Em outras palavras, o valor na planilha do Excel pode diferir do valor do gráfico devido ao curto período de visualização. Esta planilha apenas remonta a 30 períodos, o que significa que o efeito da média móvel simples teve 20 períodos para se dissipar. StockCharts remonta pelo menos 250 períodos (geralmente muito mais) para os seus cálculos, de modo que os efeitos da média móvel simples no primeiro cálculo foram totalmente dissipados. O Factor de Lag. Quanto maior a média móvel, mais o atraso. Uma média móvel exponencial de 10 dias irá reduzir os preços de forma bastante próxima e virar-se pouco depois que os preços se transformarem. As médias de curto movimento são como barcos de velocidade - ágeis e rápidos de mudar. Em contraste, uma média móvel de 100 dias contém muitos dados passados que o retardam. As médias móveis mais longas são como os petroleiros do oceano - letárgicos e lentos para mudar. É necessário um movimento de preços maior e mais longo para uma média móvel de 100 dias para mudar de curso. O gráfico acima mostra o ETF SampP 500 com um EMA de 10 dias seguindo os preços e uma moagem de SMA de 100 dias mais alta. Mesmo com o declínio de janeiro a fevereiro, o SMA de 100 dias manteve o curso e não recusou. O SMA de 50 dias se encaixa em algum lugar entre as médias móveis de 10 a 100 dias quando se trata do fator de atraso. Médias móveis simples e exponentes Mesmo que existam diferenças claras entre as médias móveis simples e as médias móveis exponenciais, uma não é necessariamente melhor do que a outra. As médias móveis exponentes têm menos atraso e, portanto, são mais sensíveis aos preços recentes - e as recentes mudanças nos preços. As médias móveis exponentes virarão antes das médias móveis simples. As médias móveis simples, por outro lado, representam uma verdadeira média de preços durante todo o período de tempo. Como tal, as médias móveis simples podem ser mais adequadas para identificar níveis de suporte ou resistência. A preferência média móvel depende dos objetivos, do estilo analítico e do horizonte temporal. Os cartistas devem experimentar com os dois tipos de médias móveis, bem como diferentes prazos para encontrar o melhor ajuste. O gráfico abaixo mostra a IBM com o SMA de 50 dias em vermelho e a EMA de 50 dias em verde. Ambos atingiram o pico no final de janeiro, mas o declínio no EMA foi mais acentuado do que o declínio no SMA. O EMA apareceu em meados de fevereiro, mas a SMA continuou abaixo até o final de março. Observe que o SMA apareceu mais de um mês após o EMA. Comprimentos e prazos O comprimento da média móvel depende dos objetivos analíticos. As médias de curto movimento (5-20 períodos) são mais adequadas para tendências e negociações de curto prazo. Chartists interessados em tendências de médio prazo optaram por médias móveis mais longas que poderiam prolongar 20-60 períodos. Os investidores de longo prazo preferirão as médias móveis com 100 ou mais períodos. Alguns comprimentos médios móveis são mais populares do que outros. A média móvel de 200 dias é talvez a mais popular. Por causa de seu comprimento, esta é claramente uma média móvel de longo prazo. Em seguida, a média móvel de 50 dias é bastante popular para a tendência de médio prazo. Muitos cartéescos usam as médias móveis de 50 dias e 200 dias juntos. A curto prazo, uma média móvel de 10 dias era bastante popular no passado porque era fácil de calcular. Simplesmente adicionou os números e moveu o ponto decimal. Identificação da tendência Os mesmos sinais podem ser gerados usando médias móveis simples ou exponenciais. Conforme mencionado acima, a preferência depende de cada indivíduo. Estes exemplos abaixo usarão médias móveis simples e exponenciais. O termo média móvel aplica-se a médias móveis simples e exponenciais. A direção da média móvel transmite informações importantes sobre os preços. Uma média móvel ascendente mostra que os preços geralmente aumentam. Uma média decrescente indica que os preços, em média, estão caindo. Uma média móvel crescente a longo prazo reflete uma tendência de alta de longo prazo. Uma média móvel decrescente a longo prazo reflete uma tendência de baixa de longo prazo. O gráfico acima mostra 3M (MMM) com uma média móvel exponencial de 150 dias. Este exemplo mostra o quão bem as médias móveis funcionam quando a tendência é forte. A EMA de 150 dias desistiu em novembro de 2007 e novamente em janeiro de 2008. Observe que demorou 15 para reverter a direção dessa média móvel. Esses indicadores de atraso identificam inversões de tendência à medida que ocorrem (na melhor das hipóteses) ou após ocorrerem (na pior das hipóteses). O MMM continuou abaixo em março de 2009 e passou de 40 a 50. Observe que o EMA de 150 dias não apareceu até depois desse aumento. Uma vez que fez, no entanto, MMM continuou mais alto nos próximos 12 meses. As médias móveis funcionam de forma brilhante em fortes tendências. Crossovers duplos Duas médias móveis podem ser usadas em conjunto para gerar sinais cruzados. Na Análise Técnica dos Mercados Financeiros. John Murphy chama isso de método de cruzamento duplo. Os cruzamentos duplos envolvem uma média móvel relativamente curta e uma média móvel relativamente longa. Tal como acontece com todas as médias móveis, o comprimento geral da média móvel define o prazo para o sistema. Um sistema que utilize um EMA de 5 dias e EMA de 35 dias seria considerado de curto prazo. Um sistema que usa SMA de 50 dias e SMA de 200 dias seria considerado de médio prazo, talvez até de longo prazo. Um cruzamento de alta ocorre quando a média móvel mais curta cruza acima da média móvel mais longa. Isso também é conhecido como uma cruz dourada. Um cruzamento de baixa ocorre quando a média móvel mais curta passa abaixo da média móvel mais longa. Isso é conhecido como uma cruz morta. Os fluxos médios móveis produzem sinais relativamente atrasados. Afinal, o sistema emprega dois indicadores de atraso. Quanto mais longos os períodos médios móveis, maior o atraso nos sinais. Esses sinais funcionam bem quando uma boa tendência se apodera. No entanto, um sistema de cruzamento médio móvel produzirá muitos whipsaws na ausência de uma forte tendência. Há também um método de cruzamento triplo que envolve três médias móveis. Novamente, um sinal é gerado quando a média móvel mais curta cruza as duas médias móveis mais longas. Um simples sistema de cruzamento triplo pode envolver médias móveis de 5 dias, 10 dias e 20 dias. O gráfico acima mostra Home Depot (HD) com EMA de 10 dias (linha pontilhada verde) e EMA de 50 dias (linha vermelha). A linha preta é o fechamento diário. O uso de um crossover médio móvel resultaria em três whipsaws antes de pegar um bom comércio. A EMA de 10 dias quebrou abaixo da EMA de 50 dias no final de outubro (1), mas isso não durou tanto quanto os 10 dias se movimentaram atrás em meados de novembro (2). Esta cruz durou mais tempo, mas o próximo cruzamento de baixa em janeiro (3) ocorreu perto dos níveis de preços finais de novembro, resultando em outro whipsaw. Esta cruz descendente não durou tanto quanto a EMA de 10 dias voltou atrás dos 50 dias alguns dias depois (4). Depois de três sinais negativos, o quarto sinal anunciou um forte movimento, já que o estoque avançou acima de 20. Há duas coisas para levar aqui. Primeiro, os cruzamentos são propensos a whipsaw. Um filtro de preço ou tempo pode ser aplicado para ajudar a evitar whipsaws. Os comerciantes podem exigir que o crossover durar 3 dias antes de atuar ou exigir que a EMA de 10 dias se mova acima da EMA de 50 dias por uma certa quantidade antes de agir. Em segundo lugar, o MACD pode ser usado para identificar e quantificar esses cruzamentos. MACD (10,50,1) mostrará uma linha que representa a diferença entre as duas médias móveis exponenciais. O MACD fica positivo durante uma cruz dourada e negativo durante uma cruz morta. O Percentage Price Oscillator (PPO) pode ser usado da mesma maneira para mostrar diferenças percentuais. Note-se que o MACD e o PPO são baseados em médias móveis exponenciais e não combinam com médias móveis simples. Este gráfico mostra Oracle (ORCL) com EMA de 50 dias, EMA de 200 dias e MACD (50.200,1). Havia quatro passagens médias móveis ao longo de um período de 2 12 anos. Os três primeiros resultaram em chicotes ou malfeitos. Uma tendência sustentada começou com o quarto crossover como a ORCL avançou até meados dos anos 20. Mais uma vez, os cruzamentos médios móveis funcionam bem quando a tendência é forte, mas produzem perdas na ausência de uma tendência. Crossovers de preços As médias móveis também podem ser usadas para gerar sinais com crossovers de preços simples. Um sinal de alta é gerado quando os preços se movem acima da média móvel. Um sinal de baixa é gerado quando os preços se movem abaixo da média móvel. Os cruzamentos de preços podem ser combinados para negociar dentro da tendência maior. A média móvel mais longa define o tom para a tendência maior e a média móvel mais curta é usada para gerar os sinais. Um seria procurar cruzes de preços otimistas somente quando os preços já estão acima da média móvel mais longa. Isso seria negociado em harmonia com a maior tendência. Por exemplo, se o preço estiver acima da média móvel de 200 dias, os chartists só se concentrarão em sinais quando o preço se mova acima da média móvel de 50 dias. Obviamente, um movimento abaixo da média móvel de 50 dias precederia esse sinal, mas esses cruzamentos mais baixos seriam ignorados porque a maior tendência é maior. Uma cruz grosseira simplesmente sugeriria uma retração dentro de uma maior tendência de alta. Uma cruzada acima da média móvel de 50 dias indicaria uma recuperação dos preços e a continuação da maior tendência de alta. O próximo gráfico mostra Emerson Electric (EMR) com EMA de 50 dias e EMA de 200 dias. O estoque moveu-se acima e manteve-se acima da média móvel de 200 dias em agosto. Havia mergulhos abaixo da EMA de 50 dias no início de novembro e novamente no início de fevereiro. Os preços rapidamente se movimentaram atrás do EMA de 50 dias para fornecer sinais de alta (setas verdes) em harmonia com a maior tendência de alta. MACD (1,50,1) é mostrado na janela do indicador para confirmar cruzamentos de preços acima ou abaixo do EMA de 50 dias. A EMA de 1 dia é igual ao preço de fechamento. MACD (1,50,1) é positivo quando o fechamento está acima da EMA de 50 dias e negativo quando o fechamento está abaixo da EMA de 50 dias. Suporte e resistência As médias móveis também podem atuar como suporte em uma tendência de alta e resistência em uma tendência de baixa. Uma tendência de alta de curto prazo pode encontrar suporte perto da média móvel simples de 20 dias, que também é usada em Bandas de Bollinger. Uma tendência de alta de longo prazo pode encontrar suporte perto da média móvel simples de 200 dias, que é a média móvel mais popular a longo prazo. De fato, a média móvel de 200 dias pode oferecer suporte ou resistência simplesmente porque é tão amplamente utilizada. É quase como uma profecia auto-realizável. O gráfico acima mostra o NY Composite com a média móvel simples de 200 dias de meados de 2004 até o final de 2008. Os 200 dias forneceram várias vezes durante o avanço. Uma vez que a tendência invertida com uma quebra de suporte de topo duplo, a média móvel de 200 dias atuou como resistência em torno de 9500. Não espere um suporte exato e níveis de resistência a partir de médias móveis, especialmente médias móveis mais longas. Os mercados são impulsionados pela emoção, o que os torna propensos a superar. Em vez de níveis exatos, as médias móveis podem ser usadas para identificar zonas de suporte ou de resistência. Conclusões As vantagens de usar médias móveis precisam ser ponderadas contra as desvantagens. As médias em movimento são indicadores de tendência, ou atraso, indicadores que sempre estarão um passo atrás. Isso não é necessariamente uma coisa ruim. Afinal, a tendência é sua amiga e é melhor negociar na direção da tendência. As médias móveis asseguram que um comerciante esteja em linha com a tendência atual. Embora a tendência seja sua amiga, os títulos gastam uma grande quantidade de tempo nas gamas de negociação, o que torna as médias móveis ineficazes. Uma vez em uma tendência, as médias móveis o manterão, mas também darão sinais tardios. Don039t espera vender no topo e comprar no fundo usando médias móveis. Tal como acontece com a maioria das ferramentas de análise técnica, as médias móveis não devem ser usadas por conta própria, mas em conjunto com outras ferramentas complementares. Os cartistas podem usar médias móveis para definir a tendência geral e, em seguida, usar RSI para definir níveis de sobrecompra ou sobrevenda. Adicionando médias móveis para gráficos de ações A média móvel está disponível como um recurso de sobreposição de preços no banco de trabalho SharpCharts. Usando o menu suspenso Overlays, os usuários podem escolher uma média móvel simples ou uma média móvel exponencial. O primeiro parâmetro é usado para definir o número de períodos de tempo. Um parâmetro opcional pode ser adicionado para especificar qual campo de preço deve ser usado nos cálculos - O para Open, H para High, L para Low e C para o Close. Uma vírgula é usada para separar os parâmetros. Outro parâmetro opcional pode ser adicionado para mudar as médias móveis para o lado esquerdo (passado) ou para a direita (futuro). Um número negativo (-10) deslocaria a média móvel para os 10 períodos esquerdos. Um número positivo (10) deslocaria a média móvel para os 10 períodos certos. Várias médias móveis podem ser sobrepostas ao gráfico de preços, simplesmente adicionando outra linha de sobreposição ao banco de trabalho. Os membros do StockCharts podem alterar as cores e o estilo para diferenciar entre médias móveis múltiplas. Depois de selecionar um indicador, abra Opções avançadas clicando no pequeno triângulo verde. Opções avançadas também podem ser usadas para adicionar uma sobreposição média móvel a outros indicadores técnicos como RSI, CCI e Volume. Clique aqui para obter um gráfico ao vivo com várias médias móveis diferentes. Usando Médias em Movimento com Análises de StockCharts Aqui estão algumas varreduras de amostra que os membros do StockCharts podem usar para escanear várias situações de média móvel: Cruzada média movimentada de Bullish: Esta varredura procura ações com uma média móvel crescente de 150 dias e uma cruz de alta dos 5 EMA EMA e EMA de 35 dias. A média móvel de 150 dias está aumentando, desde que esteja negociando acima do nível cinco dias atrás. Uma cruz de alta ocorre quando o EMA de 5 dias se move acima do EMA de 35 dias no volume acima da média. Croácia média baixa de Bearish: esta pesquisa procura ações com uma média móvel decrescente de 150 dias e uma cruz descendente da EMA de 5 dias e EMA de 35 dias. A média móvel de 150 dias está caindo enquanto estiver negociando abaixo do nível cinco dias atrás. Uma cruz descendente ocorre quando a EMA de 5 dias se move abaixo da EMA de 35 dias no volume acima da média. Estudo adicional O livro de John Murphy039 tem um capítulo dedicado às médias móveis e seus vários usos. Murphy cobre os prós e contras das médias móveis. Além disso, Murphy mostra como as médias móveis funcionam com bandas Bollinger e sistemas de negociação baseados em canais. Análise Técnica dos Mercados Financeiros John Murphy