1 EA pode monitorar e negociar múltiplos pares de moedas de dentro de um gráfico? - página 2

 
angevoyageur:

Se você não quiser responder a sua pergunta, não responda, é simples. Não há necessidade de ofender as pessoas.

E acredite, está disponível para mim também, se eu postar tudo o que eu quero postar, tenho pelo menos 1000 pontos de avaliação a mais,



se ele tivesse feito alguma pesquisa e procurado no Code Base então ele tinha encontrado, por exemplo, https://www.mql5.com/en/code/11176

e você pode encontrar mais exemplos como o que ele está pedindo agora está olhando para mim e eu acho que para os outros

que ele não faz o suficiente para aprender a codificar e quer que os outros o codifiquem para obter exemplos de como fazer comércio com um símbolo diferente da EA

sem fazer ele mesmo qualquer tentativa...

Como CodeMonkey escreveu a xennon

O problema aqui não é que isso não pode ser feito, é que você não se preocupou sequer em tentar fazer isso. '

.

se xennon consegue fazer isso responde que ele não gosta, então é também sua maneira de reagir de forma errada.

acho que você entende a situação como eu a vejo...

 
deVries:


se ele tivesse feito alguma pesquisa e procurado na Base de Código então ele tinha encontrado, por exemplo, https://www.mql5.com/en/code/11176

e você pode encontrar mais exemplos como o que ele está pedindo agora está olhando para mim e eu acho que para os outros

que ele não faz o suficiente para aprender a codificar e quer que os outros o codifiquem para obter exemplos de como fazer comércio com um símbolo diferente da EA

sem fazer ele mesmo qualquer tentativa...

Como CodeMonkey escreveu a xennon

O problema aqui não é que isso não pode ser feito, é que você não se preocupou sequer em tentar fazer isso. '

.

se xennon consegue fazer isso responde que ele não gosta, então é também sua maneira de reagir de forma errada.

acho que você entende a situação como eu a vejo...

É claro, concordo.

Mas também concordo que se alguém responder, não há necessidade de ofender o OP (ou qualquer outro usuário). Acho que este fórum precisa de uma atmosfera melhor.

 
deVries:

xennon: é registrado a partir de januari 2012 e agora vem aqui com esta Pergunta ??

me parece que é hora de ele fazer alguma pesquisa, lendo e aprendendo

se ele quer fazer essa EA então ele tem que vir com sua tentativa se ele tiver problemas para fazê-la

é possível .... depois de mais de 2 anos ele sabe que agora com certeza


Sim 2 anos, e daí?! Não quer dizer que tenho andado ativamente mexendo com a MQL, pois não? - na verdade, minha experiência coletiva com a MQL é provavelmente menos de um mês, TOTAL. Eu sugiro que você contribua com algo positivo e útil ou xxxx. Que afirmação estúpida e idiota de se fazer.
 
xennon:

Sim 2 anos, e daí?! Não quer dizer que eu tenho estado ativamente brincando na MQL, pois não? - na verdade, minha experiência coletiva com a MQL é provavelmente menos de um mês, TOTAL. Eu sugiro que você contribua com algo positivo e útil ou xxx. Que afirmação estúpida e idiota de se fazer.

Eu já lhe aconselho a ter cuidado com o idioma. Este é meu último aviso.

Obrigado.

 
xennon:

Sim 2 anos, e daí?! Não quer dizer que tenho andado ativamente mexendo com a MQL, pois não? - na verdade, minha experiência coletiva com a MQL é provavelmente menos de um mês, TOTAL. Eu sugiro que você contribua com algo positivo e útil ou xxxx. Que afirmação estúpida e idiota de se fazer.


o exemplo do codebase i apontou ???? https://www.mql5.com/en/forum/149766/page2#915892

 
xennon:

Estou me perguntando se é possível ter um único EA rodando em qualquer par de moedas, mas fazer com que ele monitore vários pares de moedas e responda aos gatilhos conforme eles surgem em cada par.

Essencialmente quero um EA que sondará todos os pares de interesse, testará critérios pré-configurados em cada um deles e responderá com compra/venda/fecho/alertas, conforme necessário.

Suspeito que isso não possa ser feito, mas estaria interessado em saber se alguém tem alguma idéia de como conseguir isso sem ter que abrir muitos gráficos e aplicar a EA a cada gráfico separadamente, principalmente no interesse da eficiência (melhor ter 1 bloco de código em vez de uma dúzia?).


Thx.


Meu dinheiro estaria em um conjunto de cordas para os símbolos e depois passar por um laço para todos os símbolos de interesse

Algo como

string nameArray[]={"EURUSD","...","USDJPY"};

então

for(x=numberOfSymbols;x>=0;x--)
   {
   string symbol=nameArray[x];
   CustomCondition(symbol)
   ....
   .....
//or something like that
 
xennon:

Estou me perguntando se é possível ter um único EA rodando em qualquer par de moedas, mas fazer com que ele monitore vários pares de moedas e responda aos gatilhos conforme eles surgem em cada par.

Essencialmente quero um EA que sondará todos os pares de interesse, testará critérios pré-configurados em cada um deles e responderá com compra/venda/fecho/alertas, conforme necessário.

Suspeito que isso não possa ser feito, mas estaria interessado em saber se alguém tem alguma idéia de como conseguir isso sem ter que abrir muitos gráficos e aplicar a EA a cada gráfico separadamente, principalmente no interesse da eficiência (melhor ter 1 bloco de código em vez de uma dúzia?).


Thx.

Olá xennon,

A resposta curta à sua pergunta é sim.

Pensei em fazer algo semelhante, mas ainda não cheguei a codificar nada, então vou lhe dar o esboço básico de como eu estruturaria o código, mas não específicos, pois provavelmente seria melhor se você mesmo pesquisasse como codificar cada parte e se referisse à base de código e outras fontes como exemplos de codificação como um exercício de aprendizagem, pois isso o ajudará mais na escrita de códigos futuros do que simplesmente copiar código de exemplos e colar uma solução juntos sem realmente entender o que está acontecendo e por quê, além de ajudar na depuração de erros de código. Embora a base de código possa ser confusa se você não estiver familiarizado com a codificação, pois alguma terminologia pode ser difícil de seguir.

Também como minha idéia ainda não foi testada ou implementada, então existem possivelmente melhores maneiras de codificá-la ou bugs que eu não previ, pois não sou um codificador mestre por um tiro no escuro e estou bastante enferrujado em geral, então se alguém tiver alguma sugestão, sou todo ouvidos e se houver erros, por favor não me abata.

A idéia geral é usar o evento do timer de milissegundos, pois o evento OnTick só funcionará para o gráfico ao qual está anexado, de modo que os ticks para outros pares de moedas não gerarão um evento de tick e o EA não funcionará, mas o timer de evento de milissegundos pode acionar várias vezes por segundo e monitorar as mudanças de preço. Use também três arrays, um para armazenar as cordas dos símbolos que você deseja usar e outro para armazenar os dados de preços.

Vou tentar explicar isso um pouco. O nome do arrayeArray armazenará cada símbolo como um array, mas o mais importante é que o elemento do array pode ser usado para definir a posição de outros dois array, pois eles não podem usar uma string para localizar uma posição em um array, mas o valor do índice pode. Como os ticks para cada símbolo são recebidos em momentos diferentes, os dados escritos no PriceArray não estarão todos ao mesmo tempo, já que alguns símbolos estão mais ativos em momentos diferentes, então o segundo array armazena o índice para o array de Dados de Preço para que possa ser escrito rapidamente sem sobrescrever nenhum dado de preço passado. O terceiro array escreverá os dados de preços necessários que você precisar.

O código é uma combinação de código e inglês com o que precisa ser adicionado. É muito simples, mas deve fornecer a você um ponto de partida para sua idéia. Há numerosas lacunas, como quando lidar com as arrays quando elas chegam ao fim, mas tudo isso faz parte da curva de aprendizado. Eu sugiro que o código funcione com um símbolo e depois dois, e assim por diante, para permitir que você elimine e corrija quaisquer erros no código. Como eu disse, este é apenas um rascunho, então use-o como tal e melhorias são possíveis, por exemplo, você pode usar um tipo de dados de Estrutura ou um objeto em vez dos três arrays para armazenar os dados do tick, mas este projeto é um pouco mais simples para começar e você pode olhar para Estruturas e Programação Orientada a Objetos em um estágio posterior da codificação.

Eu tentei ser claro, mas isto pode ser muito confuso para você, então se tiver mais perguntas sobre clareza, me avise e eu ajudarei onde puder, mas infelizmente não tenho tempo para codificar nada como isto.

Aqui está o pseudo-código,

// OnInit ()
    {
     string nameArray[]={"EURUSD","...","USDJPY"};                         // As suggested by thrdel. Creates an array with currency pairs
     int TicksRecorded [#  of symbols monitored];                           // Records the required position in the PriceData array to write the next tick data to for each symbol
     double PriceData [#  of symbols monitored][Ticks][data to record];     // Stores price data for each symbol required for as many ticks as required

     Create the timer and set an appropriate interval
     Open a file to save data if required for future use
     
     for (x=0; x < #  of symboels; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {                                                               // Also adapted from thrdel's code example
            PriceData [x][0][0] = Ask;
            PriceData [x][0][0] = Bid;
            ... whatever else you want to record
           }

// EventSetMillisecondTimer()
    {
     Refresh all price data for all symbols
     for (x=0; x < #  of symbols; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {
            if ((current Ask != to previously recorded Ask for that x) or (current Bid != to previously recorded Bid for that x)... and every other price data you want)
                {
                 TicksRecorded [x]++;                                    // Increments the position in the PriceData array holding the latest tick data for that symbol
                 PriceData [x][TicksRecorded[x]][0] = Ask;
                 PriceData [x][TicksRecorded[x]][1] = Bid;
                 ... and whatever else you want to record
                 Flag to indicate a new tick has been received set to true
                }
            if (new data)
                {
                 Set new data flag to false
                 Do custom action
                }
           }
     }

// OnDeinit ()
     {
      Kill the timer
      Save data to a file if required
     }
 

Eu simplesmente uso as Variáveis Globais para permitir que meu monitor/manufatura de um único gráfico.

Embora você tenha que tornar suas ea um pouco mais robustas e não específicas de um gráfico.

 

Por que o seguinte não funcionaria?


se (isto é verdade){

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,0,"",0,0,0,Red);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,0,"",0,0,0,Green);

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,0,0,"",0,0,0,Verde);

}


pops um erro 4106 símbolo desconhecido

 
Daniel Laverdiere: Por que o seguinte não funcionaria?

se (isto é verdade){

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,0,"",0,0,0,Red);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,0,"",0,0,0,Green);

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,0,0,"",0,0,0,Verde);

}


pops um erro 4106 símbolo desconhecido

  1. Quando você postar o código, use o botão SRC !

  2. Se o padrão de nomenclatura de seus gráficos não for exatamente"BasQuo", então não pode funcionar.

  3. Não negocie várias moedas em um único EA.