Boa noite pessoal, estou criando um EA a partir do Indicador DIDI index, porem ao capiar o indicador para o robô e tentar fazer backtest tenho vários erros, a copia esta sendo feita assim, se puderem me ajudar a encontrar o erro.
// Copiando Indicador DIDI
double FAST[],MEAN[],SLOW[];
int IndHandle3=iCustom(_Symbol,_Period,"Universal\\DIDI_INDEX");
CopyBuffer(IndHandle3,0,0,4,FAST);
CopyBuffer(IndHandle3,1,0,4,MEAN);
CopyBuffer(IndHandle3,2,0,4,SLOW);
Obrigado,
double FAST[],MEAN[],SLOW[]; int OnInit() { int IndHandle3=iCustom(_Symbol,_Period,"Universal\\DIDI_INDEX"); if(IndHandle3==INVALID_HANDLE) { PrintFormat("Falha ao criar IndHandle3 para o símbolo %s/%s, código de erro %d", _Symbol, EnumToString(_Period), GetLastError()); return(INIT_FAILED); } return(INIT_SUCCEEDED); } OnTick() { CopyBuffer(IndHandle3,0,0,4,FAST); CopyBuffer(IndHandle3,1,0,4,MEAN); CopyBuffer(IndHandle3,2,0,4,SLOW); }
Boa noite pessoal, estou criando um EA a partir do Indicador DIDI index, porem ao capiar o indicador para o robô e tentar fazer backtest tenho vários erros, a copia esta sendo feita assim, se puderem me ajudar a encontrar o erro.
// Copiando Indicador DIDI
double FAST[],MEAN[],SLOW[];
int IndHandle3=iCustom(_Symbol,_Period,"Universal\\DIDI_INDEX");
CopyBuffer(IndHandle3,0,0,4,FAST);
CopyBuffer(IndHandle3,1,0,4,MEAN);
CopyBuffer(IndHandle3,2,0,4,SLOW);
Obrigado,
Bom dia Rogerio, obrigado pela ajuda, mas ainda ha algo errado, me parece ser algo relacionado a inserção do indicador DIDI e a janela de visualização.
O código ficou assim:
double FAST[],MEAN[],SLOW[];
int OnInit()
{
int IndHandle1=iCustom(_Symbol,_Period,"Universal\\IND_ROMPIMENTO_BARRA1");
ChartIndicatorAdd(0,0,IndHandle1);
int IndHandle2=iCustom(_Symbol,_Period,"Universal\\ATR_STOP4");
ChartIndicatorAdd(0,0,IndHandle2);
int IndHandle3=iCustom(_Symbol,_Period,"Universal\\DIDI_INDEX");
if(IndHandle3==INVALID_HANDLE)
{
PrintFormat("Falha ao criar IndHandle3 para o símbolo %s/%s, código de erro %d",
_Symbol,
EnumToString(_Period),
GetLastError());
return(INIT_FAILED);
}
return(INIT_SUCCEEDED);
}
void OnTick()
{
//------------------------------------------------------------------
// Copiando Indicador de Maxima e Minima da primeira barra
double Up[],Down[];
ArraySetAsSeries(Up,true);
ArraySetAsSeries(Down,true);
int IndHandle1=iCustom(_Symbol,_Period,"Universal\\IND_ROMPIMENTO_BARRA1");
CopyBuffer(IndHandle1,0,0,4,Up);
CopyBuffer(IndHandle1,1,0,4,Down);
//------------------------------------------------------------------
// Copiando Indicador ATR_STOP4
double UP_ATR[],DOWN_ATR[];
int IndHandle2=iCustom(_Symbol,_Period,"Universal\\ATR_STOP4");
CopyBuffer(IndHandle2,0,0,4,UP_ATR);
CopyBuffer(IndHandle2,1,0,4,DOWN_ATR);
//------------------------------------------------------------------
// Copiando Indicador DIDI
CopyBuffer(IndHandle3,0,0,4,FAST);
CopyBuffer(IndHandle3,1,0,4,MEAN);
CopyBuffer(IndHandle3,2,0,4,SLOW);
Mas esta com erro
Boa tarde,
1) Use o ALT-S para postar códigos.
2) Você copiou sem procurar entender minha sugestão, entao:
2.1) O HANDLE dos indicadores devem ser criados somente uma vez de prefêrencia no OnInit(), então retire a criação do HANDLE dentro do OnTick(). (*)
2.2) Teste o retorno da criação do HANDLE dos três.
3) Bom dia Rogerio, obrigado pela ajuda, mas ainda ha algo errado, me parece ser algo relacionado a inserção do indicador DIDI e a janela de visualização.
Se você acha que é isso por que não testou, ainda?
if(!ChartIndicatorAdd(0,subwindow,indicator_handle)) |
3) Feito as alterações, compile e plugue o programa na janela gráfica e veja o resultado na aba EXPERTS.
(*) Nas situações que precisar criar o mesmo handle com novos operadores o handle corrente deve ser liberado usando o comando IndicatorRelease( handle );

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Boa noite pessoal, estou criando um EA a partir do Indicador DIDI index, porem ao capiar o indicador para o robô e tentar fazer backtest tenho vários erros, a copia esta sendo feita assim, se puderem me ajudar a encontrar o erro.
// Copiando Indicador DIDI
double FAST[],MEAN[],SLOW[];
int IndHandle3=iCustom(_Symbol,_Period,"Universal\\DIDI_INDEX");
CopyBuffer(IndHandle3,0,0,4,FAST);
CopyBuffer(IndHandle3,1,0,4,MEAN);
CopyBuffer(IndHandle3,2,0,4,SLOW);
Obrigado,