Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Se você incluir o arquivo via include, você pode declarar variáveis externas e não precisa passar nenhum parâmetro. Para evitar confusão com os nomes das variáveis e funções, é necessário usar prefixos diferentes nos nomes para cada estratégia.
Desculpe a interrupção, mas uma agonia tão longa sobre uma questão tão simples não deixa indiferente:)
Se você incluir o arquivo via include, você pode declarar variáveis externas e não precisa passar nenhum parâmetro. Para evitar confusão com os nomes das variáveis e funções, é necessário usar prefixos diferentes nos nomes para cada estratégia.
Desculpe, mas agonias tão longas sobre uma questão tão simples não o deixam indiferente:)
>> Obrigado. >> Vamos tentar.
Se você incluir o arquivo via include, você pode declarar variáveis externas e não precisa passar nenhum parâmetro. Para evitar confusão com os nomes das variáveis e funções, é necessário usar prefixos diferentes nos nomes para cada estratégia.
Desculpe por interromper, mas agonias tão longas sobre uma questão tão simples não o deixam indiferente:)
Estamos falando de funções de importação em EA compilada (ex4).
Sinto muito, como sempre não estou falando de... Que tal importar de uma biblioteca compilada?
-
Se o módulo principal for compilado, então não é um problema usar o inculcador com estratégia, tudo será compilado. Se o módulo principal é de código aberto, mas a estratégia é compilada, então você pode fazer um adaptador na forma de inculdnik de código aberto.
Caros senhores!
Estou considerando o seguinte diagrama de corrente de conexão:
A função AG_AT é uma chave para selecionar as estratégias a serem unidas.
Minhas senhoras e meus senhores!
Por favor, responda a uma pergunta.
Se a função AT não é um interruptor, mas contém código de estratégia (embora eu entenda que não faz diferença), como a aplicação distingue que a função AT dá uma instrução (por exemplo, referindo-se ao terminal) a ela, em vez de comercializá-la ela mesma?
Desde a descrição até a aplicação:
Исполнение функции АТ связано с двумя основными возможностями.
A primeira é que a função AT pode negociar por conta própria - gerar ordens comerciais e enviá-las para o servidor. Ao mesmo tempo, a função não pode processar quaisquer dados recebidos da aplicação (ou processar uma parte de tais dados), mas pode realizar seus próprios cálculos usando todas as capacidades da MQL4, incluindo chamar o terminal para processar as ordens, obter cotações atuais, calcular critérios de negociação, gerenciar objetos gráficos, etc.
A segunda característica está diretamente relacionada com a aplicação AutoGraf 4. Esta função pode instruir a aplicação AutoGraf 4 a instalar quaisquer instrumentos necessários com configurações pré-definidas em pedidos específicos ou uma tabela de preços, alterar as configurações gerais da aplicação, apagar instrumentos, exibir mensagens para o usuário, etc. (parâmetros de saída). (parâmetros de saída).
Se a função AT gerar uma ordem comercial e não houver linha de código a ser contabilizada na aplicação, ela mesma será negociada. O pedido, neste caso, simplesmente transmite o pedido para o terminal sem qualquer contabilidade ou processamento.
Se houver, então a ordem passa pela aplicação nos parâmetros da função AT passados através do link.
Eu entendo isso corretamente?
Desculpe, não era isso que eu queria dizer, como sempre... Que tal importar de uma biblioteca compilada?
-
Se o módulo principal for compilado, então não é um problema usar o inculcador com estratégia, tudo será compilado. Se o módulo principal é de código aberto e a estratégia é compilada, então você pode fazer um adaptador na forma de inculcador de código aberto.
Nada a pedir desculpas, a discussão está no ponto.
--
Um pouco de terminologia. Há dois conceitos de espelho - exportação e importação. Eles são utilizados em relação ao nosso próprio território.
As exportações são provenientes de nós fora de nossas fronteiras. Por exemplo, as exportações de gás da Rússia para a Europa.
A importação é do exterior para nossas fronteiras. Por exemplo, a importação de areia da África para a Sibéria.
Neste caso, estamos falando de importações. Nosso território aqui é o especialista AG_exp.ex4. Esta é a base do aplicativo AutoGraf 4 que é fornecido ao usuário como um arquivo compilado. O código-fonte do Expert Advisor não é fornecido (naturalmente, já que a aplicação é distribuída comercialmente, embora seja gratuita) e, portanto, nenhum módulo pode ser adicionado ao Expert Advisor via inclide (por usuário-programador).
--
A tarefa era permitir ao usuário anexar à aplicação AutoGraf 4 seus próprios algoritmos de negociação escritos em MQL4 e executados como arquivos .ex4 de estratégias. Para resolver este problema, o Expert Advisor AG_exp.ex4 inclui um código que importa para o Expert Advisor a função de negociação automática AG_AT que está disponível tanto como arquivos .ex4 como mq4. Mais adiante, o usuário pode decidir por ele mesmo como organizar os códigos. Uma das duas variantes é a mais conveniente:
1. Para escrever seu próprio código diretamente na função AG_AT() e compilar o arquivo AG_AT.mq4 com o mesmo nome, obtendo AG_AT.eq4.
Пример: http://autograf.dp.ua/Pages/2/26/267/26711/26711_1.htm, примеры 1-15: http://autograf.dp.ua/Pages/2/26/267/2679/2679_1.htm
2. Escreva seu próprio código para a nova função em um arquivo de estratégia separado, por exemplo, My_Strategy() no arquivo My_Strategy.mq4. Escreva em AG_AT() a importação da função My_Strategy() do arquivo My_Strategy.eq4 (versão moderna). Примеры http://autograf.dp.ua/Pages/2/26/267/26712/26712_1.htm, http://autograf.dp.ua/Pages/2/26/267/26712/26712_2.htm
.
Em nenhuma dessas variantes é possível escrever variáveis externas para que elas estejam disponíveis ao usuário. A única possibilidade de especificar variáveis externas é escrevê-las em AG_exp.ex4 durante a fase de projeto, o que é feito. Os valores das variáveis são passados em trânsito através de AG_AT() para o usuário My_Strategy() na matriz de instrumentos. Esta é a tecnologia adotada no último lançamento do AutoGraf 4 e funciona bem.
--
O que tudo isso significa para o usuário? Isto significa que qualquer usuário pode escrever sua própria estratégia e executá-la em um ambiente AutoGraf 4. Ao mesmo tempo, sua própria estratégia funcionará e todas as características do AutoGraf 4 estarão disponíveis para o usuário. Em particular, qualquer ferramenta AutoGraf 4 (!) como pulôveres, capotagens, sons, etc., pode ser controlada a partir da estratégia.
Para programadores profissionais, a tecnologia oferece a capacidade de passar uma variável de senha personalizável para o arquivo de estratégia. Isto significa que os programadores podem escrever estratégias para o AutoGraf 4 e distribuí-las em uma base comercial (por exemplo, somente para uma conta específica).
Caros senhores!
Estou considerando o seguinte diagrama de corrente de conexão:
A função AG_AT é um interruptor para selecionar as estratégias a serem unidas.
Sim. Correto.
Minhas senhoras e meus senhores!
Por favor, responda a uma pergunta.
Se a função AT não é um interruptor, mas contém um código de estratégia, então (embora eu entenda que não faz diferença), como a aplicação distingue que a função AT está dando instruções (por exemplo, referindo-se ao terminal) a ela, em vez de comercializá-la ela mesma?
A estratégia pode passar para a aplicação:
- valores de parâmetros ajustáveis comuns (SL, TP, Lots, etc.)
- Parâmetros dos instrumentos a serem instalados ou excluídos
A estratégia não transmite ordens para abrir e fechar ordens para a aplicação (isto é planejado no AG 5 com base nas capacidades da MQL 5) e atualmente (no AG 4) isto não é estritamente necessário. A estratégia pode e deve abrir/fechar ordens usando o próprio algoritmo do usuário.
Se a função AT gerar uma ordem comercial e não houver uma linha de código a ser registrada no pedido, a estratégia comercializará por si só. O pedido, neste caso, simplesmente transmite o pedido para o terminal sem qualquer contabilidade ou processamento.
Se houver, a ordem passa pela aplicação nos parâmetros da função AT passados via link.
Estou entendendo isso corretamente?
Não está muito claro o que você chama de "uma linha de código a ser contabilizada na aplicação".
O pedido é responsável pelas ordens sempre que recebe o controle de volta. A cada iteração de um grande ciclo, a matriz recalculada de pedidos é passada para a AG_AT e depois para a estratégia. Com base na contagem de pedidos, a estratégia pode calcular as ações de controle apropriadas. A aplicação da estratégia deve ser atualizada com mais freqüência para que a estratégia tenha sempre uma nova gama de escrituração de pedidos.
Uma ordem comercial de qualquer parte do programa (aplicação ou AG_AT ou uma estratégia) vai diretamente para o terminal MT4 e diretamente para o servidor. Após a execução da ordem no servidor, o controle retorna da mesma forma ao ponto de envio da ordem comercial. Enquanto a ordem está sendo processada no servidor, tudo é silencioso e à espera de resposta - nada acontece (se não estou enganado, no MT5 esta tecnologia será mudada - não vamos esperar, vamos trabalhar:)