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

 
BillionerClub:

Como converter a posição do rato no tempo, mas sem atirar?

Tem de haver pelo menos algum tipo de evento. Será que mover o rato funcionaria?
 
Alexey Viktorov:
Bem, tem de haver algum tipo de evento. Talvez um movimento do rato resultasse?

Não, apenas a leitura das coordenadas e a conversão durante a vela.

 
Alexey Viktorov:
Bem, pelo menos deve haver algum evento. Talvez mover o rato funcionasse?

Sim, obrigado, tem razão, é a mesma coisa. Embora, claro, uma pessoa movesse primeiro o rato e depois premisse a tecla de atalho.

 
Revelou-se impossível utilizar funções de eventos personalizados em scripts. Agora tenho de correr o indicador e usá-lo para executar o guião. Em princípio, que diferença faz se não se usar arrastar e largar, mas sim teclas de atalho.
 
BillionerClub:
É engraçado, acontece que as funções de eventos personalizados não podem ser utilizadas em scripts. Agora tenho de correr o indicador e passar o guião através dele. Em princípio, que diferença faz se eu não usar arrastar e largar, mas sim as teclas de atalho.

Eu provavelmente deveria ter escrito na documentação mais especificamente que OnChartEvent não funciona em scripts, mas tal linha está na documentação

A função pode ser chamada em Conselheiros Especialistas e indicadores, deve ter tipo nulo e 4 parâmetros:

E os eventos personalizados não têm nada a ver com isso.

 
BillionerClub:

Como converter, posição do rato, a tempo, mas sem atirar?

Algumas pessoas escrevem sem pontuação, outras espreitam por aí... Pensam que, por fazerem uma pergunta, todos devem saber do que estão a falar.

Frequentou a escola? Foi difícil? Acha que aqui vai ser fácil? Não prefere voltar para a escola?

 
Alexey Viktorov:

Bem, aqui está a linha.

Basta colocar um número em vez de uma fórmula e ...

Faço-o, mas devolve zero. Esta função no indicador"A_D1", coloco o seu valor no buffer, depois chamo o indicador a partir do script, valor de saída para a impressora

  Lot= iCustom(NULL,0,"A_D1",0,1);
  Print("Lot ",DoubleToStr(Lot,2));

Se a função no indicador com a corda

RiskMony = floor(FreeMargin*risk/100);

imprimirá algum número 0.07, mas se

RiskMony =1.5;//

imprimirá 0,00

 

Obrigado a todos pela vossa ajuda e crítica, todos tenham um bom dia. Adicionei todo o guião ao indicador via CHARTEVENT_CLICK como uma função. Tudo funcionou, conveniência às vezes e rapidez.


#include <Keys.mqh>
CKeys ckeys;

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- нажатие кнопки на клавиатуре 
   if(id==CHARTEVENT_CLICK)
     {

      if(ckeys.KeyCtrlState())
        {
        Запустить();        
        }

     }

  }



 
macleta:

Faço-o, mas devolve zero. Esta função no indicador"A_D1", coloco o seu valor no buffer, depois chamo o indicador a partir do script, envio o valor para a impressora

Se a função no indicador com a corda

imprimirá algum número 0.07, mas se

imprimirá 0,00.

Int parece ir para o arredondamento binário, truncagem, e não é compatível com outros tipos de dados, sem perdas.

 
macleta:

Faço-o, mas devolve zero. Esta função no indicador"A_D1", coloco o seu valor no buffer, depois chamo o indicador a partir do script, envio o valor para a impressora

Se a função no indicador com a corda

imprimirá algum número 0.07, mas se

imprimirá 0,00

Que tal 15 ou 20 em vez de 1,5? Talvez queira fazer muito pouco lucro com um TP demasiado longo?
Razão: