Selecione um símbolo nas configurações - página 3

 
Alexey Viktorov:

Preencha um conjunto de caracteres e trabalhe com o conjunto.

Aqui está uma EA gratuita usando o código acima ***


ps; drubashka, você deveria ter removido o link. Entre meus produtos no mercado, apenas DOIS são pagos. Uma de 2017 foi alugada 4 vezes, e a outra de 2014 por 10 libras não foi comprada uma única vez. Portanto, não há nenhuma publicidade a ser esperada aqui.

Não sei porque entrei nesta linha - agora estou lutando, e não está funcionando. Ainda estou procurando uma maneira de fazer com que funcione.

Eu não sei, talvez isto funcione.

struct translate{
   string EURUSD;
   string GBPUSD;
   string USDCHF;
   string USDJPY;
   string USDCAD;
   string AUDUSD;
   string AUDNZD;
   string AUDCAD;
   string AUDCHF;
   string AUDJPY;
   string CHFJPY;
   string EURGBP;
   string EURAUD;
   string EURCHF;
   string EURJPY;
   string EURNZD;
   string EURCAD;
   string GBPCHF;
   string GBPJPY;
   string CADCHF;
};
translate langs;
 
Aleksandr Klapatyuk:

Obrigado por responder. Não sei por que cheguei a este tópico - agora estou lutando e não consigo colocá-lo para trabalhar.

Eu não sei, talvez isto funcione.

Você está perdendo seu tempo. Você não será capaz de preencher a estrutura ou o enumerar programticamente. E a matriz só pode ser usada para uma EA com várias moedas. A EA multimoeda não é aquela que pode ser colocada em qualquer símbolo, mas aquela que pode trocar vários símbolos enquanto estiver em um dos gráficos. Neste link, há um exemplo de uma EA com várias moedas. A seleção de moedas pode ser definida para uma das três opções:

  1. somente o par sobre o qual o Expert Advisor é negociado
  2. uma lista de moedas separadas por vírgula será negociada
  3. todos os pares abertos no momento do lançamento do Expert Advisor são negociados
Mas as opções são selecionadas via enumeração
 
Alexey Viktorov:

Você não deveria estar fazendo isso. Nem a estrutura nem o enumero podem ser preenchidos de forma programática. E a matriz só pode ser usada para uma EA com várias moedas. A EA multimoeda não é aquela que pode ser ajustada a qualquer símbolo, mas aquela que está em um dos gráficos e pode trocar vários símbolos. Neste link, há um exemplo de uma EA com várias moedas. A seleção de moedas pode ser definida para uma das três opções:

  1. somente o par sobre o qual o Expert Advisor é negociado
  2. uma lista de moedas separadas por vírgula será negociada
  3. todos os pares de moedas abertos no momento do lançamento do Expert Advisor são negociados
Mas as opções são selecionadas via enumeração

Obrigado! Comecei a fazer algo que não posso pagar. Prefiro aprender algo mais fácil.

Eu já fiz isso antes - tudo funcionou.

string         Symb[3]={"EURUSD","GBPUSD","EURJPY"};
double         prPos[3];
------------------------------------------------------------
   for(int i=0;i<3; i++)
      if(PositionSelect(Symb[i]))
        {
         prPos[i]=(PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE))/n;
        }
      else
        {
         prPos[i]=0;
        }
 
Aleksandr Klapatyuk:

Obrigado! Estou fazendo algo que não posso fazer. Prefiro aprender algo mais fácil.

Foi assim que eu fiz - tudo funcionou.

Esta é a segunda opção que descrevi. Troque moedas da lista preparada em uma linha separada por vírgula. Mas minha versão é um pouco diferente. A lista tem o seguinte aspecto

"EURUSD,GBPUSD,EURJPY"

então a matriz é preenchida a partir desta lista e a matriz é trabalhada com ela. Além disso, o sufixo da moeda é definido e automaticamente anexado quandoa matriz é preenchida. Isto é para evitar ter que digitar novamente a lista em diferentes contas.

 
Alexey Viktorov:

Não estamos falando da mesma coisa.

simv

syTotal = SymbolsTotal(true) parece ser sempre 1, porque se verdadeiro, SymbolTotal() não mostrará o número de símbolos em Market Watch, mas o número de símbolos selecionados em Market Watch e isto levanta a questão de como passar pela lista antes de selecionar o próximo item.

 
andre:


syTotal = SymbolsTotal(true) parece ser sempre 1, porque se verdadeiro, SymbolTotal() não dá o número de símbolos em Market Watch, mas o número de símbolos selecionados em Market Watch e isto levanta a questão de como passar pela lista antes de selecionar o próximo item.

No testador, sim, há sempre um símbolo. É por isso que há um aviso na descrição da EA, que no testador você só pode testar em um símbolo ou em uma lista de símbolos.

 
Infelizmente, para que seja agradável, você mesmo tem que desenhar o painel de entrada, implementar uma lista suspensa, em geral, nada fundamentalmente complicado, mas nublado. Se a religião e/ou o cliente permitir, então é mais fácil implementá-lo em Sharp, através de windowsform. Quanto à possibilidade técnica de fazê-lo no painel padrão, não vejo nenhum problema em princípio, é mais uma questão do desejo dos criadores. É possível implementar fornecendo seleção de valores, apenas para compilador devemos introduzir palavras-chave adicionais, para escrever como: __declsymb input string value=__default(ou __pos1), em geral os desenvolvedores de compilador/terminal têm que desenvolvê-lo.
 
Vladimir Simakov:
Infelizmente, para que seja agradável, você mesmo tem que desenhar o painel de entrada, implementar uma lista suspensa, em geral, nada fundamentalmente complicado, mas nublado. Se a religião e/ou o cliente permitir, então é mais fácil implementá-lo em Sharp, através de windowsform. Quanto à possibilidade técnica de fazê-lo no painel padrão, não vejo nenhum problema em princípio, é mais uma questão do desejo dos criadores. É possível implementar fornecendo seleção de valores, para compilador apenas devemos introduzir palavras-chave adicionais para escrever como: __declsymb input string value=__default(ou __pos1), em geral os desenvolvedores de compilador/terminal têm que desenvolvê-lo.

Bem, sim. Se você usa dll, você pode jogar tanques no terminal. Mas o problema foi levantado sem levar em conta as capacidades da dll

 
Alexey Viktorov:

Bem, sim. Se você usar a dll, você também pode jogar tanques no terminal. Mas o problema foi levantado sem levar em conta as capacidades da dll

Em seguida, ou reze aos criadores ou escreva seu próprio painel de entrada. No início do robô (mais complicado com o indicador) no OnTimer() é iniciado o painel de entrada autoescrita, os dados de entrada, depois o robô foi para o trabalho. É assim.
 
Vladimir Simakov:
Então, ou reze aos criadores, ou escreva seu próprio painel de entrada. Quando o robô inicia (mais complicado com o indicador) o painel de entrada auto-escrito é lançado no OnTimer(), os dados são inseridos e o robô começa a funcionar. É assim.

Primeiro você tem que perguntar: "Quem precisa disso?".

Eu gostaria de tentar, mas não funcionou. Eu disse ao consultor especializado que não pode ser feito usando MQL. Mas ninguém lhe perguntou como fazer isso usando outros meios. Para que serve todo esse absurdo? Há aqui pessoas suficientes que podem desenhar desenhos animados na carta terminal.

Razão: