Função ICustom - página 12

 

Qualquer pessoa pode postar uma simples ea que compra e vende, chamando dois indicadores com icustom().

Existe uma função para fechar pedidos pendentes.

Obrigado

 

iCustom ajuda

Hi.

Estou tentando modificar um dos indicadores da FerruFX para usar indicadores personalizados. Eu já consegui que todos os AGs funcionassem corretamente, mas não sei como obter as informações corretas para os outros dois indicadores. Por fim, gostaria que isto mostrasse os dados do MTF dos dois indicadores que anexei, PerkyAsctrend1 e HeikenAshi MTF. Estou usando o iCustom para ambos e acho que já usei os comandos corretos nessa medida.

Sou capaz de produzir dados (mas não os dados corretos) para o PerkyAsctrend1. Pensei ter entendido a lógica para conseguir exibi-los corretamente, mas acho que não entendi. Ferru usou MA, CCI, MACD, ADX, Bullspower e BearsPower em seu indicador, mas são diferentes tipos de indicadores e infelizmente não são muito úteis como referência (para mim) para a PerkyAsctrend1 nesta configuração.

Pensei que o indicador HeikenAshi MTF seria suficientemente fácil de adicionar ao indicador. Aparentemente, eu estava errado. A coluna Heiken está exibindo "Label" inexplicavelmente e todos eles estão desaparecendo após o primeiro tick.

Espero que o código não pareça tão grosseiro para você como para mim. Eu sou um programador amador. Se alguém puder ajudar, eu realmente apreciaria. Preciso de um par de olhos mais experiente nisto. Sinto que será bastante benéfico quando estiver completo.

-

Aqui estão os pedaços de código que estão me dando problemas. Ambos os iCustoms estão me dando valores de 2147483647, o número total de barras no histórico/gráfico de preços.

int RISK = 4;

int AllBars = 250;

int MaMétodo = 1;

int MaPeríodo = 20;

//...

// Pesky

//...

cadeia Pesky_Trend_1 //-- , Pesky_Trend_5, Pesky_Trend_15, Pesky_Trend_30, Pesky_Trend_60, Pesky_Trend_240, Pesky_Trend_1440, Pesky_Trend_10080;

duplo Pesky_m_1=iCustom(NULL,PERÍODO_M1, "PerkyAsctrend1", RISK, AllBars,0,shift_1);

if ((Pesky_m_1 > 0)) { Pesky_Trend_1 = "UP"; x = 416; color_indic = Lime; UP_33 = 1; DOWN_33 = 0; }

if ((Pesky_m_1 < 0)) { Pesky_Trend_1 = "DOWN"; x = 406; color_indic = Vermelho; UP_33 = 0; DOWN_33 = 1; }

// ...

// Indicador (Heiken)

//...

string HA_Trend_1 //-- , HA_Trend_5, HA_Trend_15, HA_Trend_30, HA_Trend_60, HA_Trend_240, HA_Trend_1440, HA_Trend_10080;

duplo HA_1_1=iCustom(NULL,PERÍODO_M1, "Heiken MTF",MaMethod,MaPeriod,shift_1);

duplo HA_2_1=iCustom(NULL,PERÍODO_M1, "Heiken MTF",MaMétodo,MaPeriodo,turno_1+1);

if ((HA_1_1 > HA_2_1)) { HA_Trend_1 = "UP"; x = 466; color_indic = Lime; UP_41 = 1; DOWN_41 = 0; }

if ((HA_1_1 < HA_2_1)) { HA_Trend_1 = "DOWN"; x = 456; color_indic = Lime; UP_41 = 0; DOWN_41 = 1; }

//...

Eu sei que os valores de deslocamento são pouco ortodoxos, mas foi assim que o autor original o fez.

int start()

