iCustom_v1: Expert Advisor para MetaTrader 4

Mike 2016.05.16 20:02 19 0 0
Anexo

Propósito do EA

O EA (Expert Advisor) foi desenvolvido para trabalhar com qualquer Custom que desenhe setas de compra/venda, exceto indicadores com parâmetros em string.

O nome do indicador personalizado é especificado nos parâmetros do EA, assim como a lista de parâmetros do indicador e os números dos buffers que desenham as setas de compra/venda.

Apesar do uso de uma lista de parâmetros em string, é possível otimizar até cinco parâmetros do indicador. Em vez de qualquer uma das variáveis da lista de parâmetros iCustomParam, você pode usar o valor de qualquer uma das variáveis Opt_1_Value - Opt_5_Value.

Parâmetros do Expert Advisor

  • TimeFrame - período de trabalho do EA: 0 - período do gráfico em que o EA está rodando ou que foi selecionado no testador. Ou um valor específico 1,5,15,30,60,240,1440...
  • iCustomName - nome do indicador customizado.
  • iCustomParam - lista de parâmetros delimitada por "/". Para variáveis booleanas, use 1 em vez de true, 0 em vez de false. Se os parâmetros do indicador contiverem variáveis em string, o EA não funcionará!
  • iBuyBufIndex - índice do buffer com as setas de compra.
  • iSellBufIndex - índice do buffer com as setas de venda.
  • iShift - deslocamento do indicador. 1 - trabalhar nas barras formadas, 0 - na barra em formação (não recomendado). Também é possível inserir um valor 2,3,4...
  • Opt_1_Use - ativar o uso da variável 1 a ser otimizada. Quando a variável a ser otimizada é ativada, em vez do valor da string iCustomParam, definido pela variável Opt_X_Index, o valor da variável Opt_X_Value será utilizado.
  • Opt_1_Index - índice da variável 2 a ser otimizada na matriz de parâmetros (na string iCustomParam). A numeração começa em zero.
  • Opt_1_Value - valor da variável 1 a ser otimizada.
  • Opt_2_Use - ativar o uso da variável 2 a ser otimizada.
  • Opt_2_Index - índice da variável 2 a ser otimizada na matriz de parâmetros (na string iCustomParam). A numeração começa em zero.
  • Opt_2_Value - valor da variável 2 a ser otimizada.
  • Opt_3_Use - ativar o uso da variável 3 a ser otimizada.
  • Opt_3_Index - índice da variável 3 a ser otimizada na matriz de parâmetros (na string iCustomParam). A numeração começa em zero.
  • Opt_3_Value - valor da variável 3 a ser otimizada.
  • Opt_4_Use - ativar o uso da variável 4 a ser otimizada.
  • Opt_4_Index - índice da variável 4 a ser otimizada na matriz de parâmetros (na string iCustomParam). A numeração começa em zero.
  • Opt_4_Value - valor da variável 4 a ser otimizada.
  • Opt_5_Use - ativar o uso da variável 5 a ser otimizada.
  • Opt_5_Index - índice da variável 5 a ser otimizada na matriz de parâmetros (na string iCustomParam). A numeração começa em zero.
  • Opt_5_Value - valor da variável 5 a ser otimizada.
  • MMMethod - método de gerenciamento de dinheiro: 0-Lots, 1-parte (Risco) da margem livre, 2-parte (Risco) da margem livre normalizada pelo MeansStep (por exemplo, Risco=0.1, MeansStep=1000, se a margem for menor que 2000, o lote será 0.1, se a margem for maior que 2000 ou mais - 0.2 lote, 3000 ou mais - 0.3 lote e assim por diante)
  • Lots - número de lotes quando MMMethod=0.
  • Risk - risco. O valor é baseado em fundos com FixedLot=false.
  • MeansType - tipo de fundos usados no cálculo do lote. 1 - Balanço, 2 - Patrimônio, 3 - Margem Livre.
  • MeansStep - passo dos fundos. Usado em MMMethod=2.
  • LotsDigits - número de casas decimais no valor do lote.
  • Slippage - desvio permitido do preço solicitado.
  • StopLoss - stop loss.
  • TakeProfit - take profit.
  • Magic_N - número mágico.
  • MaxOrdersCount - número total máximo de ordens abertas. -1 - sem limite.
  • MaxBuyCount - número máximo de ordens de compra abertas. -1 - sem limite.
  • MaxSellCount - número máximo de ordens de venda abertas. -1 - sem limite.
  • SleepBars - timeout após abrir uma ordem como um número de barras do período de trabalho.
  • CancelSleeping - ativação da cancelamento do timeout ao abrir uma ordem na direção oposta.
  • CloseOnRev - fechar ordens da direção oposta antes de abrir.
  • TrailingStop_Use - ativação da função de trailing stop.
  • TrailingStopStart - lucro da ordem para ativar o trailing stop.
  • TrailingStop - nível do trailing stop.
  • BreakEven_Use - ativação da função de breakeven.
  • BreakEvenStart - lucro da ordem para ativar o breakeven.
  • BreakEvenLevel - nível para colocar o stop loss a partir do preço de ativação do breakeven.

