Discussão do artigo "EA com interface gráfica: Fornecendo funcionalidade (Parte II)" - página 2

 
Dennis Kirichenko:

Rashid, obrigado por seu comentário. Então, no meu caso, o cálculo está no lado maior (Buy):


O segundo caso leva em conta o fato de que vendemos barato, então o preço das compras restantes ficou mais alto.

Bem, é simples aqui - vamos ter um monte de ordens no EURUSD. Calculamos separadamente para cada direção e obtemos:

  1. posição total Comprar 20 lotes a 1,2000 = Comprar 15 lotes a 1,2000 + Comprar 5 lotes a 1,2000
  2. posição total de venda 15 lotes a 1,2200
A anulação dos volumes iguais deixa 5 lotes a 1,2000. O que há de errado com meu raciocínio? Abra várias posições na segunda-feira e veja como o lucro/perda flutuante mudará com uma mudança de 1 pip no preço.
 
Rashid Umarov:

Bem, é simples - digamos que temos várias ordens no EURUSD. Calculamos separadamente para cada direção e obtemos:

  1. posição total Comprar 20 lotes a 1,2000 = Comprar 15 lotes a 1,2000 + Comprar 5 lotes a 1,2000
  2. posição de venda total 15 lotes a 1,2200
A anulação dos volumes iguais deixa 5 lotes a 1,2000. O que há de errado com meu raciocínio? Abra várias posições na segunda-feira e veja como o lucro/perda flutuante mudará com uma mudança de preço de 1 pip.

Esse é um sistema de cobertura do MT5: as posições contrárias são canceladas por volumes nominais.

Há também uma alternativa, sobre a qual escrevi no post anterior. Ela leva em conta o valor de cada volume comprado/vendido. O resultado é a razão entre o valor do volume e o volume nominal.

 
Dennis Kirichenko:

Esse é um sistema de hedge no MT5: as posições contrárias são aniquiladas por volumes nominais .

Você pode escrever com palavras claras. Não estou entendendo nada aqui. Gorbachev costumava se comunicar assim - muitas palavras, mas não está claro.
 
Rashid Umarov:
Você pode escrever com palavras que façam sentido. Não estou entendendo nada aqui. Gorbachev costumava falar assim - muitas palavras, mas você não consegue entender nada.

Perdão!

Compramos 20 lotes a US$ 1.2000.

Os volumes nominais (volumes na moeda base) da compra são iguais a 20*100 000 = EUR 2 000 000. O valor desses volumes na moeda de cotação é igual a US$ 1.2000*2.000.000 = US$ 2.400.000.

Por nominal eu quis dizer o valor dos volumes na moeda base do símbolo.

 

Bem, eu não sou fã de ficar correndo atrás de números para lá e para cá)

Sem mencionar os possíveis erros de arredondamento em tais operações.

 
No arquivo CProgram.mgh substituiu o indicador em vez do iStohastic nas funções "void CProgram::GetHandles(void)" e "void CProgram::GetIndicatorValues(void)" pelo indicador m_handles[i]=::iATR(m_symbols[i],StringToTimeframe(tf),5); Tudo foi compilado corretamente, mas na tabela, na coluna "values", há apenas zeros. O que eu fiz de errado?
 

Alexander:

...

O que eu fiz de errado?

O buffer zero deve ser especificado para ATR:

//+------------------------------------------------------------------+
//| Obtém os valores de indicador de todos os caracteres
//+------------------------------------------------------------------+
void CProgram::GetIndicatorValues(void)
  {
...
         //--- Vamos tentar obter os valores do indicador
         double values[1];
         received=::CopyBuffer(m_handles[i],0,0,1,values);
...
  }
 

Saudações, Anatoli,


obrigado por todos os seus grandes esforços! Muito agradecido! :)

Tenho uma pergunta: onde está sendo definido o ON_END_CREATE_GUI? Não consigo encontrá-lo em nenhum código-fonte de sua versão mais recente, a Build 16 (nem em nenhum código-fonte da Build 15).

Até agora, fiz o download do código-fonte da versão 16 em https://www.mql5.com/en/articles/3527

e depois baixei suas alterações nos artigos:

https://www.mql5.com/pt/articles/4715 e
https://www.mql5.com/pt/articles/4727.

O que estou perdendo? Você ou outra pessoa pode me ajudar?

Atenciosamente!


P.S.: Anatoly, seria possível oferecer apenas um arquivo zip de atualização em vez de adicionar partes em vários artigos? Achei muito difícil "rastrear" todas as suas alterações... :)

Ein Expert Advisor mit GUI: Erstellen des Panels (Teil I)
Ein Expert Advisor mit GUI: Erstellen des Panels (Teil I)
  • www.mql5.com
Trotz der aktiven Entwicklung des algorithmischen Handels bevorzugen viele Händler immer noch den manuellen Handel. Die Automatisierung von Routineaufgaben lässt sich jedoch kaum ganz vermeiden. Der Artikel zeigt die Entwicklung eines Expert Advisor mit Signalen von mehreren Symbolen für den manuellen Handel. Als Beispiel verwenden wir die...
 

É muito simples:

1) perto de ON_END_CREATE_GUI há um link na parte superior, um pouco acima dele o link EasyAndFast

e, em seguida, o arquivo Defines.mqh, e é isso.

[Excluído]  

Prezados desenvolvedores! Por favor, prestem atenção ao seguinte erro. Se o nome do Expert Advisor deste artigo for deixado como TradePanel, o Expert Advisor será iniciado (build 2280). No entanto, se você renomeá-lo, por exemplo, TradePanel_part_II, o Expert Advisor compila, mas não inicia. Ele escreve o seguinte no registro:

2020.02.11 19:18:02.987 TradePanel_part_II (RTS Splice,M1) CElement::CreateCanvas > Не удалось создать холст для рисования элемента (CSeparateLine): 4016

2020.02.11 19:18:02.987 TradePanel_part_II (RTS Splice,M1) CElement::CreateCanvas > Не удалось создать холст для рисования элемента (CSeparateLine): 4016

2020.02.11 19:18:03.042 TradePanel_part_II (RTS Splice,M1) CElement::CreateCanvas > Не удалось создать холст для рисования элемента (CButton): 4016

2020.02.11 19:18:03.042 TradePanel_part_II (RTS Splice,M1) OnInit > Could not create the GUI!

Se você nomear o Expert Advisor, por exemplo, TradePanel 2, tudo estará normal. Parece que determinados nomes causam problemas com recursos.