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

 
Alexey Viktorov:

De onde se encontram tais programadores?

Tudo isto é um perfeito disparate. Para onde enviar um tal programador, espero que compreenda.

Bem, só por precaução, para que não falte, aqui está um ponteiro


Algumas pessoas - e todos começam a descobrir se eu tenho uma conta de cobertura ou de rede. Digo-lhes que preciso de um conselheiro universal e eles respondem:

"A tarefa consiste em colocar várias encomendas num só símbolo. Em algumas contas, serão somadas, noutras não. Tudo se encaixará numa posição e o resultado futuro é desconhecido (se os Expert Advisors não forem concebidos para isso, claro). Se eu fechar ou abrir em pedaços, o lucro não será o mesmo que seria separadamente.

Eu disse, não me interessa como será implementado, desde que o algoritmo seja o descrito na tarefa. Discutimos durante várias horas numa troca acalorada, mas finalmente concordámos que eu era um péssimo cliente e não sabia o que queria...

Quando me dirigi aos outros professores, recebi novamente as mesmas perguntas: hedging e netting. Eu disse 'Universal' e a resposta foi: 'Vai para o inferno se não sabes o que queres'.

 
Artyom Kuraev:

Algumas pessoas - e todos começam a perguntar se eu tenho uma conta de cobertura ou de rede. Eu digo que preciso de uma EA universal e recebo a resposta:

"A tarefa é colocar várias encomendas no mesmo símbolo. Em algumas contas, serão somadas, noutras não. Tudo se encaixará numa posição e o resultado futuro é desconhecido (se os Expert Advisors não forem concebidos para isso, claro). Se eu fechar ou abrir em pedaços, o lucro será bastante diferente do que seria individualmente.

Eu disse, não me interessa como será implementado, desde que o algoritmo seja o descrito na tarefa. Discutimos durante várias horas numa troca acalorada, mas finalmente concordámos que eu era um péssimo cliente e não sabia o que queria...

Quando me dirigi aos outros professores, recebi novamente as mesmas perguntas: hedging e netting. Eu digo "universal" e a resposta é: "vai para o inferno se não sabes o que queres".

Talvez essa não tenha sido a palavra certa. De facto, nas contas de compensação, as posições abertas são resumidas. Mas se alguém estiver interessado apenas na contabilidade de posição como na MT4, então é necessário ter uma conta de compensação.

Tudo o resto, magik, enumeração de posições e ordens, determinando se uma EA é aberta ou manualmente aberta por outra EA, tudo é resolvido de uma só vez.

 
Alexey Viktorov:

Provavelmente não é a coisa certa a dizer. É verdade que nas contas de compensação as posições abertas são somadas. Mas se estiver apenas interessado em contabilidade de posição como na MT4, então uma conta de hadge é um pré-requisito.

Tudo o resto, magik, enumeração de posições e ordens, detecção de posições abertas por uma EA ou por outra EA, tudo isto é resolvido de uma só vez.

Sim, eles somam-se. Mas isso não significa que seja impossível obter informações sobre a ordem exigida e implementar uma contabilidade correcta e o encerramento da ordem exigida num dado momento, pois não?
 
Artyom Kuraev:

... - A resposta é "vai-te foder se não souberes do que precisas".


Resposta absolutamente adequada e correcta. E isto até se perceber a diferença entre uma conta de compensação e uma cobertura.

Dou-lhe 99% de que é demasiado preguiçoso para ler(o MetaTrader 5 acrescentou um sistema de contabilidade de cobertura para posições), por isso tente apenas reescrever a sua tarefa tendo isso em mente:

AcçãoResultado da redeResultado Hedge
1.Comprar EURUSD 0.01Uma posição Comprar EURUSD 0.01 loteUma posição Comprar EURUSD 0.01 lote
2.Comprar EURUSD 0.01Uma posição Comprar EURUSD 0.02 loteDuas posições:
Comprar posição de lote EURUSD 0.01

Uma posição Comprar EURUSD 0.01 lote

3 Vender EURUSD 0.01Uma posição Comprar EURUSD 0.01 loteTrês posições:

Uma posição Comprar EURUSD 0.01 lote

Uma posição Comprar EURUSD 0.01 lote

um Vender posição EURUSD 0.01 lote

 
Vladimir Karputov:


Resposta absolutamente adequada e correcta. Ou seja, até compreender a diferença entre uma conta de compensação e uma cobertura.

