вторник, 1 мая 2018 г.

Script po forex


BETTER_YZGraphOnLine - script para o MetaTrader 4.
YURAZ baseado em um roteiro de Igor Kim.
O script visualiza as ofertas no gráfico de maneira conveniente. Ele foi usado na análise ao escrever o artigo "Revisão dos participantes por Yuriy Zaytsev (YuraZ)".
É útil para analisar a negociação de um EA ou um comerciante, o investidor pode avaliar facilmente o trabalho do trader.
BETTER_YZGraphOnLine. MQ4 - para uma tela preta. BETTER_YZGraphOnLine_W. MQ4 - para uma tela brilhante, sem outras diferenças.
Traduzido do russo por MetaQuotes Software Corp.

Script po forex
Este é um Expert Advisor (+ indicador) para fazer o download do histórico de cotações do símbolo atual e do TF.
Gera um número aleatório, e se esse número for par, ele vai comprar, se for estranho - ele vai vender.
Simples painel de comércio de um clique, normalmente útil para cambistas e day traders.
Este robô otimiza os valores que usa para sobrecompra e sobrevenda com base no que seria lucrativo durante os períodos de otimização (barras). Usando a estratégia de venda quando o indicador de índice cruza abaixo de sobrecomprado e comprando quando o indicador de índice cruza acima de sobrevendido.
Utiliza a análise de 4 indicadores.
Não é realmente lucrativo, mas o código cabe em uma página.
As funções incluídas neste modelo usam duas fontes de notícias - Investing e Dailyfx. O modelo não usa DLL.
O exemplo de implementação de hedge em várias moedas em um único gráfico no Metatrader 4.
Expert Advisor para a pirâmide em movimentos de mercado grandes e rápidos.
Colocação automática de ordem pendente Buy Stop e Sell Stop pendente simultaneamente, Stop Losses e Take Profits nos níveis especificados pelo usuário. Assim que a posição comprada (COMPRA) é aberta quando o preço ASK ultrapassa os níveis, a ordem pendente restante (SELLSTOP) é ​​eliminada. Vice-versa, se a posição curta (SELL) for aberta quando o preço do BID cruzar os níveis, a ordem pendente restante (BUYSTOP) será excluída. Coloca novamente os dois pedidos pendentes após o fechamento do pedido.
Use a Teoria do Caos para negociar!
O EA usando Perceptron de camada única.
Abra dois botões em um gráfico, um para fechar todos os shorts, um para fechar todos os longos. Os rótulos dos botões exibem o lucro total atual para cada tipo de pedido.
Armazena e implementa um sistema básico de Stop Loss e Take Profit.
Um EA simples baseado no indicador Tipu Trend e no indicador Tipu Stops.
Teste ChartEvent é um exemplo que demonstra os vários tipos de ChartEvent: eventos de teclas do teclado, clique do mouse & amp; mover eventos, eventos personalizados. O código fonte funciona tanto no MetaTrader 4 quanto no MetaTrader 5.
Trailing stop permite proteger automaticamente os lucros com suas posições. Ajusta-se de acordo com a taxa de mercado atual e a quantidade de pips que você dá para ficar atrás.
Este EA abre operações de Compra ou Venda no par mais forte ou mais fraco. Não pode ser backtested.
Este especialista irá copiar uma negociação com o volume predefinido na mesma conta, pode ser usado com um sinal. Nenhuma funcionalidade de várias contas.
Exemplo de Heiken Ashi usando o Multi Time Frame (MTF).
Este EA abre uma grade de Buy Stops e Sell Stops a uma distância especificada do preço. Tem Stop Loss, Take Profit e Trailing Stop.
O Bot adequado é para quem gosta de negociação estilo Martingale. Características: Stop Loss, Take Profit, Funções Trailing Stop Loss. Todos são calculados em pontos.
Small Expert, que envia uma notificação por e-mail sobre o último pedido aberto e fechado.
Expert Advisor que negocia breakouts em vários pares durante a London Session.
Exemplo de um simples robô de negociação de fuga. Existem muitos métodos de fuga, mas este é o mais simples, como eu penso. Por favor, veja as imagens em anexo para visualizar o que é a negociação de fuga.
Expert Advisor para negociar cruzamentos ienes com base em pares principais e divergência / convergência USDJPY.
Exemplo de código do MACD automatizado com função avançada de gerenciamento de dinheiro.
Os mesmos EA que foram lançados anteriormente. O código adicional permite ao usuário definir parâmetros no RSI e no Momentum.
Um EA totalmente baseado no sistema Ichimoku Kinko Hyo.
Modelo EA que baixa notícias sem o uso de DLL.
O Expert Advisor que move o stop loss para breakeven após atingir determinado lucro.
O Expert Advisor que executa o rastreamento de pedidos após atingir determinado lucro.
O Expert Advisor é projetado para colocar grades de gerenciamento.
Vende no cruzamento para baixo de 70, compra no cruzamento ascendente de 30.
O Expert Advisor coloca pedidos com limite pendentes na distância especificada do preço e os acompanha após o preço com a etapa especificada, aplica-se o martingale.
O Expert Advisor abre posições depois que o preço passa pela distância especificada. 1 passo acima - vende, 1 passo abaixo - compra.
O Expert Advisor SAW_system_1 coloca pedidos pendentes com base na volatilidade dos últimos N dias.
Um exemplo de criação de um painel de negociação usando a biblioteca MasterWindows.
Após uma perda, o EA abre pedidos com níveis de parada aumentados pelo coeficiente.
Grade de Martingale EA. A idéia principal do EA não está em entradas precisas, mas em plotagem flexível de grades.

Script po forex
M T 4 S c r i p t s & amp; I n d i c a r os.
Os scripts e indicadores descritos abaixo tornam sua vida comercial um pouco mais fácil. Quando você precisa fazer algo rapidamente, basta soltar um script no gráfico. Em alguns casos, um script permite fazer algo que você não faria, como criar um pedido com um número mágico atribuído a ele.
Os scripts & amp; Os indicadores são gratuitos.
Esse script incluirá o preço atual ou um preço especificado com um a três níveis de pedidos de compra e venda pendentes. Funciona muito bem para fugas de canais e notícias - basta ativá-lo alguns segundos antes do anúncio. (Veja o manual.)
Basta soltar esse script em um gráfico e todos os pedidos para essa moeda serão fechados e, em seguida, reabertos na direção oposta, mantendo os mesmos níveis de pip SL e TP.
A porcentagem indicada de uma posição aberta para o par de gráficos será fechada.
Todos os pedidos. para todas as moedas, tanto a abertura quanto a pendência serão fechadas.
Todos os pedidos em aberto / ativo para o par de moedas do gráfico serão fechados.
Todos os pedidos, abertos e pendentes, para o par de moedas do gráfico serão fechados.
Todas as ordens pendentes, para todas as moedas, serão fechadas. Ordens abertas / ativas permanecerão no lugar.
Todos os pedidos pendentes para o par de moedas do gráfico serão fechados. Pedidos em aberto permanecerão.
Às vezes, depois que um EA ou script é encerrado, os comentários são deixados no gráfico. Este script removerá esses comentários.
Esses scripts abrirão uma ordem de mercado com nenhum SL ou TP atribuído a ela. O tamanho do lote é determinado por uma variável global chamada Default_Lots, que é configurada pelo usuário. Você também pode configurar um GV se quiser atribuir um número mágico ao pedido. Basta arrastar e soltar o script no gráfico para criar o pedido.
Esse script abrirá um pedido de mercado, pendente, comprado ou vendido com um número mágico especificado. Um script ou EA é a única maneira de atribuir um Número Mágico a um pedido.
Este script exibirá as propriedades de todos os pedidos da sua conta. É uma maneira de saber se um pedido tem um número mágico ou não. (Veja a amostra.)
Este indicador exibirá (opcionalmente por parâmetro) as seguintes informações no gráfico ao qual está anexado:
O Spread atual. O tempo restante na vela atual. O intervalo diário médio para a semana, mês e trimestre. O número de pips de lucro / perda de um pedido (assumindo um único pedido). As linhas do século por 10 séculos acima e abaixo do preço atual.
Essas informações, exceto as linhas do século, serão exibidas em um canto específico do gráfico. Para o display Pips, você pode especificar um Número Mágico para limitar a ordem a ser considerada. Alertas de pop-up, e-mail e som podem ser especificados para quando uma nova vela começar.
Este indicador permite exibir o fuso horário multicolorido em seu gráfico. Você especifica os horários e as cores.
Informações de status para até 10 negociações abertas serão mostradas no gráfico do yout, para uma única moeda ou para todas as moedas.
Este Expert Advisor opcionalmente fechará negócios todos os dias, de domingo a sexta-feira, com base em parâmetros. Existem dois parâmetros para cada dia. O primeiro parâmetro especifica se é necessário fechar uma negociação se ela estiver em lucro, for negativa ou for:

Meus sites Forex.
Studi Kasus: Koding Simples EA Martingale.
Studi Kasus: Koding Simples EA Martingale.
Apa itu Martingale?
Ini adalah contoh strategi gabungan MA dan Martingale. Kita lihat gambar di bawah.
Sistem ini seperti diduga, akan berjalan terus-menerus. Bila satu OP sudah mengenai PT, maka dia akan OP lagi. Begitu seterusnya. Bila arahnya salah, OP-nya akan ditambah dengan OP Martingale.
EA Martingale2MA.
- PipStep, yaitu 10 pip.
- Multiplique, ini adalah angka pengali. Biasa diisi 2x atau 1,7x. Tergantung strategi martingalenya.
- MaxTrade, ini adalah batas maksimal OP martingale yang akan dibuat oleh EA.
Fungsi GoMartingale e Fungsi ModifyTP.
Kalau ada 4 OP Martingale, maka TP-nya disamakan semua senilai TP OP yang ke-4.
Codificação Lengkap.
Sip deh teman-teman. EA Simples Martingale-nya sudah selesai. Banget kan simples?

Consultor Especialista Simples.
Esta seção aborda os princípios da criação de um Expert Advisor de negociação simples.
Argumentos preliminares.
Antes de começar a programar um Expert Advisor de negociação, é necessário definir os princípios gerais de um programa futuro. Não há regras rígidas de criação de programa. No entanto, depois de ter criado um programa, um programador geralmente continua a melhorá-lo. Para ser capaz de compreender facilmente o programa no futuro, ele deve ser criado de acordo com um esquema bem pensado e fácil de entender (é especialmente importante que um programa seja melhorado por outro programador). O programa mais conveniente é aquele que consiste em blocos funcionais, cada um dos quais é responsável por sua parte de cálculos. Para criar um algoritmo de um Expert Advisor de negociação, vamos analisar o que um programa operacional deve fazer.
Um dos dados mais importantes na formação de ordens de negociação é a informação sobre ordens que já existem em um terminal de cliente. Algumas das estratégias de negociação permitem apenas uma ordem unidirecional. Geralmente, se uma estratégia de negociação permitir, várias ordens podem ser abertas em um terminal ao mesmo tempo, embora seu número deva ser razoavelmente limitado. Ao usar qualquer estratégia, as decisões comerciais devem ser tomadas levando em conta a situação atual. Antes que uma decisão comercial seja feita em um programa, é necessário saber quais ordens de negociação já foram abertas ou colocadas. Primeiro de tudo, um programa deve conter um bloco de contabilidade de ordens que está entre os primeiros a serem executados.
Durante uma execução de EA, as decisões de negociação devem ser tomadas, cuja implementação leva à execução de operações de negociação. Parte de código responsável pela formação de ordens de negociação é melhor escrita em um bloco separado. Um Expert Advisor pode formar uma solicitação de negociação para abrir uma nova ordem pendente ou de mercado, fechar ou modificar qualquer um dos pedidos existentes ou não executar nenhuma ação. Um EA também deve calcular os preços do pedido, dependendo do desejo do usuário.
As decisões comerciais devem ser tomadas em um programa com base em critérios comerciais. O sucesso de todo o programa depende da exatidão de se detectar critérios comerciais no programa. Ao calcular critérios comerciais, um programa pode (e deve) levar em conta todas as informações que podem ser úteis. Por exemplo, um Expert Advisor pode analisar a combinação de valores de indicadores técnicos, tempo de notícias importantes, hora atual, valores de alguns níveis de preços, etc. Por conveniência, a parte do programa responsável pelo cálculo dos critérios de negociação deve ser escrita em separado. quadra.
Um Expert Advisor de negociação deve necessariamente conter um bloco de processamento de erros. A análise de erros que podem ocorrer na execução da operação de negociação permite, por um lado, repetir uma solicitação de negociação e, por outro lado, informar um usuário sobre uma possível situação de conflito.
Estrutura de um Expert Advisor Simples.
Abaixo está um esquema estrutural de um Expert Advisor simples, construído com base em vários blocos funcionais, em cada bloco, uma certa parte separada dos cálculos.
Fig. 109. Esquema estrutural de um simples Expert Advisor.
No estágio de desenvolvimento do EA a seguir, ainda não há código de programa. Ao mesmo tempo, o algoritmo de um programa é em grande parte formado. Como o EA construído sobre as bases do esquema oferecido irá operar pode ser facilmente entendido simplesmente olhando o esquema e orientando sobre os nomes de blocos e matrizes de relações (controle de passagem) entre eles.
Depois que o controle de início do programa é passado para o bloco de processamento preliminar. Neste bloco, alguns parâmetros gerais podem ser analisados. Por exemplo, se não houver barras suficientes em uma janela (barras necessárias para o cálculo de parâmetros de indicadores técnicos), um EA não poderá operar adequadamente. Nesse caso, um EA deve encerrar a operação preliminarmente informando um usuário sobre ele e relatando o motivo da rescisão. Se não houver contra-indicações de caráter geral, o controle é passado para ordenar o bloqueio contábil.
No bloco de ordens contábeis, o número e a qualidade dos pedidos existentes em um terminal do cliente para uma segurança (para a janela da qual o EA está anexado) são detectados. Neste bloco, as ordens de outros títulos devem ser eliminadas. Se uma estratégia de negociação programada exigir o uso apenas de ordens de mercado (e não usar ordens pendentes), o fato da presença de ordens pendentes deve ser detectado. Se uma estratégia admite apenas uma ordem de mercado e na verdade existem várias ordens, esse fato também deve ser conhecido. A tarefa do bloco de contabilidade de pedidos (neste esquema) é definir se a situação atual de negociação corresponde a uma situação esperada, ou seja, aquela em que o EA pode operar adequadamente. Se a situação corresponder, o controle deve ser passado para o próximo bloco para continuar a operação do EA; se não, a operação do EA deve ser encerrada e esse fato deve ser relatado a um usuário.
Se não houver pedidos no terminal ou o número e a qualidade dos pedidos existentes corresponder ao esperado, o controle será passado para o bloco de definição dos critérios de negociação. Neste bloco são calculados todos os critérios necessários para a tomada de decisões comerciais, ou seja, critérios para abertura, fechamento e modificação de ordens. Mais controle é passado para o bloco de ordens de fechamento.
É fácil entender por que, no esquema oferecido, o bloco de ordens de fechamento é executado antes do bloco de ordens de abertura. É sempre mais razoável processar os primeiros pedidos existentes (fechar ou modificar) e somente depois disso abrir novos pedidos. Geralmente, é correto ser guiado pelo desejo de ter o mínimo de ordens possível. Durante a execução deste bloco todas as ordens, para as quais o critério de fechamento foi ativado, devem ser fechadas.
Depois que todos os pedidos necessários foram fechados, o controle é passado para um bloco de cálculo de tamanho de novos pedidos. Existem muitos algoritmos para calcular um volume de pedidos. O mais simples deles é usar um tamanho de lote fixo e constante. É conveniente usar esse algoritmo em um programa para testar estratégias. O método mais popular de definir um tamanho de pedido é definir o número de lotes, dependendo da quantidade de margem livre, por exemplo, 30-40% dele. Se a margem livre não for suficiente, o programa encerra sua operação informando o usuário sobre o motivo.
Depois que o número de lotes para abertura de novos pedidos for definido, o controle é passado para o bloco de abertura do pedido. Se algum dos critérios calculados anteriormente apontar para a necessidade de abrir uma ordem de um certo tipo, um pedido de negociação para abrir um pedido é formado neste bloco.
Há também um bloco de análise de erros em um Expert Advisor. Se alguma operação de negociação falhou, o controle (apenas neste caso) é passado para o bloco de processamento de erros. Se um erro retornado por um servidor ou terminal do cliente não for crucial, mais uma tentativa será feita para executar uma operação de negociação. Se um erro crucial for retornado (por exemplo, uma conta é bloqueada), um EA deve encerrar sua operação. Lembre-se, no MQL4 não há possibilidade de o programa terminar uma operação do EA em uma janela de segurança (diferentemente dos scripts, veja Funções Especiais). O que pode ser feito de uma maneira de programa é o término de start (). Em um novo início da função start () em um novo tick, o valor de um determinado flag de proibição de flag variável (neste caso habilitado como resultado de um erro crítico) pode ser analisado e o controle pode ser passado para o término do operação de função especial; assim, a formação de novo pedido de comércio não é permitida. No esquema oferecido, o valor da bandeira é analisado no bloco de processamento preliminar.
Estratégia de Negociação.
Os preços de mercado estão em constante movimento. O estado de mercado a qualquer momento pode ser condicionalmente caracterizado como uma tendência - forte mudança de preço unidirecional (aumento ou queda), ou como um movimento de preço flat-lateral com desvios fracos de uma certa média. Essas características de mercado são condicionais, porque não há critérios claros, de acordo com qual tendência ou flat podem ser identificados. Por exemplo, movimentos laterais longos com fortes desvios que não podem ser traçados nem em um plano nem em uma tendência. Geralmente assume-se que o mercado é principalmente no estado de movimento lateral e as tendências geralmente ocorrem 15-20% do tempo.
Fig. 110. Plano e tendência no mercado.
Todas as estratégias de negociação também podem ser convencionalmente divididas em dois grupos principais. O primeiro grupo contém estratégias orientadas para planos. A idéia principal de tais estratégias é que, após um desvio evidente, o preço deve retornar à posição anterior, é por isso que as ordens são abertas na direção contrária ao último movimento de preço. As estratégias do segundo grupo são estratégias de tendência, quando as ordens são abertas na mesma direção do movimento do preço de sal. Existem estratégias mais complicadas (combinadas). Tais estratégias levam em conta muitos fatores diferentes que caracterizam o mercado; Como resultado, a negociação pode ser executada tanto no plano quanto na tendência. Não é difícil implementar a negociação de acordo com essa ou aquela estratégia tecnicamente - o MQL4 contém todos os meios necessários para isso. O principal trabalho na criação de uma vez própria estratégia consiste na busca de critérios de negociação.
Critérios de Negociação.
Neste exemplo, tentaremos construir um Expert Advisor de tendência, ou seja, aquele que abrirá pedidos na direção do movimento de preço. Então, precisamos encontrar entre vários indicadores técnicos aqueles que detectam o início de uma tendência. Um dos métodos mais simples de pesquisar critérios de negociação é baseado na análise da combinação de MAs com diferentes períodos médios. A figura 111 e a figura 112 mostram a posição de dois MA diferentes (com períodos de média 11 e 31) em diferentes partes do mercado. Médias com pequeno período médio (linhas vermelhas) estão mais próximas de um gráfico de preços, sinuoso e móvel. Médias móveis com maior período de média (linha azul) são mais inertes, têm maior defasagem e estão mais distantes dos preços de mercado. Vamos prestar atenção aos lugares onde os MAs com diferentes períodos médios se cruzam e tentam decidir, se o fato do cruzamento MA pode ser usado como um critério de leitura.
Fig. 111. Cruzamento de MA (11) e MA (31) quando a direção do movimento de preços muda.
Na Fig. 111, vemos uma parte do mercado em que as ordens de abertura na direção do movimento de preços na passagem de MA são justificadas. No ponto A, a linha vermelha cruza a linha azul de baixo para cima, depois disso o preço de mercado continua crescendo por algum tempo. Além disso, o cruzamento de MA reverso indica a mudança de direção do movimento de preço. Se abrirmos uma ordem de compra no ponto A e fechá-la em B, obteremos lucro proporcional à diferença entre os preços A e B.
Fig. 112. Cruzamento de MA (11) e MA (31) quando a direção do movimento de preços muda.
Ao mesmo tempo, há outros momentos no mercado quando o MA se cruza, mas isso não leva a uma subida ou descida considerável dos preços (Fig. 112). Pedidos abertos no cruzamento do MA nesses momentos levarão a perdas. Se a venda for aberta em A e fechada em B, tal negociação trará perdas. O mesmo pode ser dito sobre uma ordem de compra aberta em B e fechada em C.
O sucesso de toda a estratégia implementada com base no cruzamento de AM depende do número de partes que podem ser caracterizadas como tendência e plana. No plano, muitas vezes o cruzamento MA é um evento regular que interfere com qualquer estratégia de tendência. Inúmeros sinais falsos geralmente levam a perdas. É por isso que este cruzamento de MAs com diferentes períodos de média pode ser usado para construir estratégias de negociação apenas em combinação com outros sinais que provem uma tendência. Neste exemplo (para construir um Expert Advisor simples), teremos que recusar o uso deste sinal.
Nós usaremos outro sinal. Analisando visualmente o caráter das mudanças de preço no mercado, podemos ver que uma alta ou baixa de preço de uma direção ocorre frequentemente como resultado de um movimento curto e forte. Em outras palavras, se em um curto período ocorreu um movimento forte, podemos esperar sua continuação em um período de médio prazo.
Fig. 113. O forte movimento de preços pode levar a um desenvolvimento de tendência.
A figura 113 mostra o período de mercado em que um movimento forte resultou na continuação da mudança de preço na mesma direção. Como o & quot; um movimento forte & quot; Podemos usar a diferença de MAs com diferentes períodos médios. Quanto mais forte o movimento, maior a defasagem do MA com maior período médio de MA com um pequeno período de média. Além disso, mesmo os movimentos de preços descontínuos fortes com retorno adicional não resultam numa grande diferença entre os MAs, isto é, numerosos sinais falsos não aparecem. Por exemplo, o salto de preço em 50 pontos com retorno adicional (no centro da Fig. 113) acarretou aumento de diferença entre os MAs apenas em 20 pontos. Ao mesmo tempo, um movimento realmente forte (que geralmente não é acompanhado por uma correção considerável) no ponto A resultou na diferença aumentar até 25 - 30 pontos.
Se a ordem de compra for aberta quando um determinado valor de diferença entre os MAs for atingido, por exemplo, em A, o mais provável será que a ordem seja lucrativa quando um preço atingir um valor de ordem de parada predefinido. Vamos usar este valor como critério de negociação no nosso Expert Advisor.
Número de encomendas.
Neste exemplo, analisamos um Expert Advisor que admite a presença de apenas uma ordem de mercado, ordens pendentes não são fornecidas. Tal abordagem é justificada não apenas neste exemplo, mas pode ser usada como base para qualquer estratégia.
Geralmente, as ordens pendentes são usadas quando um desenvolvedor tem um critério bastante confiável para prever a mudança futura de preço com alta probabilidade. Se não houver tal critério, não há necessidade de usar pedidos pendentes.
A situação em que várias ordens opostas para um título estão abertas também não pode ser considerada razoável. Foi escrito anteriormente que, do ponto de vista econômico, as ordens opostas são consideradas sem sentido, especialmente se os preços dos pedidos forem iguais (consulte Encerrando e Excluindo Pedidos). Nesse caso, devemos fechar um pedido por outro e esperar que um sinal abra uma ordem de mercado em uma determinada direção.
Relação dos Critérios de Negociação.
A partir desta posição, torna-se claro quais as relações possíveis entre os critérios de negociação. A Figura 114 mostra três variantes de correlação de critérios de negociação, quando cada critério é importante (válido). Ações (abertura e fechamento de ordens de mercado) ocorrem no sentido horário nas figuras a seguir.
Fig. 114. Correlação dos critérios de abertura e fechamento de ordens (aeb - correto, c - incorreto).
A variante mais popular de um critério comercial corretamente formado é a variante a. Depois de ser aberto, uma ordem de compra do mercado é mantida até o momento em que o critério exige o seu gatilho de fechamento. Depois disso, uma pausa ocorre quando nenhum pedido é aberto. Além disso, uma ordem de venda do mercado pode ser aberta. As condições para o fechamento de uma ordem de venda (de acordo com os critérios corretamente formados) ocorrem mais cedo do que as condições para a abertura de uma ordem de compra. No entanto, uma ordem de compra pode ser aberta novamente, se um critério de negociação exigir isso. Mas, de acordo com essa variante, uma ordem de mercado não pode ser aberta se houver uma ordem de mercado aberto na direção contrária.
Correlação de critérios semelhantes está na variante b. A diferença é que um critério para abrir qualquer ordem de mercado é, ao mesmo tempo, um critério para fechar a ordem oposta. Essa variante, como a variante a, não permite várias ordens abertas no terminal ao mesmo tempo em uma única garantia.
A variante da correlação de critérios está incorreta. De acordo com esta variante, a abertura de uma ordem de mercado é permitida quando ordens contrárias ainda não estão fechadas, o que é insensato. Pode haver casos raros quando esta variante é parcialmente justificada. A abertura de uma ordem oposta é às vezes aceitável para compensar perdas ocorridas em pequenas correções após fortes movimentos de preços. Nesses casos, uma ordem oposta pode ser aberta com o mesmo valor ou menor que a já existente e, em seguida, fechada quando a correção é finalizada. Tal tática permite não interferir com o & quot; main & quot; ordem aberta na direção da tendência.
Em geral, várias ordens de uma direção também são possíveis. Isso pode ser justificado quando um pedido aberto anteriormente é protegido por uma ordem Stop e o critério que aponta para o desenvolvimento do preço na mesma direção é acionado novamente. No entanto, ao criar essa estratégia, um desenvolvedor deve estar plenamente ciente de que, no caso de uma alteração brusca no movimento do preço, as ordens de parada colocadas podem não ser executadas por alguns corretores no primeiro toque de preço. E a perda será proporcional ao valor total das ordens de mercado unidirecionais.
Em nosso exemplo, usamos a variante b da correlação dos critérios de negociação. Todas as ordens de mercado abertas são fechadas por uma ordem de parada ou após um critério de abertura de uma ordem em triggers de direção oposta (aqui o critério de fechamento de compra coincide com o de abertura de venda e vice-versa).
Tamanho de pedidos abertos.
Em qualquer estratégia de negociação, os tamanhos dos pedidos devem ser razoavelmente limitados. Em um caso simples, um tamanho de pedido fixo é usado em um Expert Advisor. Antes do início da operação do EA, um usuário pode definir qualquer tamanho de pedidos futuros e deixá-lo inalterado por algum tempo. Além disso, se o saldo for alterado, um usuário poderá definir um novo valor de números de lote de pedidos abertos.
Um tamanho de pedidos muito pequeno proporciona mais confiança na operação na imprevisível mudança de mercado, mas o lucro em caso de sucesso não será tão grande. Se o tamanho do pedido for muito grande, pode ser obtido um grande lucro, mas esse EA será muito arriscado. Normalmente, o tamanho dos pedidos abertos é configurado de modo que os requisitos de margem não excedam de 2 a 35% do saldo ou margem livre (se uma estratégia permitir apenas um pedido aberto, saldo e margem livre no momento anterior à abertura do pedido) seja igual).
Neste exemplo, ambas as variantes são implementadas. Um usuário pode optar por indicar diretamente os valores dos pedidos ou definir o valor em porcentagem da margem livre.
Detalhes de programação.
Um Expert Advisor de tendência simples tradingexpert. mq4, construído com base em argumentos anteriores, pode ser assim:
Descrevendo Variáveis.
Um outro critério na estimativa de programa é sua legibilidade. Um programa é considerado como escrito corretamente, se puder ser lido facilmente por outros programadores, é por isso que todas as principais partes do programa e principais momentos que caracterizam a estratégia devem ser comentados. É também por isso que é recomendado declarar e comentar todas as variáveis ​​no início do programa.
No bloco 1-2 são descritas variáveis ​​externas e globais.
De acordo com as regras, variáveis ​​externas e globais devem ser abertas antes de seu primeiro uso (veja Tipos de Variáveis), é por isso que elas são declaradas na parte principal do programa. Todas as variáveis ​​locais da função start () são reunidas e descritas na parte superior da função (bloco 2-3) imediatamente após o cabeçalho da função. As regras de declarar variáveis ​​locais não exigem isso, mas também não proíbem. Se um programador enfrenta dificuldades em entender o significado de uma variável ao ler o programa, ele pode se referir à parte do programa superior e descobrir o significado e o tipo de qualquer variável. É muito conveniente na prática de programação.
Bloco de processamento preliminar.
Neste exemplo, o pré-processamento consiste em duas partes (bloco 3-4). O programa termina a operação se não houver barras suficientes em uma janela de segurança; em tal caso, é impossível detectar corretamente (no bloco 5-6) valores de médias móveis necessários para o cálculo dos critérios. Além disso, o valor da variável Work é analisado. Na operação normal do EA, o valor da variável é sempre 'verdadeiro' (é definido uma vez durante a inicialização). Se ocorrer um erro crítico na operação do programa, 'false' é atribuído a essa variável e start () conclui sua operação. Este valor não será alterado no futuro, é por isso que o código a seguir não é executado. Nesse caso, a operação do programa deve ser interrompida e a razão do erro crítico deve ser detectada (se necessário, um centro de negociação deve ser contatado). Depois que a situação é resolvida, o programa pode ser iniciado novamente, isto é, o EA pode ser anexado a uma janela de segurança.
Ordens contábeis.
O Expert Advisor descrito permite trabalhar apenas com uma ordem de mercado. A tarefa do bloco de contabilidade de ordens (bloco 4-5) é definir as características de uma ordem aberta, se houver uma. No loop que passa por ordens 'para' todas as ordens de mercado e pendentes existentes são verificadas, ou seja, da primeira (int i = 1) até a última (i & amp; lt; = OrdersTotal ()). Em cada iteração de ciclo, a próxima ordem é selecionada pela função OrderSelect (). A seleção é feita a partir de uma fonte de ordens abertas e pendentes (SELECT_BY_POS).
Se a seleção for executada com sucesso (ou seja, houver mais uma ordem no terminal), é necessário analisar essa ordem e a situação: se a ordem está aberta para a segurança na qual a EA opera, se a ordem é de mercado ou pendente ; também deve ser levado em consideração ao contar pedidos. Na linha:
todas as ordens abertas para outro título são eliminadas. O operador 'continue' interrompe a iteração e as características de tal ordem não são processadas. Mas se o pedido for aberto para a segurança, para a janela da qual o EA é anexado, ele é analisado posteriormente.
Se OrderType () retorna um valor maior que 1 (veja Types of Trades), o pedido selecionado é um pendente. Mas neste Expert Advisor, o gerenciamento de pedidos pendentes não é fornecido. Isso significa que a execução de start () deve ser finalizada, porque ocorreu uma situação de conflito. Nesse caso, após uma mensagem sobre o término da operação start (), a execução é interrompida pelo operador 'return'.
Se a última verificação mostrou que a ordem analisada é uma ordem de mercado, o número total de ordens para uma garantia é calculado e analisado. Para o primeiro de tais ordens, todas as características necessárias são definidas. Se na próxima iteração o contador de ordem (variável Total) encontrar a segunda ordem de mercado, a situação também será considerada em conflito, porque o EA não pode gerenciar mais de uma ordem de mercado. Nesse caso, a execução start () é interrompida depois de mostrar uma mensagem correspondente.
Como resultado da execução do bloqueio contábil de pedidos (se todas as verificações foram bem-sucedidas), a variável Total preserva seu valor zero se não houver ordens de mercado ou obtém o valor 1 se houver uma ordem de mercado para nossa segurança. No último caso, algumas variáveis ​​configuradas em correspondência com as características do pedido (número, tipo, preço de abertura, níveis de parada e valor do pedido) também obtêm seus valores.
Calculando Critérios de Negociação.
No exemplo analisado, a definição dos critérios de negociação (bloco 5-6) é calculada com base na diferença entre Médias Móveis com diferentes períodos de média. De acordo com os critérios aceitos, um gráfico é direcionado a touro se o valor atual do MA com período menor for maior que o valor de MA com período maior, e a diferença entre os valores for maior que um determinado valor. Em um movimento de urso, o MA com período menor é menor que o MA com maior período e a diferença também é maior do que um determinado valor crítico.
No bloco, os valores iniciais de MAs com períodos médios Period_MA_1 e Period_MA_2 são calculados. O fato de significado de qualquer critério de negociação é expresso através do valor de uma variável correspondente. As variáveis ​​Opn_B e Opn_S denotam o critério de acionamento para abertura de ordens de Compra e Venda, variáveis ​​Cls_В e Cls_S - para fechamento. Por exemplo, se um critério para abrir Buy não for acionado, o valor de Opn_B permanece 'false' (definido na inicialização da variável); se tiver sido acionado, Opn_B obtém o valor 'true'. Neste caso, o critério para o fechamento do Sell coincide com o da abertura do Buy, o critério para a abertura do Sell coincide com o do fechamento do Buy.
Ordens de encerramento.
Foi escrito anteriormente que este Expert Advisor é destinado apenas para operação com uma ordem de mercado aberta para uma segurança, para qual janela o EA está anexado. Para o momento em que o controle no programa é passado para o bloco de fechamento de pedidos, sabe-se com certeza que no momento atual não há pedidos para a segurança, ou existe apenas uma ordem de mercado. É por isso que o código no bloco de fechamento de pedidos é escrito para que apenas um pedido possa ser fechado com sucesso.
Este bloco é baseado no loop infinito 'while', cujo corpo consiste em duas partes análogas: uma para fechar uma ordem de compra, outra para fechar uma ordem de venda. 'While' é usado aqui para o propósito que, em caso de falha na operação de negociação, pode ser repetido novamente.
No cabeçalho do primeiro operador, 'se' a condição para o fechamento de uma ordem de compra é calculada (ordens de venda são fechadas de maneira análoga). Se o tipo de uma ordem aberta anteriormente corresponde a Comprar (consulte Tipos de Negociações) e o sinal para fechamento de Compra for relevante, o controle é passado para o corpo do operador 'se' em que uma solicitação para fechar é formada. Como um preço de fechamento de pedido na função OrderClose (), o valor de uma cotação em dois lados correspondente ao tipo de pedido é indicado (consulte Requisitos e limitações na realização de negociações). Se uma operação de negociação for executada com sucesso, depois que uma mensagem sobre o fechamento da ordem for mostrada, a iteração atual 'while' será interrompida e a execução do bloqueio de fechamento da ordem será encerrada. Mas se a operação falhar, a função definida pelo usuário para processar os erros Fun_Error () é chamada (bloco 10-11).
Processando Erros.
Como um parâmetro passado em Fun_Error (), o último código de erro calculado por GetLastError () é usado. Dependendo do código de erro, Fun_Error () retorna 1 se o erro não for crítico e a operação puder ser repetida, e 0 se o erro for crítico. Erros críticos são divididos em dois tipos - aqueles, após os quais a execução de um programa pode ser continuada (por exemplo, um erro comum) e aqueles após os quais a execução de qualquer operação de negociação deve ser interrompida (por exemplo, conta bloqueada).
Se após uma operação de negociação malsucedida a função definida pelo usuário retornar 1, a iteração 'while' atual é finalizada e durante a próxima iteração outra tentativa é feita para executar a operação - para fechar a ordem. Se a função retornar 0, a execução atual do start () será interrompida. No próximo tick start () será iniciado pelo terminal do cliente novamente e se as condições para o fechamento do pedido forem preservadas, outra tentativa de fechar o pedido será feita.
Se durante o processamento de erros for descoberto que a execução de um programa adicional é sem sentido (por exemplo, o programa opera em uma versão antiga do terminal cliente) durante a próxima partida, a execução da função especial start () será encerrada no processamento preliminar quando analisando o valor da variável Work.
Cálculo do Montante de Lotes para Novos Pedidos.
O volume de lotes pode ser calculado de acordo com as configurações do usuário seguindo uma das duas variantes. A primeira variante é um determinado valor constante configurado por um usuário. De acordo com a segunda variante, a quantidade de lotes é calculada com base em uma soma igual a uma determinada porcentagem (definida por um usuário) de uma margem livre.
No início do bloco de definição da quantidade de lotes para novas ordens (bloco 7-8) são calculados os valores necessários de algumas variáveis ​​- quantidade mínima permitida de lotes e passo de mudança de lote definido por um corretor, margem livre e preço de lote. um lote para a segurança.
Neste exemplo, o seguinte é fornecido. Se um usuário configurou um determinado valor diferente de zero da variável externa Lts, por exemplo 0,5, ele é aceito como a quantidade de lotes Lts quando um pedido de negociação para abrir um pedido é formado. Se 0 é atribuído a Lts, o número de lotes Lts é definido com base na variável Prots (porcentagem), margem livre e condições configuradas por um corretor.
Depois que Lts é calculado, uma verificação é realizada. If this value is lower than the minimal allowed value, the minimal allowed value is accepted. but if free margin is not enough, after a corresponding message the start() execution is terminated.
Opening Orders.
The block of opening orders (block 8-9) like the bloke of opening orders is an infinite loop 'while'. In the header of the first operator 'if' conditions for opening a Buy order are calculated: if there are no orders for the security (variable Total is equal to 0) and the sign for opening a Buy order is relevant (Opn_B is true ), control is passed to 'if' operator body for opening an order. In such a case after rates are refreshed prices for stop levels are calculated.
Values of stop levels are initially set by a user in external variables StopLoss and TakeProfit. In a general case a user can set values for this parameters smaller that a broker allows. Besides a broker may change the minimal allowed distance at any moment (it is an often case at strong market movements, for example, before important news release). That's why before each order opening stop levels must be calculate taking into account values set bu a user and the minimal allowed value set up by a broker.
For calculating stop levels the user-defined function New_Stop() is used; as a passed parameter the stop level value set by a user is used. In New_Stop() first the current minimal allowed distance is calculated. If the value set by a user corresponds to a broker's requirements, this value is returned. If it is smaller than the allowed value, the value allowed by a broker is used. Prices of stop requests are calculated from the corresponding two-sided quote (see Requirements and Limitations in Making Trades).
A trade request to open an order is formed using the function OrderSend(). For the calculation of order opening price and prices of stop requests the two-sided quote values corresponding to the order type are used. If a trade operation was successful (i. e. a server returned the number of an opened order) after a message about a successful order opening is shown. start() execution is finished. If an order was not opened and the client terminal returned an error, the error is processed according to the algorithm described earlier.
Some Code Peculiarities.
The analyzed Expert Advisor code is oriented to the implementation of a certain strategy. Note, some program lines contain variables and calculations that would be changed, if the strategy were changed.
For example, according to the accepted strategy the Expert Advisor is developed to work only with one order. This allowed to use the variable Ticket both for the identification of a closing order number (in block of closing 6-7) and for the identification of a success of a trade operation execution when opening an order (in the block of opening 8-9). In this case such a solution is acceptable. However, if we take the analyzed code as the basis for the implementation of another strategy (for example allow opposite orders) we will have to introduce one or several variables to be able to recognize numbers of opened orders and identify the success of trade operations.
In further strategy modifications we will have to change come program lines containing part of logics contained in the source strategy. Namely in the order accounting block we will not have to terminate the program operation if there are several open orders for a security. Besides, conditions for opening and closing orders will alslo change. This will entail the code changing in blocks of opening and closing orders.

Thread: [Share] Script for MT4.
Ferramentas de Tópicos.
Thread de pesquisa.
Modo Linear Alterne para o Modo Híbrido Alterne para o Modo Rosqueado.
apa yang di attachor nomor 4 sama mestre wapi96wap itu ga cocok gan?
tinggal pasang di chart langsung aksi dah, one click tp fiturnya lebih lengkap.
tinggal pasang di chart langsung aksi dah, one click tp fiturnya lebih lengkap.
Tags para este Tópico.
Permissões de postagem.
Você não pode postar novos tópicos Você não pode postar respostas Você não pode postar anexos Você não pode editar suas mensagens.
O código BB está em Smilies estão em [IMG] o código está em código HTML está desativado.
O mercado pode ser visto com um número de letras simbólicas, mas pode ser encontrado em vários países, desde que você esteja em contato conosco. Irama dari cara kerja mercado forex dalam banyak hal menentukan hasil dari transaksi mata uang yang di buat oleh peserta mercado forex. nasabah. corretores nasabah. Setiap Broker forex menawarkan terminal mascara masing, namun bagaimanapun juga bagian terpenting dari corretores Dan traders semuanya menentukan atau setuju dalam memih Terminal trader Meta Trader 4 dias Meta Trader 5. Fórum de negócios para traduzir em siapapun yang para seri Meta Trader Inglês para Forex.
Mercado de Ramalans forex, dap berdiri sendiri baik itu untuk trader baru dan yang berpengalaman dalam market mata uang. semua ini akan e temukan dalam Fórum Trader di Diskusi Trader. O que você está procurando? Salgando o seu tempo livre e seguro no Mengenai Fórum de discussão forex, menu de discussão.
Apabila Anda mempunyai pengalaman negatif atau positif dalam bekerjasama dengan Brokers Forex, se você conhece alguém que quer dar a sua opinião em forex itu sendiri. Anda dapat memberikan komentar mengenai broker e Mengenai keuntungan dalam bekerja sama dengan forex. (Comerciante Secara é o mais importante fornecedor de serviços de corretagem do Konstitui.) Dalam Tingkatan ini Anda akan melihat kepemimpinan e pandangan mengenai pelayanan Mercado Forexnya.
Apakah e Seorang Trader atau hanya para bersantai saja? Maka Fórum Forex adalah Diskusi Gratis yang tepat untuk Anda. Você também pode gostar de Adicionar à sua conta Adicionar à comparação Forex adalah istimewa. Você também pode comprar gratuitamente os comerciantes, comerciantes, comerciantes Corretores Comerciantes estrangeiros e estrangeiros Corretoras Forex.
O fórum encontra-se na lista de comerciantes de comerciantes de mercadorias em segunda-feira. Bagaimanapun juga, masing-masing postar di Forum Forex membro bónus penciptaan, yang dapat di gunakan di Transaksi Forex dalam Akun yang terbuka e salah satu sponsor dari Forum. Hadiah kecil ini diberikan dengan maksud unauk hadiah kepada Comerciantes profissionais para menghabiskan Waktu di forum kami.

Комментариев нет:

Отправить комментарий