Nota

O arquivo com o expert contém o arquivo test_example.set com um exemplo de configurações para usar o indicador ind_Test (cruzamento de duas MAs) e as variáveis a serem otimizadas. O indicador ind_Test está anexado.

Versão 2

1. Foi adicionada a capacidade de usar diferentes indicadores para sinais de abertura e fechamento. Os parâmetros para o indicador de abertura começam com o prefixo _O_, para o indicador de fechamento - com o prefixo _C_.

Existem três modos possíveis para usar os indicadores de abertura e fechamento (definidos pela variável _OС_Mode):

  • Modo 1 - indicador não usado para fechar. O fechamento só é possível por stop loss e take profit.
  • Modo 2 - o indicador de fechamento não é usado. Além do fechamento por stop loss e take profit, o fechamento de ordens opostas é realizado pelos sinais de abertura. O stop loss e o take profit podem ser desativados - defina o valor 0 para as variáveis StopLoss e/ou TakeProfit (aplica-se a todos os modos).
  • Modo 3 - Sinais de fechamento separados baseados no indicador de fechamento (_C_) são usados. Neste modo, é possível usar um modo adicional para copiar os parâmetros do indicador de abertura para os parâmetros do indicador de fechamento (a variável C_UseOpenParam), ao mesmo tempo o nome do indicador e seus parâmetros são copiados. Este modo é feito para indicadores que geram sinais de abertura e fechamento para aumentar a velocidade da otimização (os parâmetros otimizados também são copiados).

2. É possível usar não apenas indicadores com setas, mas também indicadores com linhas. É possível usar duas linhas (cruzamento da linha principal e da linha sinal) e uma linha - seu cruzamento com os níveis. Use a variável _O_Mode (e _С_Mode no bloco de fechamento) para selecionar o tipo de indicador.

  • Modo 1 - o indicador desenha setas. As variáveis _O_M1_iBuyBufIndex e _O_M1_iSellBufIndex são usadas para especificar os números dos buffers, e no bloco de fechamento - _C_M1_iCloseBuyBufIndex e _C_M1_iCloseSellBufIndex.
  • Modo 2 - a linha principal e a linha sinal do indicador são usadas. Se a linha principal cruzar a linha sinal de baixo para cima - sinal para abrir Compra ou fechar Venda. As variáveis _O_M2_iMainBufIndex, _O_M2_iSignalBufIndex e _C_M2_iMainBufIndex, _C_M2_iSignalBufIndex são usadas para especificar os buffers.
  • Modo 3 - uma linha do indicador é usada. O número do buffer é especificado na variável _O_M3_iBufIndex (ou _С_M3_iBufIndex no bloco de fechamento). Os níveis são especificados usando _O_M3_BuyLevel e _O_M3_SellLevel (_O_M3_CloseBuyLevel e _C_M3_CloseSellLevel no bloco de fechamento). O cruzamento do nível de Compra de baixo para cima - compra, cruzamento do nível de Venda de cima para baixo - venda.

Versão 3

Adicionado outro modo _O_Mode (e _S_Mode)

Modo 4 - Extremum por três pontos. Usa uma linha do indicador. O número do buffer é especificado na variável _O_M4_iBufIndex (ou _С_M4_iBufIndex no bloco de fechamento).

Versão 4

1. Adicionado trabalho com ordens pendentes.
2. Adicionada separação de seções na janela de propriedades (a partir de variáveis em string).

A seleção do tipo de ordem é feita pela variável OrdType: 0 - mercado, 1 - stop, 2 - limite (a variável está na seção "Ordem").

A seção de variáveis "Ordens Pendentes" para gerenciar a operação de ordens pendentes:

  • PendLevel - o nível a partir do preço de mercado atual para colocar a ordem pendente.
  • PendPromPrice - o preço para colocar a ordem pendente é calculado a partir do preço da barra zero, no valor PendPromPrice=0 - a partir do preço de fechamento (corresponde ao preço de mercado atual), 1 - a partir do preço de abertura da barra anterior.
  • PendNewSigMode - método de controle da ordem pendente em um novo sinal de negociação: 0 - se uma ordem já foi colocada, então nenhuma ação é tomada quando um novo sinal de negociação aparece, 1 - substituir a ordem em um novo sinal, 2 - em um novo sinal a ordem é substituída apenas por um "melhor nível" - buy-stop apenas para baixo, buy-limit apenas para cima, sell-stop apenas para cima, sell-limit apenas para baixo.
  • PendPriceFollow - modo de acompanhamento de preço. A ordem é modificada a cada mudança de uma determinada variável PendPromPrice, a ordem é substituída apenas por um "melhor preço" (veja a descrição da variável PendNewSigMode).
  • PendDelete - excluir a ordem pendente em um sinal de negociação oposto. No valor false, é possível que duas ordens pendentes em direções diferentes existam simultaneamente.
  • PendExpiration - tempo de expiração da ordem em minutos (o valor mínimo é 11 minutos).
Lista
Comentário 0