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).
Comentário 0