Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Olá, você poderia me ajudar na elaboração deste especialista?
Com base no indicador FreedomBar...
Se a praça anterior fechar vermelho -> vender (preço de mercado) -> fechar comércio na próxima praça anterior mudar para azul e inverter para comprar (preço de mercado)
Idem nas ordens de compra
As opções TF, tp, sl e trailing stop seriam boas.
Obrigado de antemão
Qualquer ajuda, por favor. Estou lendo de e indicador para um EA usando icustom, durante o backtest a tendência corre bastante feliz, então por alguma razão os parâmetros do icustom se invertem, então minha tendência está subindo em vez de descer, mesmo que o indicador esteja se mostrando para baixo depois que o comércio é ativado eu corrijo a si mesmo e então acontece novamente algum tempo depois
Qualquer ajuda, por favor. Estou lendo de e indicador para um EA usando icustom, durante o backtest a tendência corre bastante feliz, então por alguma razão os parâmetros do icustom se invertem, então minha tendência está subindo em vez de descer, mesmo que o indicador esteja se mostrando para baixo depois que o comércio é ativado eu corrijo a si mesmo e então acontece novamente algum tempo depois
mmm então o indicador parece ser o problema, é o SuperTrend volty like, mas eu tive o problema com outros indicadores não-pintados como o FX Sniper Ergodic e Fisher.
O desafio parece ser que há muitas vezes quando o indicador aponta em uma direção, digamos para baixo, mas o ponto inicial do movimento acaba sendo mais baixo do que o final, fazendo com que o indicador apareça para baixo, mas os dados lêem para cima.
Algum comentário sobre isto, alguém tem um indicador sem repintura que não faz isto, ou qualquer outra solução?
Por favor, veja a figura em anexo.
Função iCustom
olá a todos... este é meu primeiro post
preciso de alguma ajuda com a ea im tentando criar. esta ea será usada para fechar a posição com base na cor do indicador, mas vou abrir a posição manualmente. como não tenho a versão de descompilação do indicador, acho que o icustom é o caminho a seguir.
mas como eu chamo a função com base na cor?
por exemplo, se eu usei Heikin Ashi_SW e quero fechar a posição de venda quando a cor é azul depois que a barra é fechada e vice-versa.
do quex com antecedência
Problemas da ICustom
Tenho um simples Indicador Personalizado sem extensões chamado #TestIndicator que preenche 8 buffers com o número 1.0 mas quando trago de volta os buffers no meu EA os resultados do buffer são sempre 0 . Você pode me ajudar com isso?
#TestIndicator
#property indicator_chart_window
#property indicator_buffers 8
double buf4_up[];
double buf4_down[];
double buf3_up[];
double buf3_down[];
double buf2_up[];
double buf2_down[];
double buf1_up[];
double buf1_down[];
int UniqueNum = 0070;
string shortname = "";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
shortname = "#TFX";
IndicatorBuffers(8);
IndicatorShortName(shortname);
//---- indicators
SetIndexBuffer(0,buf4_up);
SetIndexBuffer(1,buf4_down);
SetIndexBuffer(2,buf3_up);
SetIndexBuffer(3,buf3_down);
SetIndexBuffer(4,buf2_up);
SetIndexBuffer(5,buf2_down);
SetIndexBuffer(6,buf1_up);
SetIndexBuffer(7,buf1_down);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars = IndicatorCounted();
//---- the last calculated bar will be recalculated
if(counted_bars > 0)
counted_bars--;
limit = Bars - counted_bars - 1;
//---- the main cycle
for(int i = limit; i >= 0; i--)
{
//----
buf4_up=1.0;
buf4_down=1.0;
buf3_up=1.0;
buf3_down=1.0;
buf2_up=1.0;
buf2_down=1.0;
buf1_up=1.0;
buf1_down=1.0;
}
//----
//----
//----
return(0);
}
//+------------------
[/CODE]
EA Code
[CODE]
double test4_up[];
double test4_down[];
double test3_up[];
double test3_down[];
double test2_up[];
double test2_down[];
double test1_up[];
double test1_down[];
int UniqueNum = 009;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
Print("Inside init");
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Print("Inside deinit");
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
Print("Inside start");
int counted_bars=IndicatorCounted();
int y5m=0, y1h=0, y30m=0, y15m=0, yy=0;
int i=0;
int limit=Bars-counted_bars;
for(i=0;i<limit;i++)
{
test4_up = iCustom(NULL, 0, "#TestIndicator",0,i);
test4_down = iCustom(NULL, 0, "#TestIndicator",1,i);
}
for(i=0;i<30;i++)
{
Print("Test 4 UP ", test4_up," Bar ",i );
Print("Test 4 DOWN ", test4_down," Bar ",i );
//Print("This is a test");
}
//----
return(0);
}
//+---------
Resultados no Testador
Tenho um simples Indicador Personalizado sem extensões chamado #TestIndicator que preenche 8 buffers com o número 1.0, mas quando trago de volta os buffers em meu EA os resultados do buffer são sempre 0 . Você pode me ajudar com isto.
Código EA
double test4_up[];
double test4_down[];
double test3_up[];
double test3_down[];
double test2_up[];
double test2_down[];
double test1_up[];
double test1_down[];
int UniqueNum = 009;
..
..
...
......
..
int i=0;
int limit=Bars-counted_bars;
ArrayResize(test4_up, limit);
ArrayResize(test4_down, limit);
for(i=0;i<limit;i++)
{
test4_up = iCustom(NULL, 0, "#TestIndicator",0,i);
test4_down = iCustom(NULL, 0, "#TestIndicator",1,i);
}
for(i=0;i<30;i++)
{
Print("Test 4 UP ", test4_up," Bar ",i );
Print("Test 4 DOWN ", test4_down," Bar ",i );
//Print("This is a test");
}
//----
return(0);
}
//+---------
Maybay, você precisa definir o tamanho da matriz em sua EA.
Obrigado
Maybay, você precisa definir o tamanho da matriz em sua EA.
Obrigado Okfar. Esse foi exatamente o problema
Dependendo de como você vai acessar seus dados, você não precisa recarregar a matriz em cada tick, assim como você não precisa recalcular os indicadores. ver
bool ArraySetAsSeries(double&array[], bool set)Define a direção de indexação da matriz. Se o parâmetro do conjunto tiver o valor VERDADEIRO, a matriz será indexada em ordem inversa, ou seja, o último elemento tem um índice zero. O valor FALSO define uma ordem de indexação padrão. A função retorna o status anterior.
...
Você está tentando usar recursos que devem ser usados exclusivamente a partir de um indicador.
IndicatorCounted() não tem nenhum significado quando chamado de um EA. Ele sempre retorna -1 quando chamado dentro de um código EA. Tente usar uma constante em vez disso (como em seu segundo loop) ou Barras (se você quiser todo o histórico).
Além disso, as arrays usadas dentro da EA devem ser dimensionadas, inicializadas e todo o trabalho que normalmente o metatrader faz quando se trata de indicadores e buffers dentro de indicadores. A EA não tem um equivalente do SetIndexBuffer() que é usado em indicadores. Você está tendo matrizes não inicializadas em seu Ea e somente o metatrader impediu que seu EA travasse a plataforma (ele sempre retorna 0 nesses casos, já que o valor do elemento que você está tentando ler não existe, e na verdade, essas matrizes não existem (elas são apenas declaradas, não alocadas, inicializadas,...))
com respeito a
mladen
Tenho um simples Indicador Personalizado sem extensões chamado #TestIndicator que preenche 8 buffers com o número 1.0 mas quando trago de volta os buffers no meu EA os resultados dos buffers são sempre 0 . Você pode me ajudar com isto.
#TestIndicator
#property indicator_chart_window
#property indicator_buffers 8
double buf4_up[];
double buf4_down[];
double buf3_up[];
double buf3_down[];
double buf2_up[];
double buf2_down[];
double buf1_up[];
double buf1_down[];
int UniqueNum = 0070;
string shortname = "";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
shortname = "#TFX";
IndicatorBuffers(8);
IndicatorShortName(shortname);
//---- indicators
SetIndexBuffer(0,buf4_up);
SetIndexBuffer(1,buf4_down);
SetIndexBuffer(2,buf3_up);
SetIndexBuffer(3,buf3_down);
SetIndexBuffer(4,buf2_up);
SetIndexBuffer(5,buf2_down);
SetIndexBuffer(6,buf1_up);
SetIndexBuffer(7,buf1_down);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars = IndicatorCounted();
//---- the last calculated bar will be recalculated
if(counted_bars > 0)
counted_bars--;
limit = Bars - counted_bars - 1;
//---- the main cycle
for(int i = limit; i >= 0; i--)
{
//----
buf4_up=1.0;
buf4_down=1.0;
buf3_up=1.0;
buf3_down=1.0;
buf2_up=1.0;
buf2_down=1.0;
buf1_up=1.0;
buf1_down=1.0;
}
//----
//----
//----
return(0);
}
//+------------------
[/code]EA Code
[code]
double test4_up[];
double test4_down[];
double test3_up[];
double test3_down[];
double test2_up[];
double test2_down[];
double test1_up[];
double test1_down[];
int UniqueNum = 009;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
Print("Inside init");
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Print("Inside deinit");
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
Print("Inside start");
int counted_bars=IndicatorCounted();
int y5m=0, y1h=0, y30m=0, y15m=0, yy=0;
int i=0;
int limit=Bars-counted_bars;
for(i=0;i<limit;i++)
{
test4_up = iCustom(NULL, 0, "#TestIndicator",0,i);
test4_down = iCustom(NULL, 0, "#TestIndicator",1,i);
}
for(i=0;i<30;i++)
{
Print("Test 4 UP ", test4_up," Bar ",i );
Print("Test 4 DOWN ", test4_down," Bar ",i );
//Print("This is a test");
}
//----
return(0);
}
//+---------
Resultados no Testador...
Pergunta de codificação
Tenho um indicador que me agrada muito e o demoei por algumas semanas e tive bastante sucesso. Existe alguma forma de automatizar pedidos de compra/venda com base no indicador? Um pequeno resumo é uma pequena seta apontando para cima ou para baixo no gráfico quando os indicadores que eu gosto se alinham para cima. Existe alguma maneira de que quando a seta aparecer, ela faça um pedido para mim?