Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1905

 
Tretyakov Rostyslav #:

O Expert Advisor trabalha com o servidor comercial e todas as mudanças nos pedidos são solicitadas no servidor.

Grosso modo: Você abriu uma negociação manualmente, o Expert Advisor em um novo tick ou timer pergunta ao servidor sobre o status da conta, recebe uma resposta do servidor que a negociação está aberta e então envia uma mensagem para o host.

Se este for o caso, então o mestre da EA vê outras negociações abertas em outros lugares que não seu símbolo, ou melhor, mudanças na conta causadas por elas, enquanto que ele só deve ver negociações em seu símbolo.

 
novichok2018 #:

Se este for o caso, então o proprietário da EA vê outras negociações abertas não em seu símbolo, ou melhor, mudanças de conta causadas por elas, enquanto que ele só deve ver as negociações em seu símbolo.

Se não houver solicitação de seu símbolo, como if(OrderSymbol()=="EURUSD")

então ele vê todos os ofícios.

 
Tretyakov Rostyslav #:

Se sua EA não pedir um símbolo como if(OrderSymbol()=="EURUSD")

depois vê todos os ofícios.

Entretanto, é possível acrescentar no código, de modo que a EA abra uma posição (ou a reflita) não no gráfico onde é colocada, mas usando o mesmo símbolo, mas em um símbolo diferente? Ou isso não é possível em princípio?

 
novichok2018 #:

Então, é possível especificar no código que a EA abre uma posição (ou a reflete) não no gráfico onde ela está definida, mas no mesmo símbolo, mas em um gráfico diferente? Ou isso não é possível em princípio?

Qualquer pedido de conta ou status comercial vai para a rede, onde não há condições e não há prazos. A resposta à sua pergunta: Isto não é possível.

 
novichok2018 #:

Então, é possível especificar no código que a EA abre uma posição (ou a reflete) não no gráfico onde ela está definida, mas no mesmo símbolo, mas em um gráfico diferente? Ou isso não é possível em princípio?

Você quer que a EA #2 veja todas as posições abertas pela EA #1, certo?

Bem, isso é fácil.

 
Alekseu Fedotov #:

Você quer que a EA #2 (digamos) veja todas as posições abertas pela EA #1, certo?

Bem, isso é fácil.

Ele quer que o monitor não veja em nenhum lugar que ele interfira com o comércio da EA.

 

Alexey Viktorov #:

  HideTestIndicators(true); 
   MaCurrent=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,0); 
   MaPrevious=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,1); 
   HideTestIndicators(false);



Obrigado pela resposta anterior, mas agora outro problema. Ao testar por mais de um ano, a memória se esgota. O testador escreve "Canal_1". : fora da memória. Também, "Canal_1". não inicializados. Estas mensagens aparecem após um ano ou mais de testes em 3 computadores. O indicador (Canal_1) é conectado através de um recurso. Não fez nenhuma alocação dinâmica de memória via novo. Todo o problema surgiu após as mudanças descritas no post anterior. Comecei a fazer loop através do indicador conectado e cada vez que mudo o parâmetro intu (período) nele.

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2022.02.05
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Aleksandr Kononov #:

Obrigado pela resposta anterior, mas agora outro problema. Ao testar por mais de um ano, a memória se esgota. O testador escreve "Canal_1". : fora da memória. Também, "Canal_1". não inicializados. Estas mensagens aparecem após um ano ou mais de testes em 3 computadores. O indicador (Canal_1) é conectado através de um recurso. Não fez nenhuma alocação dinâmica de memória via novo. Todo o problema surgiu após as mudanças descritas no post anterior. Comecei a percorrer o indicador e toda vez que mudo seu parâmetro intu (período).

Talvez seja esse o problema? Tente apagar periodicamente o recurso

bool  ResourceFree( 
   const string  resource_name      // имя ресурса 
   );

Mas depois é preciso criá-lo dinamicamente.

bool  ResourceCreate( 
   const string      resource_name,       // имя ресурса 
   const string      path                 // относительный путь к файлу 
   );

Ou seja, primeiro apagar o recurso, depois recriá-lo. O único problema é que eu não sei como vai funcionar. Ou, se funcionar de alguma forma. Teremos que tentar...

 
Alekseu Fedotov #:

Você quer que a EA #2 (digamos) veja todas as posições abertas pela EA #1, certo?

Bem, isso é fácil.

Sim, exatamente: que a EA #2, veria todas as posições abertas pela EA #1. Somente se fosse fácil para mim, eu não pediria ajuda.

Até agora, vejo a seguinte solução: escrever um indicador que cria um "ponto" de objeto com coordenadas de abertura de posição pela EA #1 e colocá-lo em um gráfico com a EA #2 instalada.

Se minha lógica estiver correta, eu ainda preciso de ajuda para escrever este indicador.

 

Boa tarde. Adicionei tudo ao roteiro como sugerido - código do roteiro para transferir os gráficos para d1 e o modelo de meio-termo abaixo.

//+------------------------------------------------------------------+
//|                                               D1_AND_SHABLON.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright " КОПИЯ 1 "
#property link      "https://vk.com/danila_mastep"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
string tplName = "FIBOmAGIC СРЕДНЕСРОК";
void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0 && IsStopped())
   {
    if(ChartPeriod(prevChart) != PERIOD_D1)
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_D1);
      ChartApplyTemplate(prevChart, tplName);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+


A janela terminal com gráficos abertos na captura de tela abaixo.

7 gráficos com padrão de escalpamento

Tenho 7 gráficos abertos na captura de tela e todos eles têm o padrão de escalonamento, assim como AUD/USD. Quando arrasto e solto o script D1_AND_SHABLON.mq4 nada acontece - qual é a razão deste erro? O_o

Razão: