Função ICustom - página 22

 
SantaClaus:
O inglês não é minha língua materna, mas eu realmente não pensei que minha pergunta fosse tão errada. Em vez de "marcar palavras", vamos encontrar uma solução para o meu problema. Eu tento a pergunta novamente.

Qual é a melhor maneira para a minha EA reconhecer os simples puts e chamadas do meu indicador?

Obviamente, meu código não funcionou e tentei mudar o "1" para um "0", como você me disse.

Coloque (anexe) seu código que não funciona aqui - os arquivos mql que você está testando e que você escreveu até agora

 

É o meu código privado, portanto não quero compartilhá-lo. Mas o que mais você precisa ver do que o código que eu forneci?

Há algo que eu esqueci?

 
SantaClaus:
É o meu código privado, por isso não quero compartilhá-lo. Mas o que mais você precisa ver do que o código que eu forneci? Há algo que eu esqueci?

Você quer dizer que você quer que alguém o ajude na codificação, mas não quer mostrar o código a ser verificado quanto a erros, mas ao invés disso você está alegando que todos os conselhos que você recebeu, e que estão funcionando em milhares e milhares de outros códigos, não estão funcionando para você?

OK. Eu entendo sua posição agora. Boa sorte com sua codificação.

Feliz negociação

 

Código privado que não funciona? Interessante

 

Dois dos meus cargos foram apagados por alguma razão que eu não conheço.

No entanto, o problema que encontrei foi que eu tinha outros amortecedores que perturbavam aquele que eu estava tentando ler. Agora eu tenho uma solução que funciona.

 

Preciso de alguma ajuda, por favor... Como você envia parâmetros de símbolos que têm um sufixo(micro) para uma função contendo icustom. se eu não estiver usando uma função, eu coloco o nome do símbolo entre aspas duplas e funciona, por exemplo, icustom("EURUSDmicro",0,sinal de canal",2,1) mas quando eu uso uma função, as aspas duplas não são passadas por cima. por favor, veja o seguinte código o que eu quero dizer

nulo OnTick()

{

CalcDisplay("EURUSDmicro"); //--------FUNÇÃO CALL-------

}

void CalcDisplay(string TxtCurrency) //--------FUNCTION-------

{

valor duplo=icustom(TxtCurrency,0,channel-signal",2,1);

...

...

..

}

 
Richard Sidric:
Preciso de alguma ajuda, por favor... Como você envia parâmetros de símbolos que têm um sufixo(micro) para uma função contendo icustom. se eu não estou usando uma função, eu coloco o nome do símbolo entre aspas duplas e funciona, por exemplo, icustom("EURUSDmicro",0,canal-sinal",2,1), mas quando eu uso uma função, as aspas duplas não são passadas por cima. por favor, veja o seguinte código o que eu quero dizer

nulo OnTick()

{

CalcDisplay("EURUSDmicro"); //--------FUNÇÃO CALL-------

}

void CalcDisplay(string TxtCurrency) //--------FUNCTION-------

{

valor duplo=icustom(TxtCurrency,0,channel-signal",2,1);

...

...

..

}

Não é necessário passar aspas. Tudo o que é necessário é que seja um fio.

___________________

PS: em sua chamada iCiustom você está perdendo uma citação. É assim agora :

double Value=icustom(TxtCurrency,0,channel-signal",2,1);

e tem que ser assim :

double Value=icustom(TxtCurrency,0, "channel-signal",2,1);

 

oi todos vocês eu tenho um indicador t4 abaixo anexado só quero saber como posso usá-lo para comércio de robôs e comércio de robôs ou ea são os mesmos ou não

( eu já o uso manual senta-se em frente ao computador, mas )

se eu usar isto para comércio automatizado, então como por favor me ajude qualquer um agradece antecipadamente

//------------------------------------------------------------------

// original ised e primeira implementação por mony

// versão tris por mladen

//------------------------------------------------------------------

#propriedade copyright "mony & mladen"

#link da propriedade "made at www.forex.tsd.com"

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 5

#indicador de propriedade_color1 MediumBlue

#indicador de propriedade_color2 Vermelho

#indicador de propriedade_color3 MediumBlue

#indicador de propriedade_cores4 Vermelho

#indicador de propriedade_color5 Vermelho

#largura_do_indicador de propriedade3 3

#largura_do_indicador de propriedade4 3

#largura_do_indicador de propriedade5 3

#propriedade rigorosa

//

//

//

//

//

//

enum enDisplay

{

dis_line, // Exibir linha colorida

dis_bars, // Mostrar barras coloridas

dis_both // Exibir tanto linhas coloridas quanto barras

};

período CCI int externo = 3; // período CCI

período ATR int externo = 300; // período ATR

ENUM_APPLIED_PRICE externo aplicado_preço = PREÇO_TÍPICO; // Preço a usar

enDisplay externo DisplayType = dis_line; // Tipo de display

alertas de bool externoOn = verdadeiro; // Ligar os alertas

alertas de bool externoOnCurrent = falso; // Alertas na barra de corrente (ainda aberta)

alertas de bool externoMensagem = verdadeira; // Alertas devem exibir mensagem pop-up

alertas de bool externoSom = verdadeiro; // Alertas devem tocar som

alertas externos de boolNotificar = verdadeiro; // Alertas devem enviar notificação

alertas de bool externoEmail = falso; // Alertas devem enviar enail

som de corda externaArquivo = "o.wma"; // Arquivo de som t usado para alertas sonoros

linha dupla TrLine[];

duplo TrendDowna[];

duplo TrendDownb[];

duplo HistUp[];

duplo HistDn[];

duplo TrendDownb[]; duplo HistUp[]; duplo HistDn[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int init()

{

IndicatorBuffers(6);

int styleLine = DRAW_LINE; if (DisplayType==dis_bars) styleLine=DRAW_NONE;

int styleBars = DRAW_HISTOGRAM; if (DisplayType===dis_line) styleBars=DRAW_NONE;

SetIndexBuffer(0, HistUp); SetIndexStyle(0,styleBars);

SetIndexBuffer(1, HistDn); SetIndexStyle(1,styleBars);

SetIndexBuffer(2, TrLine); SetIndexStyle(2, styleLine);

SetIndexBuffer(3, TrendDowna); SetIndexStyle(3,styleLine);

SetIndexBuffer(4, TrendDownb); SetIndexStyle(4,styleLine);

SetIndexBuffer(5, TrendDownb); SetIndexBuffer(5, trend);

return(0);

}

int deinit(){ return(0); }

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

//

//

//

//

//

if (trend[limit]==-1) CleanPoint(limit,TrendDowna,TrendDownb);

for(int i=limit; i >= 0; i--)

{

duplo cciTrendNow = iCCI(NULL, 0, CCIperiod, applied_price, i);

se (cciTrendNow >= 0)

{

TrLine = NormalizeDouble(Baixa - iATR(NULL, 0, período ATR, i),Dígitos);

if (i<(Bars-1) && TrLine < TrLine) TrLine = TrLine;

}

se (cciTrendNow <= 0)

{

TrLine = NormalizeDouble(Alto + iATR(NULL, 0, período ATR, i),Dígitos);

se (i TrLine) TrLine = TrLine;

}

//

//

//

//

//

TrendDowna = EMPTY_VALUE;

TrendDownb = EMPTY_VALUE;

se (i<(Bars-1))

{

tendência = tendência;

se (TrLine> TrLine) tendência = 1;

se (TrLine> TrLine) tendência = 1;

if (tendência == -1) PlotPoint(i,TrendDowna,TrendDownb,TrLine);

if (trend == 1) { HistUp = High; HistDn = Low; }

if (tendência == -1) { HistDn = Alto; HistUp = Baixo; }

}

}

gerenciarAlertas();

retornar(0);

}

//+-------------------------------------------------------------------

//|

//+-------------------------------------------------------------------

//

//

//

//

//

alertas de gerenciamento de vazios()

{

se (alertasOn)

{

int qualBar = 1; se (alertasOnCurrent) qualBar = 0;

if (tendência[qualBar] != tendência[qualBar+1])

{

if (trend[whichBar] == 1) doAlert(whichBar, "up");

if (trend[whichBar] ==-1) doAlert(whichBar, "down");

}

}

}

//

//

//

//

//

vazio doAlert(int para Bar, string do What)

{

string estática anteriorAlert="nada";

data estática hora anteriorTempo anterior;

mensagem de string;

if (previousAlert != do What ||| previousTime != Time[forBar]) {

anteriorAlerta = fazer o quê;

previousTime = Tempo[para Bar];

//

//

//

//

//

mensagem = Símbolo()+" em "+TimeToStr(TimeLocal(),TIME_SECONDS)+" SP A MINHA tendência mudou para "+doQue";

if (alertasMensagem) Alerta(mensagem);

if (alertasNotificar) EnviarNotificação(mensagem);

se (alertasEmail) SendMail(Symbol()+" S P MY",mensagem);

if (alertasSound) PlaySound(soundFile);

}

}

//-------------------------------------------------------------------

//

//-------------------------------------------------------------------

//

//

//

//

//

vazio CleanPoint(int i,double& first[],double& second[])

{

se (i>=Bars-3) retornar;

if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE))

segundo = VAZIO_VALOR;

senão

if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first === EMPTY_VALUE))

primeiro = VAZIO_VALOR;

}

vazio PlotPoint(int i,double& first[],double& second[],double& from[])

{

se (i>=Bars-2) retornar;

se (primeiro == VAZIO_VALOR)

se (primeiro == VAZIO_VALOR)

{ primeiro = de; primeiro = de; segundo = VAZIO_VALOR; }

senão { second = from; second = from; first = EMPTY_VALUE; }

else { first = from; second = EMPTY_VALUE; }

}

s_p_mony__alerts_1.01.mq4

Arquivos anexados:
 
mony:
oi todos vocês eu tenho um indicador t4 abaixo anexado só quero saber como posso usar isto para comércio de robôs e comércio de robôs ou ea são os mesmos ou não

( eu já o uso manual senta-se em frente ao computador, mas )

se eu usar isto para comércio automatizado, então como por favor me ajude qualquer um agradece antecipadamente

//------------------------------------------------------------------

// original ised e primeira implementação por mony

// versão tris por mladen

//------------------------------------------------------------------

#propriedade copyright "mony & mladen"

#link da propriedade "made at www.forex.tsd.com"

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 5

#indicador de propriedade_color1 MediumBlue

#indicador de propriedade_color2 Vermelho

#indicador de propriedade_color3 MediumBlue

#indicador de propriedade_cores4 Vermelho

#indicador de propriedade_color5 Vermelho

#largura_do_indicador de propriedade3 3

#largura_do_indicador de propriedade4 3

#largura_do_indicador de propriedade5 3

#propriedade rigorosa

//

//

//

//

//

//

enum enDisplay

{

dis_line, // Exibir linha colorida

dis_bars, // Mostrar barras coloridas

dis_both // Exibir tanto linhas coloridas quanto barras

};

período CCI int externo = 3; // período CCI

período ATR int externo = 300; // período ATR

ENUM_APPLIED_PRICE externo aplicado_preço = PREÇO_TÍPICO; // Preço a usar

enDisplay externo DisplayType = dis_line; // Tipo de display

alertas de bool externoOn = verdadeiro; // Ligar os alertas

alertas de bool externoOnCurrent = falso; // Alertas na barra de corrente (ainda aberta)

alertas de bool externoMensagem = verdadeira; // Alertas devem exibir mensagem pop-up

alertas de bool externoSom = verdadeiro; // Alertas devem tocar som

alertas externos de boolNotificar = verdadeiro; // Alertas devem enviar notificação

alertas de bool externoEmail = falso; // Alertas devem enviar enail

som de corda externaArquivo = "o.wma"; // Arquivo de som t usado para alertas sonoros

linha dupla TrLine[];

duplo TrendDowna[];

duplo TrendDownb[];

duplo HistUp[];

duplo HistDn[];

duplo TrendDownb[]; duplo HistUp[]; duplo HistDn[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int init()

{

IndicatorBuffers(6);

int styleLine = DRAW_LINE; if (DisplayType==dis_bars) styleLine=DRAW_NONE;

int styleBars = DRAW_HISTOGRAM; if (DisplayType===dis_line) styleBars=DRAW_NONE;

SetIndexBuffer(0, HistUp); SetIndexStyle(0,styleBars);

SetIndexBuffer(1, HistDn); SetIndexStyle(1,styleBars);

SetIndexBuffer(2, TrLine); SetIndexStyle(2, styleLine);

SetIndexBuffer(3, TrendDowna); SetIndexStyle(3,styleLine);

SetIndexBuffer(4, TrendDownb); SetIndexStyle(4,styleLine);

SetIndexBuffer(5, TrendDownb); SetIndexBuffer(5, trend);

return(0);

}

int deinit(){ return(0); }

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

//

//

//

//

//

if (trend[limit]==-1) CleanPoint(limit,TrendDowna,TrendDownb);

for(int i=limit; i >= 0; i--)

{

duplo cciTrendNow = iCCI(NULL, 0, CCIperiod, applied_price, i);

se (cciTrendNow >= 0)

{

TrLine = NormalizeDouble(Baixa - iATR(NULL, 0, período ATR, i),Dígitos);

if (i<(Bars-1) && TrLine < TrLine) TrLine = TrLine;

}

se (cciTrendNow <= 0)

{

TrLine = NormalizeDouble(Alto + iATR(NULL, 0, período ATR, i),Dígitos);

se (i TrLine) TrLine = TrLine;

}

//

//

//

//

//

TrendDowna = EMPTY_VALUE;

TrendDownb = EMPTY_VALUE;

se (i<(Bars-1))

{

tendência = tendência;

se (TrLine> TrLine) tendência = 1;

se (TrLine> TrLine) tendência = 1;

if (tendência == -1) PlotPoint(i,TrendDowna,TrendDownb,TrLine);

if (trend == 1) { HistUp = High; HistDn = Low; }

if (tendência == -1) { HistDn = Alto; HistUp = Baixo; }

}

}

gerenciarAlertas();

retornar(0);

}

//+-------------------------------------------------------------------

//|

//+-------------------------------------------------------------------

//

//

//

//

//

alertas de gerenciamento de vazios()

{

se (alertasOn)

{

int qualBar = 1; se (alertasOnCurrent) qualBar = 0;

if (tendência[qualBar] != tendência[qualBar+1])

{

if (trend[whichBar] == 1) doAlert(whichBar, "up");

if (trend[whichBar] ==-1) doAlert(whichBar, "down");

}

}

}

//

//

//

//

//

vazio doAlert(int para Bar, string do What)

{

string estática anteriorAlert="nada";

data estática hora anteriorTempo anterior;

mensagem de string;

if (previousAlert != do What ||| previousTime != Time[forBar]) {

anteriorAlerta = fazer o quê;

previousTime = Tempo[para Bar];

//

//

//

//

//

mensagem = Símbolo()+" em "+TimeToStr(TimeLocal(),TIME_SECONDS)+" SP A MINHA tendência mudou para "+doQue";

if (alertasMensagem) Alerta(mensagem);

if (alertasNotificar) EnviarNotificação(mensagem);

se (alertasEmail) SendMail(Symbol()+" S P MY",mensagem);

if (alertasSound) PlaySound(soundFile);

}

}

//-------------------------------------------------------------------

//

//-------------------------------------------------------------------

//

//

//

//

//

vazio CleanPoint(int i,double& first[],double& second[])

{

se (i>=Bars-3) retornar;

if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE))

segundo = VAZIO_VALOR;

senão

if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first === EMPTY_VALUE))

primeiro = VAZIO_VALOR;

}

vazio PlotPoint(int i,double& first[],double& second[],double& from[])

{

se (i>=Bars-2) retornar;

se (primeiro == VAZIO_VALOR)

se (primeiro == VAZIO_VALOR)

{ primeiro = de; primeiro = de; segundo = VAZIO_VALOR; }

senão { second = from; second = from; first = EMPTY_VALUE; }

else { first = from; second = EMPTY_VALUE; }

}

s_p_mony__alerts_1.01.mq4

Você já tentou usar a chamada iCustom() da EA?

Tudo que você tem que fazer é chamar o indicador usando a função iCustom(), ler o buffer de tendência (buffer 5 na nomeação do metatrader) e quando ele muda de valor de -1 para +1 ou de +1 para -1 você tem um sinal

 

senhor, por favor, desculpe-me senhor ......... eu não sei o que é iCustom() chamada... e onde posso tentar ???? ...... onde o encontrei no mt4 ou quando modificar o indicador basta me dizer como posso usar este indicador S P mony para comércio automático / comércio de robôs que é isso senhor ..................

se este é um processo longo, por favor me desculpe e por favor esqueça os postos acima agradecemos senhor

Razão: