Como codificar? - página 198

 
arshadFX:
1, adicionar a bandeira bool após critérios comerciais acionados

2, verifique a bandeira bool antes de fazer o pedido

3, após a colocação da bandeira de bool deve ser reposta

4, reinicialize a bandeira no init() também

Obrigado, cara

 

Guia MQL necessário =^_^=

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 2

#Indicador de propriedade_color1 Branco

#indicador de propriedade_color2 Branco

Fast.MA.Período = 5;

Int.Ext. Lento.MA.Período = 34;

Int.Externo Sinal.período = 5;

//---- buffers

duplo tampão1[],

Buffer2[],

b2[],

b3[];

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

//| Função de inicialização do indicador personalizado |

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

int init()

{

//---- indicadores

// dois amortecedores adicionais utilizados para a contagem

IndicatorBuffers(4);

IndicatorShortName("MA3_54");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); // down 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //UP 225 233 241

SetIndexBuffer(1,b3);

// Estes amortecedores não são traçados, apenas usados para determinar setas

SetIndexBuffer (2,Buffer1);

SetIndexBuffer (3,Buffer2);

//----

retorno(0);

}

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

//| Função de desinicialização do indicador do cliente |

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

int deinit()

{

//----

retorno(0);

}

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

//| Função de iteração de indicador personalizada |

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

int start()

{

int i, counted_bars=IndicatorCounted();

duplo MA5,MA34;

int limit=Barras_contadas_combars;

Imprimir(" limite de impressão = ", limite);

if(counted_bars>0) limit++;

// Linha principal

para(i=0; i<limite; i++)

{

MA5=iMA(NULL,0,Fast.MA.Período,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Período,0,MODE_SMA,PRICE_MEDIAN,i);

Buffer1=MA5-MA34;

}

// Linha de sinal

para(i=0; i<limite; i++)

{

Buffer2=iMAOnArray(Buffer1,Barras,Sinal.período,0,MODE_LWMA,i);

}

// Setas

para(i=0; i<limite; i++)

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = Alto+10*Ponto;

if(Buffer1 Buffer2)

b3 = Ponto baixo-10*;

}

//----

retorno(0);

}

Você pode me ensinar como criar EA com base nesta indis ? quando a seta aparece na tela e essa é a hora em que a EA auto entra na posição, pode ser feito ? por favor, me guie, pois estou interessado em aprender =^_^=

 

Boa referência

liew_stanley:
#janela_do_cartão_indicador de propriedade

#property indicator_buffers 2

............ guia-me como eu estou interessado em aprender =^_^=

Veja este guia Tutorial do material MQL4 realmente bom

 

O indis se parece com isto

Aqui está o sinal de seta acima mencionado, preciso de alguém que me guie na codificação da EA

Obrigado a qualquer um por aí =^_^=

Arquivos anexados:
untitled.jpg  80 kb
 

Alguém pode me ajudar a codificar isto em uma simples EA?

Olá pessoal, alguém pode me ajudar a codificar esta indis em EA ? Somente um simples EA que entra em posição quando as setas aparecem na tela, muito apreciado se pudesse me ajudar em um simples EA. =^_^= obrigado

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 2

#Indicador de propriedade_color1 Branco

#indicador de propriedade_color2 Branco

Fast.MA.Período = 5;

Int.Ext. Lento.MA.Período = 34;

Int.Externo Sinal.período = 5;

//---- buffers

duplo tampão1[],

Buffer2[],

b2[],

b3[];

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

//| Função de inicialização do indicador personalizado |

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

int init()

{

//---- indicadores

// dois amortecedores adicionais utilizados para a contagem

IndicatorBuffers(4);

IndicatorShortName("Elliott Wave Oscillator");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); // down 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //UP 225 233 241

SetIndexBuffer(1,b3);

//

SetIndexBuffer (2,Buffer1);

SetIndexBuffer (3,Buffer2);

//----

retorno(0);

}

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

//| Função de desinicialização do indicador do cliente |

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

int deinit()

{

//

//----

retorno(0);

}

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

//| Função de iteração de indicador personalizada |

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

int start()

{

int i, counted_bars=IndicatorCounted();

duplo MA5,MA34;

int limit=Barras_contadas_combars;

Imprimir(" limite de impressão = ", limite);

if(counted_bars>0) limit++;

// Linha principal

para(i=0; i<limite; i++)

{

MA5=iMA(NULL,0,Fast.MA.Período,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Período,0,MODE_SMA,PRICE_MEDIAN,i);

Buffer1=MA5-MA34;

}

// Linha de sinal

para(i=0; i<limite; i++)

{

Buffer2=iMAOnArray(Buffer1,Barras,Sinal.período,0,MODE_LWMA,i);

}

// Setas

para(i=0; i<limite; i++)

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = Alto+10*Ponto;

if(Buffer1 Buffer2)

b3 = Ponto baixo-10*;

}

//----

retorno(0);

}

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

 

Código de várias ordens?

Alguém tem um bom código para negociar várias ordens quando se depara com a barreira de maxlot?

O IE Broker só permite lotes de 5, e você quer negociar 10, então a função irá negociar 2 x 5 lotes de ordens em vez disso.

Estou à procura de mais do que apenas um simples loop aqui. O problema é que um simples loop nem sempre será totalmente completo, e você pode ser deixado com apenas uma ordem parcial em aberto.

 

Como eliminar o erro OrderModify 1

Hi,

Eu não posso evitar o erro OrderModify 1 : sempre aparece mesmo tentando controlar que os dados antes de modificar são diferentes ! Tentei também duplicar a duplicação de dados...não estou trabalhando...

Este é o código:

if (Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)

{

se (OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VPoint)

{

Vresult = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green);

Alguma sugestão ?

Obrigado.

 
liew_stanley:
Olá pessoal, alguém pode me ajudar a codificar esta indis na EA? Somente uma simples EA que entra na posição //+------------+

Estes aviões mostram em 2 MovingAverage corssing i.e. 5-34, você pode encontrar muitos EAs "MA's Cross EA" de busca e esperançosamente você encontrará um

 

Como eu defino a Freqüência de Alerta?

Sou novo no mq4 e estou tentando criar uma exibição na tela quando há um crossover para MACD. Abaixo está meu código, mas os alertas continuam aparecendo a cada poucos minutos.

Como posso codificá-lo para exibir os alertas apenas uma vez a cada hora? Ou um alerta por barra?

int start()

{

Cordel MACD1="";

color colt9;

duplo MACDM_S10 = iCustom(NULL, PERÍODO_H1, "MACD", 8,17,9, MODE_MAIN, 0);

duplo MACDS_S10 = iCustom(NULL, PERÍODO_H1, "MACD", 8,17,9, MODE_SIGNAL,0);

duplo MACDM_S11 = iCustom(NULL, PERÍODO_H1, "MACD", 8,17,9, MODE_MAIN, 1);

duplo MACDS_S11 = iCustom(NULL, PERÍODO_H1, "MACD", 8,17,9, MODE_SIGNAL,1);

if ((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="IN UPTREND"; colt9=LimeGreen; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="IN DOWNTREND"; colt9=Red; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="NEW UP CROSSING"; colt9=LimeGreen; }

if ((MACDM_S11 MACDS_S10)) { MACD1="NEW DOWN CROSSING"; colt9=Red; }

MACD2="";

color colt14;

duplo MACDM_L10 = iCustom(NULL, PERÍODO_H1, "MACD", 12,26,9, MODE_MAIN, 0);

duplo MACDS_L10 = iCustom(NULL, PERÍODO_H1, "MACD", 12,26,9, MODE_SIGNAL,0);

duplo MACDM_L11 = iCustom(NULL, PERÍODO_H1, "MACD", 12,26,9, MODE_MAIN, 1);

duplo MACDS_L11 = iCustom(NULL, PERÍODO_H1, "MACD", 12,26,9, MODE_SIGNAL,1);

if ((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="IN UPTREND"; colt14=LimeGreen; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="IN DOWNTREND"; colt14=Red; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="NEW UP CROSSING"; colt14=LimeGreen; }

if ((MACDM_L11 MACDS_L10)) { MACD2="NEW DOWN CROSSING"; colt14=Red; }

if(MACD1=="NEW UP CROSSING"&&MACD2=="IN UPTREND")

Alert(Symbol()," - ", "H1:"," MACD MAIN UPTREND MOVEMENT"," em ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD1=="NEW DOWN CROSSING"&&MACD2=="IN DOWNTREND")

Alert(Symbol()," - ", "H1:"," MACD MAIN DOWNTREND MOVEMENT"," em ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NEW UP CROSSING"&&MACD1=="IN UPTREND")

Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO UPTREND"," em ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NEW DOWN CROSSING"&&MACD1=="IN DOWNTREND")

Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO DOWNTREND"," em ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

return(0);

}

 

em que pares?