Características da linguagem mql5, subtilezas e técnicas - página 16

 
Andrey Dik:
Você pode fazer o comando"Open chart" na aba "Backtest" adicionar automaticamente todos os indicadores que foram usados na EA com os parâmetros apropriados ao gráfico aberto após o teste?

Ainda não.

Por enquanto você pode salvar o modelo de teste visual e aplicá-lo no terminal do cliente

 
Slawa:

Ainda não.

Por enquanto você pode salvar um modelo de teste visual e aplicá-lo no terminal do cliente

E se você fizer o seguinte no EA em OnDeinit

GráficoSaveTemplate ()


com o nome tester.tpl então depois de abrir o gráfico usando o comando"Open Chart" você vai conseguir o que precisa?

 
Andrey Dik:

E se no Expert Advisor do OnDeinit fizer

GráficoSaveTemplate ()


com o nome tester.tpl, você terá o que precisa depois de abrir o gráfico usando o comando"Open Chart"?

Não. ChartSaveTemplate irá salvar o modelo na pasta local de Arquivos do agente testador

Eu quis dizer salvar manualmente o modelo a partir do renderizador através do menu principal.

O Tester.tpl só funciona de uma maneira - do terminal do cliente ao visualizador

 
Slawa:

Não. ChartSaveTemplate irá salvar o modelo na pasta local de Arquivos do agente testador

Eu quis dizer salvar manualmente o modelo a partir do visualizador através do menu principal.

O Tester.tpl só funciona de uma maneira - do terminal do cliente ao visualizador

Não, é muito lento, é muito trabalho, e muitas vezes é muito caro fazer todos os testes visuais só para salvar o template, especialmente quando você tem que fazer isso com frequência...

Isso significa que deve ser possível abrir um gráfico após o teste com indicadores.

SZY. No testador não funciona:

//——————————————————————————————————————————————————————————————————————————————
void OnDeinit (const int reason)
{
  if(ChartSaveTemplate(0, "testersdfsdfsdfsdf"))
    Print (__FUNCTION__ + ": Шаблон сохранён");
  else
    Print (__FUNCTION__ + ": Шаблон НЕ сохранён");
    
  EventKillTimer ();
}
//——————————————————————————————————————————————————————————————————————————————

//——————————————————————————————————————————————————————————————————————————————
double OnTester ()
{
  if(ChartSaveTemplate(0, "testersdfsdfsdfsdf"))
    Print (__FUNCTION__ + ": Шаблон сохранён");
  else
    Print (__FUNCTION__ + ": Шаблон НЕ сохранён");
  return (-DBL_MAX);
}
//——————————————————————————————————————————————————————————————————————————————

resultado:

2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnTester: Template NOT saved
2017.03.07 12:22:15.422 Saldo final do Core 1 1129,18 USD
2017.03.07 12:22:15.422 Resultado do teste do núcleo 1 -1,797693134862316e+308
2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnDeinit: Template NOT saved

 
void OnStart()
  {
   int indic = iCustom(Symbol(), Period(), "Examples\\ATR", 7, PRICE_CLOSE, clrGreen);
   ChartIndicatorAdd(0, 1, indic);  
   Sleep(10000);
  }

A cor do indicador não pode ser definida desta forma.

Então porque é que algumas pessoas dizem "não é um insecto, é uma característica"?

No entanto, a resposta oficial satisfez-me completamente:

Vamos pensar em como mudar a cor e o estilo do indicador do programa MQL5.

Entretanto, use variáveis de entrada do tipo de cor para definir a cor do indicador

 
Roffild:
void OnStart()
  {
   int indic = iCustom(Symbol(), Period(), "Examples\\ATR", 7, PRICE_CLOSE, clrGreen);
   ChartIndicatorAdd(0, 1, indic);  
   Sleep(10000);
  }

A cor do indicador não pode ser definida desta forma.

Então porque é que algumas pessoas dizem "não é um insecto, é uma característica"?

No entanto, a resposta oficial é completamente satisfatória para mim:

Porque não é possível definir as propriedades de exibição (peça de desenho) através do manípulo indicador (peça de cálculo). Um bug é quando algo é escrito de uma forma e funciona de outra forma.

Uma abordagem diferente é necessária aqui. Acesso ao indicador por nome abreviado, como no grupo de funções ChartIndicatorXXX. Algo como ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value)

Já pensámos nisso, mas ainda não chegámos a esse ponto.

 

Porque é que precisa de ajustar algo através de um cabo? A cor é definida no próprio indicador através da propriedade PLOT_LINE_COLOR.

O código_colorN só define a cor original que é alterada através do PLOT_LINE_COLOR.

indicator_colorN não é diferente da entrada quando um código é chamado e depois definido através de PLOT_LINE_COLOR.

Você não deve permitir que tais propriedades sejam alteradas através do cabo.

E é hora de permitir a configuração dinâmica de tampas_indicadoras.

 
Roffild:

Porque é que precisa de ajustar algo através de um cabo? A cor é definida no próprio indicador através da propriedade PLOT_LINE_COLOR.

O código_colorN só define a cor original que é alterada através do PLOT_LINE_COLOR.

indicator_colorN não é diferente da entrada quando um código é chamado e depois definido através de PLOT_LINE_COLOR.

Você não deve permitir que tais propriedades sejam alteradas através do cabo.

E é hora de permitir a configuração dinâmica de tampas_indicadoras.

Não mencione o cabo. Eu disse a mim mesmo que o cabo não pode ser usado para definir as propriedades do desenho. E eu expliquei porquê.

Não se esqueça que além dos indicadores personalizados existem também indicadores incorporados, que também devem mudar de cor após adicioná-los ao gráfico.

 

Sugiro apenas a extensão das funções da chamada do indicador:

iCustom(... inputs, PRICE_CLOSE,
         [color color1, int width1, int style1]... );

iAlligator(... params, PRICE_CLOSE,
         [color color1, int width1, int style1]... );
Nada mais precisa de ser acrescentado.
 
Roffild:

Sugiro apenas a extensão das funções da chamada do indicador:

Err, porquê quando não se consegue ver de qualquer maneira?