Dou-lhe 99% de que é demasiado preguiçoso para ler(MetaTrader 5 acrescentou contabilidade de cobertura), por isso tente apenas reescrever a sua tarefa tendo isso em mente:

AcçãoResultado da redeResultado Hedge
1.Comprar EURUSD 0.01Uma posição Comprar EURUSD 0.01 loteUma posição Comprar EURUSD 0.01 lote
2.Comprar EURUSD 0.01Uma posição Comprar EURUSD 0.02 loteDuas posições:
Comprar posição de lote EURUSD 0.01

Uma posição Comprar EURUSD 0.01 lote

3 Vender EURUSD 0.01Uma posição Comprar EURUSD 0.01 loteTrês posições:

Uma posição Comprar EURUSD 0.01 lote

Uma posição Comprar EURUSD 0.01 lote

um Vender posição EURUSD 0.01 lote

Compreendo-o logicamente, mas na netting, é toda a informação sobre negócios abertos/fechados apagada de todo o lado, que não pode ser obtida de qualquer lugar e apenas aquela parte de uma posição total pertence a esta EA? Além disso, entendo que colapsa várias posições numa só, mas então o que acontece ao preço de abertura quando uma posição é adicionada?
 
Artyom Kuraev:
Logicamente, compreendo-o, mas será toda a informação sobre negócios abertos/fechados apagada de todo o lado, pelo que é impossível obtê-la de qualquer lugar e fechar apenas aquela parte da posição total, que pertence a esta EA?


É claro que se podem obter negócios a partir do histórico comercial e analisá-los. A questão é se isto é necessário.

Artyom Kuraev:
... Além disso, compreendo que desaba várias posições numa só, mas o que acontece ao preço de abertura no momento de adicionar uma posição?

A compensação dá o preço médio final, que depende do preço e do volume da posição e do volume que se adiciona. Nesse caso, a sua melhor aposta é trocar a rede manualmente. Ou melhor: se estiver habituado a trabalhar com um sistema de encomendas no seu terminal antigo, então nos seus requisitos MetaTrader 5 deverá declarar explicitamente que pretende um robô para um sistema de cobertura.

 

Ajuda com o carregamento da história, por favor.

Há um conjunto de símbolos de cartas abertas, pode haver até 30 peças. O problema é que quando se alteram os prazos de forma síncrona, não há histórico, e enquanto está carregado, o indicador "cai".

Este desenho não funciona

  ArraySetAsSeries(_open,true);
  for(int i=0; i<ArraySize(mass_id); i++) {
   MassSY=ChartSymbol(mass_id[i]);
    for(int e=0; e<5; e++) {
      if(CopyOpen(MassSY,Period(),0,(int)ChartGetInteger(0,CHART_WIDTH_IN_BARS,0)+1,_open)>=ChartGetInteger(0,CHART_WIDTH_IN_BARS,0)) continue;
    }
  }

Anexo vídeo para maior clareza


Obrigado!

 
Vitaly Muzichenko:

Ajuda com o carregamento da história, por favor.

Há um conjunto de símbolos de cartas abertas, pode haver até 30 peças. O problema é que quando se alteram os prazos de forma síncrona, não há histórico, e enquanto está carregado, o indicador "cai".

Este desenho não funciona

Anexo vídeo para maior clareza


Obrigado!


Vitaly, veja em https://www.mql5.com/ru/docs/series/timeseries_access#synchronized, há um roteiro de amostra para carregar a história, talvez ajude
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Доступ к таймсериям и индикаторам / Организация доступа к данным - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Sergey Gritsay:

Vitaly, veja https://www.mql5.com/ru/docs/series/timeseries_access#synchronized, há um exemplo de um guião para carregar o histórico, pode ajudar.
Lutei com este guião... Não ajuda. Embora, talvez eu tenha feito algo errado ou houvesse alguns bugs na construção, após as minhas torturas, houve muitas queixas (não minhas) a esta construção.
 
Vitaly Muzichenko:

Ajuda com o carregamento da história, por favor.

Há um conjunto de símbolos de cartas abertas, pode haver até 30 peças. O problema é que quando se alteram os prazos de forma síncrona, não há histórico, e enquanto está carregado, o indicador "cai".

Este desenho não funciona

Anexo vídeo para maior clareza


Obrigado!

Tente fazer circular todos os símbolos/tempo necessários através do temporizador de minutos (Bars( símbolo, prazo );)
Razão: