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

 
barabashkakvn:
Todos os cálculos são feitos em OnCalculate (ou seja, um novo evento de bar é definido aqui)
Obrigado, vou dar uma vista de olhos. Talvez não compreenda alguma coisa, mas parece que em Cinco não é possível especificar o índice tampão para obter o valor do indicador personalizado.
 
forexman77:
Obrigado, vou dar uma vista de olhos. Talvez eu não compreenda alguma coisa, mas parece não haver possibilidade de especificar o índice tampão para obter o valor do indicador personalizado.
O iCustom dá a pega do indicador personalizado. Depois o CopyBuffer, no qual o segundo parâmetro é o número tampão.
 
Pode dizer-me se existe uma função que interrompe completamente a optimização de uma EA, em vez de uma execução de optimização separada?
 
barabashkakvn:
O iCustom dá a pega do indicador personalizado. Depois o CopyBuffer, em que o segundo parâmetro é o número tampão.

Diga-me, é possível obter o valor do indicador no guião?

Tentei desta forma:

input int MA_Period=21;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMA;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
double MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert("MA_handle=",MA_handle);
  }

Recebo o valor em qualquer indicador 10.

Também o tentei desta forma (o erro 4807 sai):

input int MA_Period=21;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMA;
int MA_handle;
double ma1Val[]; 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

//--- массив значений индикатора MA
   ArraySetAsSeries(ma1Val,true);
//--- копируем значения индикаторов из индикаторных буферов
   if(CopyBuffer(MA_handle,0,0,3,ma1Val)<0)
     {
      Alert("Ошибка копирования буферов индикатора Moving Average - номер ошибки:",GetLastError(),"!!");
      return;
     }
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert("ma1Val[0]=",ma1Val[0]);
  }
 
forexman77:
Será utilizado o seguinte procedimento:
O iCustom dá-lhe o cabo do indicador personalizado. Em seguida, o CopyBuffer, no qual o segundo parâmetro é o número tampão.

Diga-me, é possível obter o valor do indicador no guião?

Tentei desta forma:

Recebo o valor em qualquer indicador 10.

Tentou outra forma (sai o erro 4807):

1.Leia a ajuda do iCustom.
2. Para obter o valor do buffer indicador: obter o manípulo indicador, depois copiar o buffer indicador requerido usando CopyBuffer.
 
barabashkakvn:
1.Leia a ajuda do iCustom.
2. Ordem de obtenção do valor do tampão indicador: obter o cabo indicador, e depois usar CopyBuffer para copiar o tampão indicador requerido por este cabo.
Compreendo, irei estudá-la. Perguntei sobre o guião porque não tem "OnInit" e fica com a pega. Então o guião pede a pega antes de "OnStart"?
 
forexman77:
Estou a ver, vou investigar. Perguntei sobre o guião porque não tem "OnInit" e fica com a pega. Isto significa que o guião pede a pega antes de "OnStart"?
O OnInit está presente em Consultores Especialistas e indicadores.
 
barabashkakvn:
O OnInit está em especialistas e indicadores.
Tudo funcionou!!! Obrigado!!!
 
forexman77:
Tudo se resolveu! Obrigado!!!
De nada.
 
Fleder:
Os produtos no Mercado têm entre 5 e 20 activações (a critério do retalhista). Se não esgotou as suas tentativas de activação, não se preocupe, eles não lhe cobrarão dinheiro extra.
Obrigado pela resposta, vou carregar no botão para comprar. Não há outro :-)
Razão: