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

 
Pergunta, existe alguma forma de determinar programmaticamente que o testador está a funcionar no MT5 ?
 
Maksim Mihajlov:
Pergunta, há alguma forma de determinar programmaticamente que um testador está a correr no MT5 ?
Informação sobre um programa MQL5 em execução- propriedades de um programa mql5, o que ajuda a controlar ainda mais o seu comportamento;
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
  • www.mql5.com
Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Olá. Não sei ao certo quem perguntar, onde escrever. É possível negociar via MT5 com Corretores Interativos? Fiz-lhes uma pergunta, mas eles lançaram um link na resposta ao contacto https://www.metaquotes.net/ru/company/contacts, por isso é um formulário para uma entidade jurídica. Parece haver algum tipo de ponte de software entre o MT5 e o TWS, pode dizer-me alguma coisa sobre isso? Se houver a possibilidade de comprar cotações das bolsas de valores americanas com difusão MT5 para ver o gráfico de um determinado instrumento e utilizar indicadores MT5, mas fazer transacções através de TWS. Se esta não for a pergunta correcta, por favor digam-me onde escrever e perguntem.
Контакты представительств компании MetaQuotes
Контакты представительств компании MetaQuotes
  • www.metaquotes.net
По вопросам приобретения торговой платформы MetaTrader 5 вы можете обратиться к нашим представителям:
 
akarustam:

Cansado de compreender a razão da diferença constante na optimização de uma boa EA em MT5... No mesmo par de moedas, com o mesmo EA, com os mesmos parâmetros de optimização, há uma diferença nos resultados de optimização... Ou seja, uso sempre a mesma EA e esperava os mesmos resultados, mas na verdade são diferentes...

Enlighten pliz, a quem está familiarizado com este tipo de confusão?

OBRIGADO.

Na sua maioria variáveis forçadas não inicializadas ou referência a variáveis globais (as do terminal)

 

Ajuda, indicador de candelabro

#property tester_everytick_calculate
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   1
//--- plot newCandles
#property indicator_label1  "newCandles"
#property indicator_type1   DRAW_CANDLES
#property indicator_color1  clrWhite
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double   newCandles_Open[];
double   newCandles_High[];
double   newCandles_Low[];
double   newCandles_Close[];
int      newCandles_index  = 0;
//--- цены формирующейся свечи
double   candle_Open    = -1.0;
double   candle_High    = -1.0;
double   candle_Low     = -1.0;
double   candle_Close   = -1.0;

int OnInit()
{
//--- indicator buffers mapping
   SetIndexBuffer(0, newCandles_Open,  INDICATOR_DATA);
   SetIndexBuffer(1, newCandles_High,  INDICATOR_DATA);
   SetIndexBuffer(2, newCandles_Low,   INDICATOR_DATA);
   SetIndexBuffer(3, newCandles_Close, INDICATOR_DATA);
//+---------------------
   PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0.0);
//+---------------------
   PlotIndexSetString(0,PLOT_LABEL,"newCandles("+IntegerToString(in_Candle_Size_Point)+", "+TimeToString(in_Start_Time,TIME_DATE)+")");
   IndicatorSetString(INDICATOR_SHORTNAME,"newCandles("+IntegerToString(in_Candle_Size_Point)+", "+TimeToString(in_Start_Time,TIME_DATE)+")");
//+---------------------
   ArrayInitialize(newCandles_Open,0.0);
   ArrayInitialize(newCandles_High,0.0);
   ArrayInitialize(newCandles_Low,0.0);
   ArrayInitialize(newCandles_Close,0.0);

//+---------------------
   return(INIT_SUCCEEDED);
}

OnCalculate executa o cálculo e preenche os amortecedores INDICADOR_DATA quando as condições são preenchidas

      newCandles_Open[newCandles_index]      = candle_Open;
      newCandles_High[newCandles_index]      = candle_High;
      newCandles_Low[newCandles_index]       = candle_Low;
      newCandles_Close[newCandles_index++]   = candle_Close;

Pensei que quando estes amortecedores fossem preenchidos, o castiçal deveria ser desenhado. Mas não é. Porquê?

 
Сергей Таболин:

Ajuda, indicador de candelabro

OnCalculate executa o cálculo e preenche os amortecedores INDICADOR_DATA quando as condições são preenchidas

Pensei que quando estes amortecedores fossem preenchidos, o castiçal deveria ser desenhado. Mas não é. Porquê?

Onde está o código completo? Não é claro, o que se faz exactamente na OnCalculate. Como exemplo, utilizar a ajudaDRAW_CANDLES.

E o que é esta vela com preços negativos?
 
Vladimir Karputov:

Onde está o código completo? Não é claro o que se está a fazer exactamente na OnCalculate. Como exemplo, utilizar a ajudaDRAW_CANDLES.

E o que é esta vela com preços negativos?

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

MQ5::Pergunta sobre o indicador de candelabro.

Sergey Tabolin, 2020.08.05 18:17

Edgar, obrigado, mas é claro para mim. O que não é claro é porque não há carraças antes de 2019?


Agora a questão principal é.

Porque é que as velas não estão desenhadas no indicador? Onde é que estou errado?

Fonte do domínio público ))))

Esta é apenas uma inicialização para iniciar a contagem decrescente. Os preços estão a contar correctamente.
Arquivos anexados:
newCandles.mq5  21 kb
 
Сергей Таболин:
Isto é simplesmente uma inicialização para iniciar a contagem decrescente. Os preços são contados correctamente.

Na depuração, verificar em que casos é que a sua condição será satisfeita?


 
Vladimir Karputov:

Na depuração, verificar em que casos a sua condição será satisfeita?


Compreendo que isto pode não ser correcto. Mas!

Funciona. A condição é preenchida quando o indicador começa. Uma vez. Os preços são impressos. Depois são calculadas as carraças. São também impressos.

2020.08.06 14:27:31.101 newCandles (USDJPY,H1)  2020.08.05 21:31:16 >>> Свеча 03623 >> open = 105.638 hihg = 105.675 low = 105.473 close = 105.473 > Сформирована за 07539 тиков.
2020.08.06 14:27:31.101 newCandles (USDJPY,H1)  2020.08.06 03:14:33 >>> Свеча 03624 >> open = 105.473 hihg = 105.635 low = 105.395 close = 105.635 > Сформирована за 19034 тика.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  2020.08.06 10:54:42 >>> Свеча 03625 >> open = 105.635 hihg = 105.695 low = 105.471 close = 105.471 > Сформирована за 08861 тик.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  ~~~~ Предварительный расчёт индикатора закончен.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00872 Бар 03626
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00873 Бар 03626
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00874 Бар 03626

Mas quero saber porque é que não se imprimem castiçais.

 
Сергей Таболин:

Compreendo que isto pode não ser a coisa certa a fazer. Mas!

Funciona. A condição é satisfeita quando o indicador começa. Uma vez. Os preços são impressos. Depois são calculadas as carraças. São também impressos.

Mas quero saber porque é que não se desenha um castiçal.

Primeiro, aprender a construir o indicador com base em DRAW_CANDLES. Ao mesmo tempo, é preciso pensar no que é um castiçal '0'.

Ou seja, até se chegar mesmo perto dos carrapatos.


Para desenhar um castiçal, é necessário encher TODOS os quatro tampões. Não se faz isso - salta-se tanto o newCandles_Close como o ....