Ajuda na codificação - página 337

 
alpha24:
Olá Mladen Sir,

Depois de muito tempo, estou solicitando o código Bollinger Band no MA. O mesmo que MA no indicador MA. em janela separada. A média móvel não é necessária para visualizar na janela indicadora. BB com desvio decimal (0,01), formulário EMA ou SMA. Você pode fazer como de costume?

Obrigado de antemão

alfa24

Você não precisa de um novo indicador para isso

Use qualquer ma que já esteja em janela separada, e então basta arrastar as faixas de bollinger para aquela subjanela e escolher dados indicadores anteriores como um campo de preço

 
mladen:
alfa24

Você não precisa de um novo indicador para isso

Use qualquer ma ...

Sim senhor, mas o problema é que não há opção de desvio nas casas decimais e outro é que se eu tentar usar mais indicadores na mesma janela há confusão nos dados anteriores e nos primeiros dados. Portanto, por favor

 

Hi,

Eu não sou shure, se o maillink.dll estiver trabalhando com build > 600.

Eu tentei o maillink.dll com gmx e googlemail e estou sempre recebendo "-2".

do MailInit(string,int,string,string); função de volta :-(

Eu também tentei a xpMail.dll do codersguru está quebrando minha conta metatrader, alguém sabe de outra possibilidade de enviar um e-mail de um EA para dois endereços de e-mail diferentes?!?

 
sunshineh:
Hi,

Eu não sou shure, se o maillink.dll estiver trabalhando com build > 600.

Eu tentei o maillink.dll com gmx e googlemail e estou sempre recebendo "-2".

do MailInit(string,int,string,string); função de volta :-(

Eu também tentei a xpMail.dll do codersguru está quebrando minha conta metatrader, alguém sabe de outra possibilidade de enviar um e-mail de um EA para dois endereços de e-mail diferentes?!?

As partes da corda são o problema.

O antigo metatrader 4 usava strings ANSI. Eles mudaram isso para strings unicode. As strings unicode estão usando 2 bytes por caracter, enquanto ANSI usa apenas 1 byte por caracter. É por isso que você está tendo problemas - os dlls estão recebendo strings que são ilegíveis para eles.

 

Por favor, corrija o indicador que você precisa para colocar a seta no lugar dos quadrados.

Arquivos anexados:
.........png  141 kb
.......png  30 kb
tro_bias_ez.ex4  12 kb
 
DMNIK:
Por favor, corrija o indicador que você precisa para colocar a seta no lugar dos quadrados.

DMNIK

O arquivo do ex4 não pode ser editado e alterado

 

Obrigado pela explicação clara!

Que deve funcionar, se eu mudar cada string para unicode, antes de chamar as funções da dll?

Já existem funções para mudar ANSI para unicode e unicode para ANSI

 

Ou não está funcionando porque o Unicode-string está em uma matriz?!?

Outra pergunta:

Como eu posso jogar mais diferente

Arquivos PlaySound-wav em linha?

Eu tentei com Sleep() entre, mas não está funcionando :-(

 
sunshineh:
Ou não está funcionando porque o Unicode-string está em uma matriz?!?

Outra pergunta:

Como posso jogar mais diferente

Arquivos PlaySound-wav em linha?

Eu tentei com Sleep() entre, mas não está funcionando :-(

sunshineh

Logicamente eles são os mesmos: conjuntos de caracteres. Exceto que o caracter ANSI leva 1 byte enquanto o caracter Unicode leva 2 bytes. Isto foi feito para incluir todas as várias línguas do mundo (quando Unicode foi inventado - nada a ver com metatrader). Agora, se a dll está esperando ANSI e recebe unicode string, ela irá interpretá-lo erroneamente (e vice-versa). Se sua dll está usando dlls você tem que converter as novas strings para um conjunto explícito de caracteres não assinados (usando StringToShortArray() a fim de torná-la acessível à ANSI dll) e o retorno deve ser convertido para uma string usando CharArrayToString() (a fim de torná-la acessível ao metatrader)

________________________

A partir do sono : A função Sleep() é desativada nos indicadores, só funciona nos EAs. Sempre foi assim (não é uma novidade de uma nova metáfora).

Além disso, a metatrader está executando ordens em uma paz de código sequencialmente. O que significa que você não pode começar a tocar um arquivo de som e depois, sem ser terminado, continuar e tocar outro. Também, tanto quanto sei, eles estão limitando a duração do arquivo de som (a fim de evitar o congelamento do terminal - como você provavelmente notou, coisas como alertas e sons são centralizados - veja quando gráficos diferentes emitem alerta ao mesmo tempo - isto é, uma única janela que você vê)

Agora eu poderia continuar, mas o problema do metatrader é que eles não resolveram adequadamente a execução de rotinas assíncronas (na verdade não tem idéia sobre isso) e isso traz muitas limitações

 

Verificar se as últimas ordens fechadas foram lucrativas

Olá,

Gostaria de verificar se meus três últimos negócios fechados de venda ou compra foram lucrativos, e mudar um valor de cordel dependendo disso.

Eu tenho este código (MT4):

for(int i=(OrdersHistoryTotal()-1);i>=0;i--);

{

OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==BUY)

{

//for buy order

if(OrderType()==OP_BUY && OrderProfit()>0) last=1;

if(OrderType()==OP_BUY && OrderProfit()<0) last=0;

}

}

for(int j=(OrdersHistoryTotal()-1);j>=0;j--);

{

OrderSelect(j, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==SELL)

{

//for sell order

if(OrderType()==OP_SELL && OrderProfit()>0) last2=1;

if(OrderType()==OP_SELL && OrderProfit()<0) last2=0;

}

}

Mas não funciona para mim.

Como eu deveria modificá-lo?

Obrigado pela ajuda.