Ajuda na codificação - página 135

 

obrigado mladen .....

mas não funciona ....

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

//| text.mq4 |

//| Copyright 2013, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

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

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

#property indicator_chart_window

extern int timeframe1 = PERIOD_H1;

extern int timeframe2 = PERIOD_D1;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int counted_bars=IndicatorCounted();

//----

string name1="";

string name2="";

color color1;

color color2;

double H1 = iClose(NULL,timeframe1,0);

double D1H = iHigh(NULL,timeframe2,1);

double D1L = iLow(NULL,timeframe2,1);

if(H1>D1H)

{

name1 = "up"; color1 = Blue;

}

if(H1<D1L)

{

name2 = "down"; color2 = Red;

}

ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal",OBJPROP_XDISTANCE,3);

ObjectSet("signal",OBJPROP_YDISTANCE,12);

ObjectSetText("signal",name1,12,"Tahoma",color1);

ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal2",OBJPROP_XDISTANCE,59);

ObjectSet("signal2",OBJPROP_YDISTANCE,12);

ObjectSetText("signal2",name2,12,"Tahoma",color2);

//----

return(0);

}

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

Arquivos anexados:
1223123.png  22 kb
 
rizkyd:

obrigado mladen .....

mas não funciona ....

Acho que esta paz de código poderia lhe interessar.

Em vez de usar objetos gráficos, usei buffers normais.

Este indi compara ALLWAYS H1 e D1

Portanto, ele não marcará os preços acima do prazo H1, mas

em prazos iguais ou inferiores a H1. Algumas vezes

parece esguio, em prazos mais baixos (como barras de marcação

muito cedo) mas se você olhar mais de perto para o turno de hora em hora, então é

bem.

dhl_e.mq4

Arquivos anexados:
dhl_e.mq4  3 kb
gbpusdh1.png  30 kb
 
Kalenzo:
Acho que esta paz de código poderia lhe interessar.

Em vez de usar objetos gráficos, usei buffers normais.

Este indi compara ALLWAYS H1 e D1

Portanto, ele não marcará os preços acima do prazo H1, mas

em prazos iguais ou inferiores a H1. Algumas vezes

parece esguio, em prazos mais baixos (como barras de marcação

muito cedo) mas se você olhar mais de perto para o turno de hora em hora, então é

bem.

dhl_e.mq4

obrigado kalenzo ... vai tentar este indi

 
rizkyd:

obrigado mladen .....

mas não funciona ....

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

//| text.mq4 |

//| Copyright 2013, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

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

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

#property indicator_chart_window

extern int timeframe1 = PERIOD_H1;

extern int timeframe2 = PERIOD_D1;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int counted_bars=IndicatorCounted();

//----

string name1="";

string name2="";

color color1;

color color2;

double H1 = iClose(NULL,timeframe1,0);

double D1H = iHigh(NULL,timeframe2,1);

double D1L = iLow(NULL,timeframe2,1);

if(H1>D1H)

{

name1 = "up"; color1 = Blue;

}

if(H1<D1L)

{

name2 = "down"; color2 = Red;

}

ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal",OBJPROP_XDISTANCE,3);

ObjectSet("signal",OBJPROP_YDISTANCE,12);

ObjectSetText("signal",name1,12,"Tahoma",color1);

ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal2",OBJPROP_XDISTANCE,59);

ObjectSet("signal2",OBJPROP_YDISTANCE,12);

ObjectSetText("signal2",name2,12,"Tahoma",color2);

//----

return(0);

}

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

Você está comparando dois períodos de tempo diferentes

Se a barra de tempo 1 for maior ou menor do que a barra de tempo 2, então a mensagem será exibida. Se a barra de tempo atual do período 1 não for maior ou menor do que o período 2 anterior, então nada será exibido. Pelo código que você postou, parecia que essa era sua intenção (em meus testes funcionou bem).

___________________

PS: não mostrará texto sobre dados históricos (dados anteriores). Se você quiser que ele apareça em dados históricos, então tudo precisa ser escrito de forma completamente diferente como um indicador clássico

 

EA para a colocação de stoploss de automóveis e obter lucro dependem da linha Fibo

Hi

Eu quero criar uma EA que possa colocar um stop loss e ter lucro a cada pedido!

A EA deve ver o preço de venda ou de compra e, por exemplo, o preço de compra:

se o preço de abertura do pedido entre a linha 38,2 e 50 a EA coloca automaticamente o stop loss em uma linha antes do fibo=23,6 e coloca lucro em uma linha depois do fibo=61,8

com este procedimento a EA faz para posição de venda, por exemplo, se a posição é Sell stop@ X price e 38,2 fibo<x<50 fibo! A EA automaticamente coloca lucro em 23,6 fibo e pára de perder em 61,8 fibo!!

qualquer um pode me ajudar com o código desta EA ou me dizer um código similar desta EA!!

**** nota:

a linha fibo é automaticamente calculada por Low And High do último dia!!!!

Tnx

 
mladen:
Você está comparando dois períodos de tempo diferentes

Se a barra de tempo 1 for maior ou menor do que a barra de tempo 2, então a mensagem será exibida. Se a barra de tempo atual do período 1 não for maior ou menor do que o período 2 anterior, então nada será exibido. Pelo código que você postou, parecia que essa era sua intenção (em meus testes funcionou bem).

___________________

PS: não mostrará texto sobre dados históricos (dados anteriores). Se você quiser que ele apareça em dados históricos, então tudo precisa ser escrito de forma completamente diferente como um indicador clássico

obrigado por você mladen ... se você tiver tempo por favor faça-o para mostrar dados históricos ....

PS : este indi pode me ajudar a mostrar Tendência para cima ou Tendência para baixo

 
rizkyd:
obrigado por você mladen ... se você tiver tempo por favor faça-o para mostrar dados históricos ....PS : este indi pode me ajudar a me mostrar Tendência para cima ou Tendência para baixo

rizkyd

Você tentou usar o canal donchian com múltiplos horários para isso (por exemplo, para definir o horário do canal donchian para diário e período para 1 e você obteria quase exatamente a mesma coisa que você está procurando)

 

Recém-chegado quer conselho/ajuda

Olá,

Sou novo em forex e, no momento, estou interessado em indicadores e EAs. Tenho algum entendimento sobre o código mq4, mas isso ainda não é suficiente para conseguir o que quero. Portanto, gostaria de pedir conselho/ajuda a especialistas ou pessoas que conhecem o suficiente sobre a codificação mq4.

Minha tarefa atual é adicionar um indicador personalizado à EA e, a propósito, tenho um bom modelo de EA (pense) que vou compartilhá-lo com você.

Ok então, meus sinais finais de compra/venda do indicador são estes: g_ibuf_BUY[1] e g_ibuf_SELL[1].

aqui parte do código quando o indicador toca som, aparece, enviando e-mail.

void Alert_PlaySound_SendMail() {

string ls_ms = "MS PRO";

if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessBuySound(Buy_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessSellSound(Sell_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

}

O próximo passo seria adicionar estes sinais ao modelo EA? Mhm como... eu tenho que usar a função iCustom ou algo mais necessário adicionar ao indicador antes de poder usá-lo? Qualquer ajuda será apreciada. Obrigado.

Arquivos anexados:
 
otnepx:
Olá,

Sou novo em forex e, no momento, estou interessado em indicadores e EAs. Tenho algum entendimento sobre o código mq4, mas isso ainda não é suficiente para conseguir o que quero. Portanto, gostaria de pedir conselho/ajuda a especialistas ou pessoas que conhecem o suficiente sobre a codificação mq4.

Minha tarefa atual é adicionar um indicador personalizado à EA e, a propósito, tenho um bom modelo EA (pense) que vou compartilhá-lo com você Ok, então, meus sinais finais de compra/venda do indicador são estes: g_ibuf_BUY[1] e g_ibuf_SELL[1].

aqui parte do código quando o indicador toca som, aparece, enviando e-mail.

void Alert_PlaySound_SendMail() {

string ls_ms = "MS PRO";

if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessBuySound(Buy_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessSellSound(Sell_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

}
O próximo passo seria adicionar estes sinais ao modelo EA? Mhm como... eu tenho que usar a função iCustom ou algo mais necessário adicionar ao indicador antes de poder usá-lo? Qualquer ajuda será apreciada. Obrigado.

Você não pode importar alertas para outra paz de código (indicador, EA).

A maneira mais limpa de fazer o que você quer é usando iCustom()

 

Prezado Mladen/MrTools,

Solicite a gentileza de fazer um Indicador baseado na lógica abaixo para um gráfico de 1 minuto ... Também deve alertar com setas de compra/venda no gráfico ...

lógica de entrada de compra :

EMA(90) de 1 minuto atravessando EMA(390) de 1 minuto ( o ema 90 do minuto anterior é menor que ema 390) e o ema(90) também deve ser maior que ema(150)

lógica de saída de compra :

um minuto EMA(90) > EMA(390) e o ema(90) < ema(150).

lógica de entrada para venda :

um minuto EMA(90) cortando um minuto EMA(390) ( o ema(90) do minuto anterior é maior que ema 390) e o ema(90) também deve ser menor que ema(150)

lógica de saída de venda :

um minuto EMA(90) ema(150).

*******************************************************

O código do ninho para a mesma lógica também é compartilhado abaixo:

comprar expressão de alerta

EMA(FECHADO,90) > EMA(FECHADO,390) e REF(EMA(FECHADO,90),1) EMA(FECHADO,150)

comprar expressão de saída

EMA(FECHADO,90) > EMA(FECHADO,390) e EMA(FECHADO,90) < EMA(FECHADO,150)

vender expressão de alerta

EMA(FECHADO,90) REF(EMA(FECHADO,390),1) e EMA(FECHADO,90) < EMA(FECHADO,150)

expressão de saída de venda

EMA(FECHAR,90) EMA(FECHAR,150)

Obrigado

Muito obrigado

Razão: