Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 318

 
barabashkakvn:

Aqui está mais:

Deve ser experimentado.

Obrigado, preciso de o marcar nos meus favoritos.

Então, a animação pronta acaba (em formato gif) no gráfico não pode ser empurrada, ou o progresso foi mais longe e há uma solução simples?

 
pako:

Para soar um evento comercial usando ferramentas MQL5, pode usaras funçõesAlert() ePlaySound(). SeAlerta() for usado, o mesmo som será sempre tocado e a janela de mensagem abrir-se-á.

Interessante ideia de eventos de voz para Consultores Especialistas!

Seria capaz de fazer este som para o MT4?

Tento (em MT4) soar o seguinte evento: "fechar ordem por SL ou TP".

Não o posso fazer de uma forma "simples".

(Ou talvez todas as condições iniciais devam ser "colocadas" numa matriz ....?? .... como fazê-lo correctamente?)

Talvez alguém tenha lidado com esta questão da voz?

 
mobility-energy:

...

Talvez alguém tenha enfrentado esta questão da voz?

Veja os exemplos neste artigo:Receitas MQL5 - Voicing Trade Events in MetaTrader 5

Função SoundNotification().

 

tol64:


Veja os exemplos neste artigo:Receitas MQL5 - SoundNotification of Trade Events in MetaTrader 5

Função SoundNotification().

Obrigado pelo comentário.

Já procurei (cuidadosamente) antes, é exactamente o que preciso (!!!), mas a versão para MT5.

Ah, preciso da mesma versão (sons) apenas para o MT4 (Receita para MT4),

Preciso de uma versão semelhante (sons) apenas para o MT4 (Prescrição para MT4).

Ainda não consigo perceber correctamente como fazer um som no código para MT4 ao fechar uma encomenda (exactamente) por SL (TP).

Os aspectos gerais da abertura/fecho de ordens (som) já estão resolvidos/desenvolvidos.

Não posso determinar correctamente as condições de SL (TP) e as funções a executar.

ou seja, a encomenda é aberta e modificada, ok!

se a encomenda for encerrada devido a condições de lucro, ok! A ordem fecha e "sons".

Mas se definir SL (TP) após a modificação da ordem, nada será "soado". Se SL(TP) foi accionado, após a modificação da ordem nada será "soado", ou seja, o terminal fecha a ordem "silenciosamente".

ou seja, o terminal fecha a encomenda "silenciosamente". indicação simples (como a procura de encomenda e se()) não ajuda ou eu indico-a incorrectamente.

Talvez devêssemos "colocar" todas as encomendas numa matriz e definir uma condição (verificação da matriz, selecção a partir de uma matriz) ,

e depois quando esta condição é preenchida SL(TP ) sobre "som" ... Mas, como descrevê-lo correctamente em código?

Eu olhei (experimentei) algumas variantes "kim's" de eventos de sonorização ,

Quando as ordens pendentes são desencadeadas e o evento é anunciado (condições+arranjo), tudo funciona bem,

Tenho uma boa ordem de trabalho, mas semelhante ao SL(TP) não funciona (talvez eu esteja a usar algo errado), é por isso que estou a perguntar aqui. Talvez alguém tenha uma solução, que já esteja provada e que funcione em código?

Eu gostaria de não complicar muito as coisas,

Gostaria que não fosse tão complicado, porque não é o principal no comércio, mas precisa de ser utilizado como um indicador auxiliar (som que acompanha todos os eventos).

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

Encontrei uma solução, funcionou, graças a todos pela discussão.

assunto encerrado.


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

 

Caros utilizadores do fórum!

Estou a tentar ordenar uma matriz unidimensional. A matriz é declarada como estática com o número de elementos 150. Primeiro tentei ArraySort(). Tenho uma sobrecarga. Escrevi uma ordenação simples por mim mesmo (o código abaixo).

Imprimi tudo o que pude, incluindo os valores e índices dos itens da matriz. O resultado é o mesmo. A impressão não mostra quaisquer índices fora dos limites da matriz.

O que pode ser?

Fico-lhe grato,

e2718

for(i=0;i<n;i++) ag[i]=pow(o[i]*h[i]*l[i]*c[i],0.25); //Создание массива

Print("ag0=",ag[0]," ag1=",ag[1]," ag2=",ag[2]," ag3=",ag[3]," ag4=",ag[4]," ag5=",ag[5]); //Печать значений проходит

for(i=1;i<=n;)//Начало сортировки методом вставки
 {
 Print("i=",i); 
  w=ag[i]; j=i-1;
  Print("j=",j); 
  while((w<ag[j]&&(j>=0)))
   {
    ag[j+1]=ag[j];j=j-1;
   }
  ag[j+1]=w; 
 } 
//if(!ArraySort(ag))return;//Стандартная сортировка

Resultado em ambos os casos:
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:00:30 matriz fora do alcance em 'EHHT.mq5' (145,14)
2014.11.23 20:16:30 Núcleo 1 2014.11.21 00:00:30 j=0
2014.11.23 20:16:30 Núcleo 1 2014.11.21 00:00:30 i=1
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:00:30 ag0=1.254399984056122 ag1=1.254224993272838 ag2=1.254049991029702 ag3=1.254024993271765 ag4=1.254 ag5=0.0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:00:30 t5=1970.01.01 00:00:00:00o1=0.0 h1=0.0 l1=0.0 c1=0.0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:00:30 t4=2014.11.21 00:00:00:00o1=1.254 h1=1.254 l1=1.254 c1=1.254

Pergunta: O que está errado? Onde está a saída fora da matriz?

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
e2718:


O código é melhor inserido da seguinte forma:inserir o código correctamente no fórum

Que linha tem o número 145?

E depois há esta condição:

for(i=1;i<=n;)//Начало сортировки методом вставки

parece que deveria ser:

for(i=1;i<n;)//Начало сортировки методом вставки
 

Boa tarde!

Pode por favor dizer-me como avaliar o separador TERMINAIS (Ctrl + T) da janela TERMINAIS do terminal comercial?

Puramente visual...

 
e2718:

Caros membros do fórum!

A tentar fazer a ordenação numa matriz unidimensional.

Não invente uma bicicleta. Utilizar a biblioteca padrão, nomeadamente as classes do grupo CArray... (CArrayObj, CArrayInt, etc.) A triagem é feita o mais rápido e bem possível. É possível ordenar nestas matrizes por qualquer critério.
 
e2718:

Caros utilizadores do fórum!

Estou a tentar ordenar uma matriz unidimensional. A matriz é declarada como estática com o número de elementos 150. Primeiro tentei ArraySort(). Tenho uma sobrecarga. Escrevi uma ordenação simples por mim mesmo (o código abaixo).

Imprimi tudo o que pude, incluindo os valores e índices dos itens da matriz. O resultado é o mesmo. A impressão não mostra quaisquer índices fora dos limites da matriz.

O que pode ser?

Fico-lhe grato,

e2718


Resultado em ambos os casos:
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:00:30 matriz fora do alcance em 'EHHT.mq5' (145,14)
2014.11.23 20:16:30 Núcleo 1 2014.11.21 00:00:30 j=0
2014.11.23 20:16:30 Núcleo 1 2014.11.21 00:00:30 i=1
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:00:30 ag0=1.254399984056122 ag1=1.254224993272838 ag2=1.254049991029702 ag3=1.254024993271765 ag4=1.254 ag5=0.0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:00:30 t5=1970.01.01 00:00:00:00o1=0.0 h1=0.0 l1=0.0 c1=0.0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:00:30 t4=2014.11.21 00:00:00:00o1=1.254 h1=1.254 l1=1.254 c1=1.254

Pergunta: O que está errado? Onde está a saída fora da matriz?

Obrigado pela ciência da inserção do código! Eu próprio não o consegui. A linha 145 é uma linha com o loop while. A primeira referência à matriz ag é aí feita. A primeira chamada leva a um conflito. O comentário sobre o limite superior do laço não afecta isto. Além disso, porque é que chamar o ArraySort(ag) de classificação padrão leva ao mesmo resultado?


 
e2718:

Para compreender onde está o erro, é necessário não só este pedaço de código, mas também a declaração das variáveis. Só podemos adivinhar o que aí declarou.

E aqui está outro link:Fórum: quando responde, o cursor salta para a citação

Razão: