Ajuda para actualizar para MetaTrader 5 sem perdas - página 12

 
vdv2001:

Um pouco de pintura a nível de Murray

Descarreguei este indicador. Recebi um erro na linha 228 ao compilá-lo. Não fui capaz de o desenhar, por isso, por favor, acredite na minha palavra. Quero usar o indicador que uso no MT5, é por isso que estou aqui, não o consegui fazer eu próprio. Talvez possa reescrevê-lo para mim. Não posso escrevê-lo eu próprio. Obrigado.
Arquivos anexados:
 

Boa tarde. Os tipos inteligentes precisam realmente de traduzir o indicador de correlação em MT5

Arquivos anexados:
iCorel_v3.mq4  11 kb
 
É um bom e útil também. É bom para todos.
Arquivos anexados:
 
Porque é que as linhas não estão desenhadas?


#janela_do_cartão_indicador de propriedade
#nóculos_indicadores de propriedade 2
#property indicator_plots 2
#indicador de propriedade_color1 clrDeepSkyBlue
#indicador de propriedade_color2 clrDeepSkyBlue
#janela_do_cartão_indicador de propriedade
duplo UpBuffer[];
duplo DnBuffer[];
int OnInit()
{
SetIndexBuffer(0,UpBuffer);
SetIndexBuffer(1,DnBuffer);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE); PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
return(0);
}
//+------------------------------------------------------------------+
//| Função de iteração de indicador personalizada |
//+------------------------------------------------------------------+
int OnCalculate(const int taxas_total,const int prev_calculado,const datatime &time[],const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])
{ int i;
for(i=1000;i>0;i--)
{ UpBuffer[i]=1.428; DnBuffer[i]=1.41;
}
return(0);
}
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
fellow:
Porque é que as linhas não estão desenhadas?



Deve ser algo assim, acreditem ou não, está a funcionar.

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDeepSkyBlue

double UpBuffer[];
double DnBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UpBuffer);
   SetIndexBuffer(1,DnBuffer);

   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);

   PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   for(int i=rates_total-1000;i<rates_total;i++)
     {
      UpBuffer[i]=1.428;
      DnBuffer[i]=1.41;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
voinG:
Descarreguei este indicador. Ao compilá-lo deu um erro na linha 228, não consegui fazer uma fotografia, por isso, por favor, aceite a minha palavra. Quero usar o indicador que uso no MT5, é por isso que estou aqui, não o consegui fazer eu próprio. Talvez possa reescrevê-lo para mim. Obrigado.
A acção de salvar-tudo está completa? Qualquer coisa que me possa dizer.
 

Por favor, ajudem.

Tentou reescrever o WATL, quase conseguiu. As linhas não são desenhadas correctamente, é por causa de um cálculo tortuoso de LWMA. E o mais importante, por vezes o gráfico tem tais surpresas:

Surpresa

Uma linha de pontos é por vezes idêntica aos pontos sobre os quais é calculado o WATL.

Ou, por vezes, faço rodar o gráfico e os pontos sobrepõem-se todos na barra adjacente.

Obrigado antecipadamente por qualquer ajuda =)

Arquivos anexados:
WATL.mq5  41 kb
 

Talvez quem tenha visto este indicador nas transformações MQL5?

Автоматизация торговли на финансовых рынках - Скачать i-Spread3.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Индикаторы   Очень хорошую доработку индикатора i-Spread предложил пользователь pavik. Суть доработки в добавлении отображения минимальных значений спрэда за последние час, четыре часа и сутки. А также...
 
Ajuda para converter para mq5. Sem eles, é como não ter mãos!
 

Olá,

Não consegui fazer o que queria.

Tenho um amortecedor de muwing diferente na minha cabeça, tenho um par diferente, do que aquele que tinha na minha cabeça.

[código]
#janela_indicadora de propriedade_separate_window
#nóculos_indicadores de propriedade 6
#property indicator_plots 2
#indicador de propriedade_tipo1 DRAW_COLOR_LINE
#property indicator_type2 DRAW_COLOR_LINE
#indicador de propriedade_color1 clrBlue
#indicador de propriedade_color2 clrRRed
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID

input int período_1 = 20;
input int período_2 = 100;
input ENUM_MA_METHOD ma_method = MODE_SMA;
input ENUM_APPLIED_PRICE applied_price = PREÇO_CLOSE;

duplo ExtMapBuffer1[];
duplo ExtMapBuffer2[];
int EMHandle1=0;
int EMHandle2=0;
int EMHandle11=0;
int EMHandle22=0;
MqlParam params[]; // Estrutura para salvar parâmetros indicadores
double ma1[],ma2[],ma3[],ma4[];//temporal buffers

int OnInit()
{
//--- cartografia de amortecedores indicadores
SetIndexBuffer(0, ExtMapBuffer1, INDICATOR_DATA);
SetIndexBuffer(1, ExtMapBuffer2, INDICATOR_DATA);
SetIndexBuffer(2, ma1, INDICATOR_DATA);
SetIndexBuffer(3, ma2, INDICATOR_DATA);
SetIndexBuffer(4, ma3, INDICATOR_DATA);
SetIndexBuffer(5, ma4, INDICATOR_DATA);

PlotIndexSetInteger(0, PLOT_SHIFT, 0);
PlotIndexSetInteger(1, PLOT_SHIFT, 0);

PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID);
PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_SOLID);
//---
PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrBlue);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,clrRRed);

PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
IndicatorSetString(INDICADOR_SHORTNAME, "2_2_MA");
//--- definir precisão
IndicatorSetInteger(INDICADOR_DIGITS,4);
//---
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_1;
// Compensação
params[1].type =TYPE_INT;
params[1].integer_value=0;
// Método de cálculo: cálculo da média simples
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
// tipo de preços para cálculo: preços de fecho
params[3].type =TYPE_INT;
params[3].integer_value=PREÇO_CLOSE;

EMHandle1 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_2;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PREÇO_CLOSE;

EMHandle2 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_1;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PREÇO_CLOSE;

EMHandle11 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_2;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PREÇO_CLOSE;

EMHandle22 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)

return(0);
}
int OnCalculate (const int taxas_total,// tamanho do preço da matriz[];
const int prev_calculated,// número de barras disponíveis ;na chamada anterior;
const int begin,// que índice em matriz de preços[] começarão dados válidos;
const double &price[]) // matriz, sobre a qual o indicador será calculado;
{
int i;
ArraySetAsSeries(ma1, verdadeiro);
ArraySetAsSeries(ma2, verdadeiro);
ArraySetAsSeries(ma3, verdadeiro);
ArraySetAsSeries(ma4, true);

if(CopyBuffer(EMHandle1, 0, 0, 1, ma1) < 0){Print("CopyBuffer ma1 error =", GetLastError());}
if(CopyBuffer(EMHandle2, 0, 0, 1, ma2) < 0){Print("CopyBuffer ma2 error =", GetLastError());}
if(CopyBuffer(EMHandle11, 0, 0, 1, ma3) < 0){Print("CopyBuffer ma3 error =", GetLastError());}
if(CopyBuffer(EMHandle22, 0, 0, 0, 1, ma4) < 0){Print("CopyBuffer ma4 error =", GetLastError());}
int limit;
//if(prev_calculated<1)
//limite=período_1;
limit=prev_calculated-1;
para( i=0; i<limite; i++)
ExtMapBuffer1[0]=calculado;
ExtMapBuffer2[0]=calculado;

Comentário(
"\n=====================",
"\n ma1[0] : ",DoubleToString(ma1[0],5),
"\n ma2[0] : ",DoubleToString(ma2[0],5),
"\n ma3[0] : ",DoubleToString(ma3[0],5),
"\n ma4[0] : ",DoubleToString(ma4[0],5),
"\n ExtMapBuffer1[0] : ",DoubleToString(ExtMapBuffer1[0],4),
"\n ExtMapBuffer2[0] : ",DoubleToString(ExtMapBuffer2[0],4)
);
return(rates_total);
}
nulo OnDeinit(const int razão)
{
Comentário(");
}
[/código]

Quando 0 em vez de i (para uma barra) vejo o resultado, quando a barra (corrente = i) mostra que não consigo encontrar dados para o segundo par.

O gráfico do par está aberto, na Janela de Mercado não sei onde confundir as coisas.

Dois pares diferentes num só indicador - então onde está o meu erro?

Tento colocar 0 e ver o resultado como um comentário, mas não tenho uma linha.

Para esclarecer: coloco ma1 e ma2 num par e ma3 e ma4 no outro par.

Obrigado.