[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 933

 
Dimka-novitsek:

Aqui está


O assessor trabalha. Ele abre negócios
 
gheka:

Ainda estou perplexo e não entendo de onde vem o número sequencial único, tudo é diferente nos exemplos,

se não me engano, não sou eu quem o cria, por exemplo

Como você eliminou a pergunta do PM, sem esperar por uma resposta - vou jogá-la aqui:

Vamos quebrar desta maneira:

índice -

Posição do pedido ou número do pedido, dependendo do segundo parâmetro.
(Posição ou número do pedido, de onde vem????)

"Dependendo do segundo parâmetro" - isso significa que depende de "selecionar" ????

A posição do pedido é sua localização no conjunto de pedidos em seu terminal. Esta é exatamente a posição que estamos procurando no loop:

Busca de pedidos:

for (int index=0; index<OrdersTotal(); index++) // Цикл по терминалу. В кач-ве переменной цикла будет index для наглядности
    {
       if (OrderSelect(index, SELECT_BY_POS) && OrderMagicNumber()==Magic) // Если выбран ордер и магик равен магику советника
           {
                if (OrderTipe()==OP_BUY)                                   // Если нам нужен ордер Бай
                   {
                       //............... Тут код обработки выбранного орд
                   }
           }
    }

Se estamos procurando por SELECT_BY_POS, o próximo parâmetro é por padrão MODE_TRADES e você pode omiti-lo. O consultor especializado procurará posições que ainda não estão fechadas, ou seja, no mercado.

Se precisarmos procurar por pedidos que já foram fechados, então temos que adicionar o seguinte parâmetro após o SELECT_BY_POS: MODE_HISTORY. Então, o Consultor Especialista só pesquisará a lista de posições fechadas e excluirá ou acionará as ordens.

(Se não estou enganado, estas são as ordens que já foram estabelecidas, certo? "0" é a primeira no topo,
"1" é a segunda na lista, e assim por diante).

Exatamente esta é a posição, a posição da ordem na matriz das ordens do terminal, por assim dizer - seu índice - o próprio índice
... E eles estão localizados na matriz a partir de zero células da matriz, embora o número de ordem comece com 1. Isto é, a primeira ordem está localizada na célula zero da matriz, a segunda na primeira, a terceira na segunda, etc. ...

Agora para o bilhete. O bilhete, um número único de um pedido, é atribuído por sua corretora. De acordo com este número, podemos identificar claramente esta mesma ordem ou posição. No entanto, temos algumas reservas. O bilhete deve ser guardado em algum lugar na EA (uma variável ou uma matriz) para que você saiba exatamente qual ordem você precisa para ter este bilhete. Para este fim, utilizo a função de meu próprio livro de pedidos da EA onde armazeno não apenas os dados de pedidos que podem ser obtidos utilizando funções padrão, mas também armazeno nele, por exemplo, os níveis de Fibo, que calculo logo após abrir uma posição e, em seguida, os introduzo em meu livro de pedidos. Então eu escolho facilmente uma posição por seu tempo de abertura e pego e movo o nível de parada de acordo com os níveis de Fibo que guardei para esta posição em minha matriz de ordens ... De lá eu também posso obter o bilhete do pedido que eu preciso e usá-lo mais tarde com funções padrão:

   if (OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime()==0) // Если выбран ордер по тикету и время его закрытия равно нулю
      {
         if (OrderTipe()==OP_BUY)                                   // Если нам нужен ордер Бай
            {
               //............... Тут код обработки выбранного ордера
            }
      }

Aqui é necessário comparar o tempo de fechamento do pedido com zero. Porque durante a seleção contra o bilhete, MODE_TRADES e MODE_HISTORY são ignorados e não são utilizados e temos que ver o horário de fechamento do pedido para determinar se ele está fechado e é selecionado a partir da lista de posições abertas. Se ainda estiver no mercado, sua hora de fechamento também será zero.
Se você quiser ver os dados de uma ordem fechada e tiver que escolhê-la por bilhete, o horário de fechamento deve ser comparado com zero, e se for, a ordem já foi fechada.

piscina -

Fonte de dados para seleção. É utilizado quando o parâmetro selecionado é igual a SELECT_BY_POS. Pode ser um dos seguintes valores:
MODE_TRADES (default) - ordem é selecionada entre ordens abertas e pendentes,
estas são ordens atuais


MODE_HISTORY - ordem é selecionada entre ordens fechadas e excluídas.

e isto é da lista de ordens concluídas, como da lista de registros, certo?

Isso é correto.

duplo OrderProfit( )
devolve um lucro líquido, mas qual? a última encomenda ou todas as encomendas?

Ele devolve o lucro atual para o pedido que ainda não foi fechado.

Se a ordem já tiver sido fechada, ela devolverá o lucro ou prejuízo desta ordem. Um pedido, selecionado.

Sem levar em conta permutas, comissões, etc... Para levá-los em conta, precisamos criar nossa própria função.

=============================================================================

Espero que você descubra ... :)
 

O assessor trabalha. É abrir negócios.

Obrigado!!!! Sabendo que a plataforma comercial está doente, aparentemente.

 
Renown:
Existe a necessidade de uma EA para suavizar a volatilidade (aqui está o valor: Alto[iHighest(NULL, 0, MODE_HIGH, 30, 1)] - Baixo[iLowest(NULL, 0, MODE_LOW, 30, 1)] ) da média móvel exponencial. Tanto quanto sei, isso não pode ser feito pelo iMA padrão e eu preciso escrever uma função para isso? Alguém pode me ajudar com o código?


iMAOnArray

 

bom dia a todos.... há um problema...alguém pode ajudar...?

Estou negociando um EA baseado no princípio do martingale... decidi incluir nele também um stop loss... para calcular uma perda usei a seguinte fórmula...

Stopper = Preço Médio - Stoploss *  Ponto; este não é um bom ajuste para mim, porque a rolha neste caso muda para as próximas curvas... e eu gostaria que ela fosse fixada para todas as curvas, por exemplo 100 pips ou seja, depois de abrir uma parada de pedidos é fixada em 100 pips...Digamos que o segundo joelho abre depois de 30 pips, então a parada deve ser de 70 pips para chegar ao mesmo lugar que o primeiro ... em resumo, eu preciso de uma parada perdida fixa e imutável para toda a série ... se você não se importa de explicar)))) ou me enviar a função)))) eu ficaria grato
 

Surgiu uma pergunta a respeito da detecção de uma tecla pressionada. É necessário rastrear o fato de pressionar e se, por exemplo, K é pressionado, então realizamos algumas ações. Aqui ( _http://msdn.microsoft.com/en-us/library/ms646293%28v=VS.85%29.aspx ) encontrei a função GetAsyncKeyState(int vKey) que é, em princípio, o que eu preciso... Mas há um senão: o fato de pressionar só deve ser definido se uma janela MetaTrader estiver ativa. Estou usando o seguinte código simples em meu Expert Advisor para verificar:

#define VK_K                            0x4B    // K key 
#import         "user32.dll"
   int GetAsyncKeyState(int vKey);

//-----------------------------------------------------------------------------------------------//
int init()  {

 return(0);
}
//-----------------------------------------------------------------------------------------------//
int deinit()   {

 return(0);
}
int start() {
   if(GetAsyncKeyState(VK_K)==0) Print("K не нажата...");
   else {Alert("НАЖАТА K");}
 return(0);
}
Eu estava ouvindo os alertas enquanto escrevia este post :). Por favor, ajude-me a superar este problema =)
 

O horror!!! Amigos, estou perdido... :)

Há dois loops aninhados. Quando eu saio do interior por meio de uma pausa, onde eu saio - no início ou no final do laço externo?

Sobre o suporte de fechamento do suporte externo ou sobre o suporte de abertura?

 
artmedia70:

O horror!!! Amigos, estou perdido... :)

Há dois loops aninhados. Quando saio do laço interno por meio de quebra, de onde saio - no início ou no final do laço externo?

Para o suporte de fechamento do externo ou para o suporte de abertura?

código no estúdio.

Na verdade, logo atrás do parêntese de fechamento do laço interno

 
Necron:

código, por favor.

Na verdade, logo atrás do parêntese de fechamento do laço interno

Obrigado. Foi exatamente o que fiz, mas me ocorreram algumas dúvidas sobre se eu deveria verificar a bandeira no laço externo antes do parêntese de fechamento ou no início após o parêntese de abertura...
 

Será que ninguém sabe como fazer uma parada fixa para a série((((

Há muitos profissionais aqui, o trabalho provavelmente não é tão difícil assim.