{

//...

// Cálculo de turnos para indicadores (somente testes)

turno duplo_1, turno_5, turno_15, turno_30, turno_60, turno_240, turno_1440, turno_10080;

if( teste == verdadeiro )

{

shift_1=iBarShift(NULL,PERÍODO_M1,look_time_shift,false);

shift_5=iBarShift(NULL,PERÍODO_M5,look_time_shift,false);

shift_15=iBarShift(NULL,PERÍODO_M15,look_time_shift,false);

shift_30=iBarShift(NULL,PERÍODO_M30,look_time_shift,false);

shift_60=iBarShift(NULL,PERÍODO_H1,look_time_shift,false);

shift_240=iBarShift(NULL,PERÍODO_H4,look_time_shift,false);

shift_1440=iBarShift(NULL,PERÍODO_D1,look_time_shift,false);

shift_10080=iBarShift(NULL,PERÍODO_W1,look_time_shift,false);

}

senão

{

shift_1=shift_indicators;

shift_5=shift_indicators;

shift_15=shift_indicators;

shift_30=shift_indicators; shift_30=shift_indicators;

shift_60=shift_indicators; shift_60=shift_indicators;

shift_240=indicadores de shift_indicators;

shift_1440=indicadores de shift_indicators;

shift_10080=shift_indicators;

Obrigado...

Arquivos anexados:
 

Versões atualizadas

Bem, eu reorganizei tudo como precisa ser visualmente e mudei alguns nomes de parâmetros. Tudo ainda parece estar correto para o iCustom, mas o valor PerkyAsctrend não está sendo calculado corretamente e a lógica Heiken está aparentemente completamente errada. Parece que não é noturno fornecer um valor duplo para o iCustom para o indicador Heiken MTF. Ainda não os verifiquei novamente, mas ambos os valores duplos do iCustom para os indicadores eram iguais ao número de barras em minha história (2147483647)...! Devo estar fazendo algo completamente errado com o iCustom, mas não consigo encontrá-lo para a minha vida.

Se você tiver tempo ou energia para olhar isso, eu ficaria muito grato.

Arquivos anexados:
 

Para: Homicida & Ra457 re: iCustom

Hi.

Aquele grande valor numérico que se obtém quando se usa iCustom, soa como uma dificuldade que eu tinha.

Espero que isto ajude.

Certifique-se de que os parâmetros que você entra no iCustom sejam exatamente os mesmos, e na mesma ordem que aqueles dados nas variáveis externas no próprio código indicador.

Abraço.

 

2147483647 não tem nada a ver com sua história.

É o maior valor que pode ter um inteiro assinado de 32 bits e é usado pelo MT4 como o "Valor Vazio" padrão dos indicadores.

Os indicadores estão retornando "Valor Vazio" quando o valor não deve ser mostrado.

 

iCustom()

Oi, eu preciso ler três varaiables de um Indicador.

Coloquei uma bainha na parte superior do indicador:

Variáveis:

duplo eaBid=0;

duplo eaAsk=0;

string eaType=""";

//==========================

Variáveis

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 8

#Indicador de propriedade_color1 Preto

#indicador de propriedade_color2 Cal

#indicador de propriedade_color3 Cal

#indicador de propriedade_color4 Amarelo

#indicador de propriedade_color5 Vermelho

#indicador de propriedade_cores6 Vermelho

#indicador de propriedade_color7 Preto

#indicador de propriedade_color8 Preto

duplo eEP=0;

duplo eaSL=0;

duplo eaType=0;

duplo iVars[];

Stuff

#property indicator_buffers 2

#indicador de propriedade_cores1 Vermelho

#Indicador de propriedade_color2 ForestGreen

//---- parâmetros de entrada

string IndicatorName="TradeWatch";

double EntryBid=0;

double EntryAsk=0;

string EntryType=""";

double eaBid=0;

double eaAsk=0;

string eaType=""";

int init()

{

retorno (0);

}

Início

{

EntryBid = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 1, 0);

EntryAsk = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 2, 0);

EntryType = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 3, 0);

}

Como faço para ler as três variáveis no meu EA?

Não consigo ver onde estou indo errado?

Obrigado.

 

Por que você simplesmente não lê os resultados das variáveis que devem refletir nos valores tampão do indicador? Se você olhar para as cores na configuração do indicador após colocar o indicador no gráfico, cada cor representa um buffer. A cor do topo = buffer0, a segunda da cor do topo = buffer1 e assim por diante.

Use algo como isto em seu EA:

Buff0=iCustom(NULL,0, "Nome do Indicador",0,0); //Top cor do indicador

Buff0=iCustom(NULL,0, "Nome do Indicador",0,1); //1-Back

Buff1=iCustom(NULL,0, "Nome do Indicador",1,0); //Nexterior à cor superior do indicador

Buff1=iCustom(NULL,0, "Nome do Indicador",1,1); //1-Back

Modifique as variáveis no próprio indicador, e recompile o indicador que atualizará os amortecedores e o indicador no gráfico!

Se ainda estiver confuso, eu lhe enviarei um EA e um indicador reais para que você os examine.

Dave

<<<

 

iCustom()

Obrigado, Dave.

Está funcionando.

 

tenha um bom dia todos

 

minha EA

criei meu EA - ASCTrend.mq4 com construtor MQ4, que usa o sinal ascendente com a função ICustom. ele pode abrir uma transação de COMPRA quando sinal UP, e VENDA quando DOWN.

quero adicionar ao meu EA algum filtro - com testes de retrocesso em alguns pares, seu aspecto é bom para o filtro com BBands ind, bud não sei como adicionar este filtro ao meu EA - algo parecido com isso, mas não tenho sorte.

double Buy1_1 = iCustom(Symbol(),0, "PerkyAsctrend1",0,1);

duplo Buy2_1 = iCustom(NULL, 0, "BBands_Stop_v1", 4, 0, Atual + 1);

duplo Buy2_2 = 1;

duplo Sell1_1 = iCustom(Symbol(),0, "PerkyAsctrend1",1,1);

duplo Sell2_1 = iCustom(NULL, 0, "BBands_Stop_v1", 5, 0, Atual + 1);

duplo Sell2_2 = 1;

if (Buy1_1 && Buy2_1 > Buy2_2) Order = SIGNAL_BUY;

if (Venda1_1 && Venda2_1 > Venda2_2) Encomenda = SINAL_SELL;

Arquivos anexados:
Razão: