[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 747

 
xrust:


O alerta não funciona - no testador ele se transforma em uma impressão... O testador tem uma peculiaridade de processar as condições comerciais (ordens e lógica) primeiro, e só depois, se houver tempo suficiente, imprimir, portanto só o somento, e esta operação leva muito mais tempo do que a impressão.

Rustam, acho que todos sabem disso, mas é a impressão que não imprime nada... Talvez esta seja uma maneira de acertar...
 
artmedia70:





Infelizmente, a rede de arrasto não funciona. Dá um erro na compilação. O que precisa ser consertado?
 
artmedia70:

??????????


Tente reiniciar o terminal.
 

Como faço para calcular a quantidade de últimos negócios perdidos em denominações!!! Se você puder, o código ...

Está sol ao ar livre, minha cabeça não está funcionando ..... )

Obrigado ...
 

Há características no fio da I.Kim que podem ajudar você! - https://www.mql5.com/ru/forum/107476

A função GetProfitFromDateInCurrency(). Página 18

Esta função retorna o lucro total na moeda das posições fechadas desde uma determinada data

Função isLossLastPos(). Página 21

Esta função retorna a bandeira de perda da última posição fechada. Bandeira erguida - Verdadeiro - última posição foi fechada com prejuízo. Bandeira omitida - Falsa - última posição foi fechada ou com valor zero ou com lucro. Esta função não considera permutas e comissões. A seleção da posição é definida por parâmetros externos:

Função isCloseLastPosByStop().

Esta função retorna a bandeira para fechar a última posição por meio de uma parada. Bandeira hasteada - Verdadeiro - StopLoss acionado. Bandeira arriada - Falso - a posição foi fechada por outro motivo

Função NúmeroOfLossPosToday() Página 24

Esta função retorna o número de posições perdidas que foram fechadas hoje.

 
DaVinci:

Infelizmente, a rede de arrasto não funciona. Dá um erro na compilação. O que precisa ser consertado?
Que tipo de rede de arrasto? E que erro?
 

Caros amigos, Boa tarde.

Lamento que a pergunta não esteja diretamente relacionada à escrita de mql e robô, mas eu realmente quero entendê-la para uma análise mais aprofundada dos processos de câmbio e forex.

O problema é este:

Há um excelente arquivo, que exibe o valor de máximos/mínimos de ZigZag e o tempo de formação desses máximos/mínimos

Você precisa construir a seguinte tabela com base nestes dados:

Por favor, me diga como fazer isso no Excel 2007.

(percebo que esta é uma pergunta amadora, mas depois das férias eu preciso ficar em forma agora)

Muito obrigado de antemão.

 

Até agora eu não tive que lidar com EAs em várias moedas . Alguém pode me dizer brevemente se o MetaTrader permite testar/optimizar este tipo de EAs, quais são os problemas e limitações no momento, etc. Quais são as peculiaridades de escrever tais EAs em comparação com os EAs padrão?

Obrigado!

 
Morzh09:

Boa tarde, amigos...

Tanto quanto sei, o resultado final deve ser aproximadamente este quadro:

Se assim for, para obtê-lo no Excel 2007, faça o seguinte:
Pegue o arquivo CSV gerado pelo script, abra-o no Excel.
Eliminar colunas desnecessárias, deixando apenas Hora e Data ZigZag, respectivamente.
Em seguida, selecione as colunas restantes, abra a aba "Inserir", clique em "Gráfico" e selecione o tipo "Gráfico". O gráfico é desenhado automaticamente com os parâmetros padrão. Em seguida, se necessário, alterar o preço de divisão nos ajustes dos eixos, adicionar uma grade, etc.

No arquivo, o CSV original, por exemplo, e o gráfico resultante no formato XLSX.

Arquivos anexados:
 
POR FAVOR, ME AJUDE!!! No seguinte código eu verifico se o pedido foi rentável ou não! Se não contar a quantia!!!
Se o primeiro comércio não foi lucrativo, então o ciclo de contagem é iniciado e é adicionado para sempre.

Mas há um senão!!! Se um negócio é lucrativo, então todos os outros pedidos perdidos são contados normalmente ....

double orderProf; // Contador para o número de negócios perdidos

double CalculateLots(){
double Res=0.01;
bool bProfit=true;
int PrevTime=-1;
double tmpLots;
for (int i=0;i<OrdersHistoryTotal();i++){
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continuar;
if (OrderSymbol()!=Symbol() continuar;
if (OrderCloseTime()<PrevTime) continuar;
PrevTime=OrderCloseTime();
if (OrderProfit()>0){bProfit=true; orderProf=0;} se (OrderProfit()<0){bProfit=falso; orderProf++;}
tmpLots=OrderLots();
}


return(Res);
}
Razão: