Ajuda na codificação - página 241

 

Olá a todos,

Eu não quero que minha EA abra uma posição se já houver uma posição indo na mesma direção no mesmo nível de preço (usando renko). Essencialmente, seria algo parecido com isto:

Se a direção da barra anterior estiver acima, abra uma posição longa se não houver uma posição longa no mesmo nível de preço (+-2 pips, por exemplo). A mesma coisa para o curto.

Isto é possível?

 

Maldição, tão fácil

 

Maldição, tão fácil

Obrigado, Mladen.

 

Mladen, eu tenho um problema.

Encontrei seu indicador Zonas dinâmicas Spearman, encontrei também outros. Mas não posso fazer isso que eu quero. Quero em uma janela alguma correlação. Você me entendeu? Eu quero que o computador não pare, usando seu indicador. Mas isso pareceu como Spearman Stack.

mas para mim é impossível fazer isso. Eu sobreponho indicadores um no outro, mas vejo apenas um

Arquivos anexados:
eurjpymh1.png  72 kb
 
Air92:
Mladen, eu tenho um problema.

Encontrei seu indicador Zonas dinâmicas Spearman, encontrei também outros. Mas eu não posso fazer isso que eu quero. Quero em uma janela alguma correlação. Você me entendeu? Eu quero que o computador não pare, usando seu indicador. Mas isso pareceu como Spearman Stack.

mas para mim é impossível. Eu sobreponho indicadores um no outro, mas vejo apenas um

Eis como se parece o indicador deste post: https: //www.mql5.com/en/forum/general quando o aplico várias vezes na mesma subjanela

Arquivos anexados:
spearman.gif  49 kb
 

Вот как индикатор применяю с этого поста: https://www.mql5.com/en/forum/general выглядит, когда я применяю его несколько несколько раз в том же дополнительном окне [/ QUOTE]

Mladen,obrigado por nmc!

 
BlackCoq:
Olá a todos,

Eu não quero que minha EA abra uma posição se já houver uma posição indo na mesma direção no mesmo nível de preço (usando renko). Essencialmente, seria algo parecido com isto:

Se a direção da barra anterior estiver acima, abra uma posição longa se não houver uma posição longa no mesmo nível de preço (+-2 pips, por exemplo). A mesma coisa para o curto.

Isto é possível?

Talvez seja suficiente olhar para o preço aberto para as últimas 15 negociações, então verifique se alguma delas está dentro de +- 2 pips do preço atual, então verifique se essa negociação está na mesma direção que a nova negociação pretendida e, se não estiver, envie a ordem. Será que isto funcionaria?

Obrigado,

Axel

 
BlackCoq:
Talvez seja suficiente procurar o preço aberto para as últimas 15 negociações, então verifique se alguma delas está dentro de +- 2 pips do preço atual, então verifique se essa negociação está na mesma direção que a nova negociação pretendida e, se não estiver, envie a ordem. Será que isto funcionaria?

Obrigado,

Axel

Axel

Isso pode ser feito.

Simplesmente as ordens abertas devem ser escaneadas para o tipo desejado e seus preços abertos devem ser comparados com o novo preço aberto desejado ou as barras em que foram abertas podem ser comparadas com a barra que serve como critério de abertura.

 
mladen:
Axel

Isso pode ser feito.

Simplesmente as ordens abertas devem ser escaneadas para o tipo desejado e seus preços abertos devem ser comparados com o novo preço aberto desejado ou as barras em que foram abertas podem ser comparadas com a barra que serve como critério de abertura

Funcionaria escrever uma função como a abaixo de 20 vezes ou mais para diferentes "i=OrdensTotal()-1" e depois chamar todas as funções e compará-las com o novo preço de abertura?

Obrigado.

 

Alguém pode me dizer o que eu fiz de errado, o código abaixo é 2 EMA cruzado com alertas. Ele se recusa a trabalhar:

#propriedade copyright "wnk

#link da propriedade "www.wnk.com"

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 2

#indicador de propriedade_color1 Lime

#indicador de propriedade_color2 Vermelho

//--- amortecedores

duplo ExtMapBuffer1[];

duplo ExtMapBuffer2[];

//variável externa......

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

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

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

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,217);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexEmptyValue(0,0,0.0);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1.217);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexEmptyValue(1,0.0);

//----

retorno(0);

}

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

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

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

int deinit()

{

//----

//----

retorno(0);

}

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

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

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

int start()

{

data estática hora do LastAlertTime = TimeCurrent();

int counted_bars=IndicatorCounted(),

limite;

if(counted_bars<0)

retorno(-1);

if(counted_bars>0)

barrinhas_contadas..;

limite=barras_contadas_às_barras;

while(limite)

{

duplo ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);

duplo ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);

duplo b4ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,1);

double b4ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1); double b4ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);

double mom=iMomentum(NULL,0,14,PRICE_CLOSE,0);

double b4momomentum=iMomentum(NULL,0,14,PRICE_CLOSE,1);

//alertas

if((LastAlertTime!=Time[0])&&(ema5>ema13)&&(ema5>b4ema5)&&(ema13>b4ema13)&&(mom>b4mom)&&(mom>98.6591))

ExtMapBuffer1[limite]=Alto[limite]+5*Ponto;

LastAlertTime = Tempo[0];

Alerta(Símbolo()," ",Período(), "M Preço UP");

//alertas de venda

if((LastAlertTime!=Time[0])&&(ema5<ema13)&&(ema5<b4ema5)&&(ema13<b4ema13)&&(mom<b4mom)&&(mom<100.6872))

ExtMapBuffer2[limite]=Low[limite]-5*Point;

LastAlertTime = Tempo[0];

Alerta(Símbolo()," ",Período(), "M Preço Abaixo");

}

retorno(0);

}

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

Razão: