AutoGraf Series 4 - recursos MQL. - página 32

 
Integer писал(а) >>
Que roteiro?

Encontrei-a e dei uma olhada. Todos aqui devem estar agindo com base no princípio "não fique sob a flecha", a autoconfiança do autor simplesmente o rebenta, não há como ir lá.

 
ForexTools >> :
Apaguei todos os meus posts não relacionados à discussão AG. Eu chamo outros "free riders" para fazer o mesmo - vamos respeitar o trabalho dos outros: não é limpo onde (moderadores) limpam, mas onde (usuários) não deitam lixo ;)

Graças à sabluk por entender e apoiar minha "iniciativa". Talvez outros sigam nosso exemplo?

 

Nova versão da série AG 4 - AutoGraf 4.90207 foi lançada.

As mudanças foram feitas:
1. Adicionada a opção de carrapatos mudos.
2. corrigiu o erro de gerenciamento dos instrumentos 17 e 20 (quando o modo AG ou AT foi desativado, quando o preço de mercado do instrumento atingiu o preço de greve, o instrumento não foi apagado; agora ele é apagado automaticamente).
Baixe a nova versão aqui http://autograf.dp.ua/Pages/4/421.htm.

 

O AutoGraf 4 tem resistido decentemente à inovação do 5º sinal.(http://forum.alpari-idc.ru/thread44876.html)


Funciona simplesmente como antes. Nenhuma modificação é necessária (é porque está escrito corretamente - o programa não usa valores de variáveis, definidos numericamente - tudo é construído sobre variáveis, atualizado conforme mudam no servidor, em particular, Ponto, Dígitos, StopLevel etc.). )

As mudanças naturais que têm que ser feitas nas configurações do Expert Advisor dizem respeito aos valores predefinidos dos parâmetros de preços. Por exemplo, SL (StopLoss em pips) = 25, agora temos que defini-lo para 250 ou qualquer valor a critério do usuário, mas não menos de 100 (ou seja, não menor que o valor atual da distância mínima do StopLevel). Proceder da mesma forma com outros parâmetros.

Após a configuração dos parâmetros (na janela de configurações especializadas) é recomendado salvar (lá) as configurações. Além disso, é recomendável criar um novo modelo: modelos de botões - Salvar como.

===

Uma vez as pessoas do cinema filmaram uma casa velha sendo explodida.
Eles colocam os explosivos... Boom! A casa está de pé. Eles plantaram mais. Bum! o piso térreo desaba. Toda a parte superior (4 andares) não desmoronou, a casa apenas ficou flácida por 1 andar. Finalmente foi conseguido explodir na 5ª tentativa.

A construtora comprou as filmagens por muito dinheiro e divulgou sua qualidade de trabalho ao mostrar o filme:)

 

Minhas senhoras e meus senhores!

Por favor, responda à pergunta.

Como a aplicação distingue que a função AT está dando instruções (por exemplo, referindo-se ao terminal) a ele e não comercializando ela mesma?

Исполнение функции АТ связано с двумя основными возможностями.

A primeira é que a função AT pode negociar por si só - ela forma ordens comerciais e as envia para o servidor. Neste caso, a função não pode processar quaisquer dados recebidos do aplicativo (ou lidar com alguns deles), mas pode realizar seus próprios cálculos usando todas as características da linguagem MQL4, incluindo endereçar o terminal para processamento de 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).

 

Minhas senhoras e meus senhores!

Por favor, responda a uma pergunta.

No exemplo acima da função Custom Auto Trade no "Exemplo 2. Abertura e fechamento de ordens de mercado". As ordens de mercado são abertas, mas eu acho que as ordens pendentes são fechadas.

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
// AG_AT.mq4                                             Пример 0 (инструментов нет)
// Пользовательская функция Автоматической Торговли.
// Используется при построении функции автоматической торговли для приложения AutoGraf 4
// Сергей Ковалёв, Днепропетровск, sk@autograf.dp.ua, ICQ 64015987, http://autograf.dp.ua
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 0 жж
#property library   
 
#import "AG_Lib.ex4"
   int AG_Magic_Number();                          // Вычисление MN 
   int AG_Message(string& Message[], string _Text);// Запись сообщений в массив Message[]
#import "AG_Trade_Criterion.ex4"
   int AG_Trade_Criterion_1();                     // Ф-ия определен. торгов. критериев 1
   int AG_Trade_Criterion_2();                     // Ф-ия определен. торгов. критериев 2
#import
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 1 жж
.......
//================================================================================== 7 ==
/*
                                       // Cнять блок комментариев с Примера 2
                                       // и закомментировать Пример 1
                                       // Пример 2. Открытие и закрытие рыночных ордеров.
   int Crit = AG_Trade_Criterion_2();  // Вызов функции вычисления торговых критериев
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   if (OrdersTotal()==0)               // Если нет ордеров, то интересуемся ..
      {                                // .. критериями открытия
      switch(Crit)                     // В этом блоке рассматриваются критерии открытия
         { 
         case 10:                      // Торговый критерий = Открыть_Buy
            MN = AG_Magic_Number();    // Вычисление MagicNumber (рекомендуется)
                                       // Открытие ордера Buy:
            OrderSend(Symbol(),OP_BUY, 0.1,Ask,2,Bid-100*Point,Bid+40*Point,Comm,MN); 
            break;
         case 20:                      // Торговый критерий = Открыть_Sell
            MN = AG_Magic_Number();    // Вычисление MagicNumber (рекомендуется)
                                       // Открытие ордера Sell:
            OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+100*Point,Ask-40*Point,Comm,MN);
         }
      }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   if (OrdersTotal()==1)               // По стратегии возможен только 1 рыночный ордер
      {
      switch(Crit)                     // В этом блоке рассматриваются критерии закрытия
         {
         case 11:                      // Торговый критерий = Закрыть_Buy
            if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
               {                                      
               int _Ord_Ticket = NormalizeDouble(Order[1][4],0);  // Номер ордера
               double _Ord_Lots = NormalizeDouble(Order[1][5],2); // Полное закрытие
               OrderClose(_Ord_Ticket, _Ord_Lots, Bid, 2);        // Закрыть ордер Buy
               }
            break;
         case 21:                      // Торговый критерий = Закрыть_Sell
            if (NormalizeDouble(Order[1][6],0) == 1.0)      // Если тип ордера Sell
               {
               _Ord_Ticket = NormalizeDouble(Order[1][4],0);// Номер ордера
               _Ord_Lots = NormalizeDouble(Order[1][5],2);  // Будем закр.ордер полностью
               OrderClose(_Ord_Ticket, _Ord_Lots, Ask, 2);  // Закрыть ордер Sell
               }
         }
      }
*/
//================================================================================== 8 ==
   return(1);
   }
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж Конец модуля жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 10 жж
if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][6],0) == 1.0)            // Если тип ордера Sell 

Ou talvez eu esteja entendendo mal alguma coisa?

Общее количество ордеров в приложении AutoGraf 4 не должно превышать 30. Нумерация ордеров в приложении AutoGraf 4 начинается с 1. Нулевой индекс в первом измерении массива Order[][] для учёта параметров ордеров не используется. Поэтому массив Order[][] в первом измерении имеет размерность 31. Каждая строка в массиве соответствует одному ордеру и содержит значения следующих параметров ордеров:

[0][0] - número total de pedidos;

[][0] - não utilizado;

[1][1] - OpenPrice - preço de abertura (definição) de um pedido (valor absoluto do preço);

[2] - StopLoss of the order (valor absoluto do preço);

[][3] - Ordem TakeProfit (valor absoluto do preço);

[4][4] - NúmeroOrdens número do pedido;

[5] - Número de lotes do pedido;

[][6] - Tipo de pedido (0=B, 1=S, 2=BL, 3=SL, 4=BS, 5=SS,Trades);

[7] - MagicNumber - O número mágico do pedido;

[8] - Fato comentário 0/1;

[][9] - PrOld- preço inicial da abertura do pedido (valor absoluto do preço).


Do manual:

Tipo de operação para a função OrderSend(). Pode ser qualquer um dos seguintes valores:

Constante Valor Descrição
OP_BUY0Compre
OP_SELL1Venda
OP_BUYLIMIT2COMPRA LIMITAR ordem pendente
OP_SELLLIMIT3Pedido de LIMITE DE VENDA Pendente
OP_BUYSTOP4Ordem STOP Pendente de compra
OP_SELLSTOP5Pendente da ordem de parada da venda

Isto é, deveria ser:

if (NormalizeDouble(Order[1][0],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][1],0) == 1.0)            // Если тип ордера Sell 
 

Minhas senhoras e meus senhores!

Por favor, responda minha pergunta.

Por que nas propriedades da EA meu nome de estratégia "L_1" não é lembrado?


Ao instalar o AG_exp. Eu o anotei, ele é exibido na linha, mas não é lembrado nas propriedades?

 

Minhas senhoras e meus senhores!

Por favor, responda a uma pergunta.

Ao encerrar uma aplicação ou após desinstalá-la, como excluir objetos gráficos não suportados pela aplicação. Por exemplo, como OBJ_ARROW?

 
LeonidSB писал(а) >>

Isto é, deveria ser:

if (NormalizeDouble(Order[1][0],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][1],0) == 1.0)            // Если тип ордера Sell 

Não, não está certo. Veja novamente a tabela (exemplo de pedido) em http://autograf.dp.ua/Pages/2/26/267/2674.htm

Esta página também descreve como os índices da matriz correspondem aos parâmetros contidos na matriz. Observe que estamos falando aqui de um índice na segunda dimensão da matriz Ordem[][].

[0][0] - número total de pedidos;

[][0] - não utilizado;

[][1] - Preço Aberto - preço ao qual a ordem é aberta (conjunto) (valor absoluto do preço);

[2] - StopLoss of the order (valor absoluto do preço);

[][3] - Ordem TakeProfit (valor absoluto do preço);

[4][4] - NúmeroOrdens número do pedido;

[5] - Número de lotes do pedido;

[][6] - Tipo de pedido (0=B, 1=S, 2=BL, 3=SL, 4=BS, 5=SS, Trades);

[7] - MagicNumber - O número mágico do pedido;

[8] - Fato comentário 0/1;

[][9] - PrOld- preço inicial de abertura do pedido (valor absoluto do preço).

---------------

O parâmetro "Tipo de ordem" corresponde ao 6º índice na segunda dimensão da matriz Ordem[][].

if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][6],0) == 1.0)            // Если тип ордера Sell 
 
LeonidSB писал(а) >>

Minhas senhoras e meus senhores!

Por favor, responda a uma pergunta.

Por que nas propriedades da EA meu nome de estratégia "L_1" não é lembrado?

Quando eu estabeleço AG_exp. Eu o escrevi, ele é exibido na linha, mas não é lembrado nas propriedades?

Se você estiver fazendo isso corretamente, deve ser lembrado.

E será lembrado até que você descarregue o Expert Advisor da janela.

Você pode fazer uma de duas coisas, se não quiser reentrar na próxima vez:

1. Salve o Expert Advisor que você definiu para os modelos. Iniciar um novo carregamento a partir de um novo modelo.

2. Save Expert Advisor settings (Salvar configurações do Expert Advisor na janela Preferências), e carregar configurações quando você carregar o Expert Advisor na próxima vez (Carregar botão na janela Preferências).

Você pode encontrar a ordem de anexação de estratégias aqui: http://autograf.dp.ua/Pages/2/26/267/26711/26711_2.htm.

LeonidSB escreveu :>>

Prezado!

Por favor, responda à pergunta.

Ao encerrar uma aplicação ou após desinstalá-la, como excluir objetos gráficos não suportados pela aplicação. Como OBJ_ARROW?

Selecione o objeto e apague-o (pressione Apagar).
Se programático, você pode usar ObjectsDelete() ou ObjectsDeleteAll().

Razão: