[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 104

 
Podemos criar uma EA que feche todas as ordens quando o take-profit da última ordem aberta disparar?
 

Caros programadores!

Ajude, por favor. O indicador desenha valores sobre uma divergência latente em alta, e não desenha uma latente.... em baixa. Ele escreve, esse erro 4002 - índice de matriz - fora da faixa.

Parece que já consertei tudo... Levei uma noite inteira... E é uma vergonha - o código é o mais simples... Mas é desenhar touros com flechas, mas não ursos. POR FAVOR! Qual é o erro em 14?????????????????????

//+------------------------------------------------------------------+
//| div zz 5.mq4 |
//+------------------------------------------------------------------+

#janela_do_cartão_indicador de propriedade
#property indicator_buffers 4
#indicador de propriedade_color1 CLR_NONE
#indicador de propriedade_color2 CLR_NONE
#indicador de propriedade_color3 BlueViolet
#indicador de propriedade_cores4 Vermelho
#define flewsDisplacement 0.0001
duplo cci[];
duplo cci1[];
dupla bullishDivergence[];
dupla bullishDivergence[];

//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
//---- indicadores

SetIndexStyle(0, DRAW_NONE);
SetIndexStyle(1, DRAW_NONE);
SetIndexStyle(2, DRAW_ARROW);
SetIndexStyle(3, DRAW_ARROW);

SetIndexBuffer(0, cci);
SetIndexBuffer(1, cci1);
SetIndexBuffer(2, bullishDivergence);
SetIndexBuffer(3, bullishDivergence);

SetIndexArrow(2, 233);
SetIndexArrow(3, 234);

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 counted_bars=IndicatorCounted();
//---- última barra contada será recontada
if(counted_bars>0) counted_bars--;
//int limit=Bars-counted_bars;
duplo vpadcci[];
duplo v[];
duplo hh[];
ss duplo[];



para (int i=500; i>=0; i--)
{
cci[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i);
se (
(cci[i]<cci[i-1])&&
(cci[i]<cci[i-2])&&
(cci[i]<cci[i+1])&&
(cci[i]<cci[i+2])
)
{
vpadcci[i]=cci[i];
ss[i]=Low[i];
}
}



for(int j=500; j>0; j--)
{
cci[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j);
se (
((cci[j+1]>vpadcci[10])&&
(cci[j]<vpadcci[10])&&
(baixa[j]>ss[10])) |||||
((cci[j+1]>vpadcci[9])&&
(cci[j]<vpadcci[9])&&
(baixo[j]>ss[9])) |||||
((cci[j+1]>vpadcci[8])&&
(cci[j]<vpadcci[8])&&
(baixo[j]>ss[8])) |||||
((cci[j+1]>vpadcci[7])&&
(cci[j]<vpadcci[7])&&
(baixa[j]>ss[7])) |||||
((cci[j+1]>vpadcci[6])&&
(cci[j]<vpadcci[6])&&
(baixa[j]>ss[6])) |||||
((cci[j+1]>vpadcci[5])&&
(cci[j]<vpadcci[5])&&
(baixo[j]>ss[5])) |||||
((cci[j+1]>vpadcci[4])&&
(cci[j]<vpadcci[4])&&
(baixo[j]>ss[4])) |||||
((cci[j+1]>vpadcci[3])&&
(cci[j]<vpadcci[3])&&
(baixa[j]>ss[3])) |||||
((cci[j+1]>vpadcci[2])&&
(cci[j]<vpadcci[2])&&
(baixa[j]>ss[2])) |||||
((cci[j+1]>vpadcci[1])&&
(cci[j]<vpadcci[1])&&
(baixa[j]>ss[1])) |||||
((cci[j+1]>vpadcci[0])&&
(cci[j]<vpadcci[0])&&
(baixo[j]>ss[0])
)

{ bullishDivergence[j] = Low[j] - setasDisplacement;
}
}


para (i=1; i<500; i++)
{
cci1[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i);
se
(
(cci1[i]>cci1[i-1])&&
(cci1[i]>cci1[i-2])&&
(cci1[i]>cci1[i+1])&&
(cci1[i]>cci1[i+2])
)
{
v[i]=cci1[i];
hh[i]=Alto[i];
}
}



for(j=1; j<500; j++)
{
cci1[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j);
se (
((cci1[j+1]<v[10])&&
(cci1[j]>v[10])&&
(high[j]<hh[10])) |||||
((cci1[j+1]<v[9])&&
(cci1[j]>v[9])&&
(high[j]<hh[9])) |||||
((cci1[j+1]<v[8])&&
(cci1[j]>v[8])&&
(high[j]<hh[8])) |||||
((cci1[j+1]<v[7])&&
(cci1[j]>v[7])&&
(high[j]<hh[7])) |||||
((cci1[j+1]<v[6])&&
(cci1[j]>v[6])&&
(high[j]<hh[6])) |||||
((cci1[j+1]<v[5])&&
(cci1[j]>v[5])&&
(alto[j]<hh[5])
)

{ { cci1[j]= Alto[j] + setasDisplacement;

}
}


retorno(0);
}



Arquivos anexados:
divfzzg5.mq4  5 kb
 
Transferido de um fio separado. É recomendável fazer perguntas simples aqui. O código deve ser afixado através do botão SRC, pois é muito mais fácil de ler.
<br / translate="no">.
KoDim 14.02.2011 09:29
Olá.

Ao programar o Expert Advisor, fiquei perplexo com o parâmetro ma_shift- deslocamento da linha do meio em barras. Se o turno for positivo, a linha se desloca para a direita. E vice-versa, se o turno for negativo, a linha é deslocada para a esquerda.
Se for utilizado um valor positivo, uma ordem é aberta no cruzamento de médias.
Entretanto, se definirmos o parâmetro como negativo, a ordem não é aberta.
O que isso tem a ver com o assunto?

Aqui está um extrato do código

SMFast0=iMA( NULL, Tmfrm_work, PeriodSMFast, -3, ModeSMFast, PriceSMFast, 0 ); // МА быстрая на текущем баре
SMFast1=iMA( NULL, Tmfrm_work, PeriodSMFast, -3, ModeSMFast, PriceSMFast, 1 ); // МА быстрая на первом баре

SMSlow0=iMA( NULL, Tmfrm_work, PeriodSMSlow, 0, ModeSMSlow, PriceSMSlow, 0 ); // МА медленная на текущем баре
SMSlow1=iMA( NULL, Tmfrm_work, PeriodSMSlow, 0, ModeSMSlow, PriceSMSlow, 1 ); // МА медленная на первом баре

if(SMFast0>SMSlow0 && SMFast1<SMSlow1)

{
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}

if(SMFast0<SMSlow0 && SMFast1>SMSlow1)
{
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
} 
 

Olá, já faz um tempo que venho tentando aprender a escrever EAs, então aqui vai uma pergunta. Como posso prescrever a EA para parar a perda depois que eu parar a compra ou parar a perda? Isto é, após a parada de compra e parada de 5 pontos (grosso modo), a EA imediatamente se colocou um ponto final na perda.

 
Poseidon:
É possível criar uma EA que feche todos os pedidos quando o último pedido aberto for acionado?

Você pode.

Pupersa ,encontre esta ordem e altere o parâmetro "stop loss".

KoDim, talvez porque os valores são deslocados para a esquerda, nas barras à direita (cruzamento em que você pode verificar) eles não existem de forma alguma?

 

pergunta aos programadores: como fazer do número após o ponto decimal um número inteiro?)

por exemplo, número 1.128 precisa 128, número 1.12 precisa 12, número 1.2 precisa 2)

O número é uma variável externa.

 
Pergunta sobre o MT5. Como posso saber se o testador completou seu trabalho? Exceto visualmente :)
 
eddy:

pergunta aos programadores: como fazer do número após o ponto decimal um número inteiro?)

por exemplo, número 1.128 precisa 128, número 1.12 precisa 12, número 1.2 precisa 2)

O número é uma variável externa.


ver aqui: https://docs.mql4.com/ru/basis/operations/math
 
nemo811:


Se o dinheiro e os volumes (e não as ondas Elliott) estão funcionando no mercado, e o movimento de preços não é caótico, mas impulsionado pelos volumes, então dois sinais em dois pares (dos três considerados) darão um sinal mais forte no terceiro par. Procure níveis de acumulação de pedidos, analise o VSA e você encontrará os X e Y necessários))))

Além disso (ver figura) um flat claro de um par de moedas (formado por 2 moedas) não impede que um terceiro par de moedas (os 2 pares restantes) tenha tendências. Se uma tendência de mais de uma moeda está ocorrendo, isto cria uma espécie de "caos de mercado". Como as tendências intradiárias são menos estáveis que as tendências de médio e longo prazo, este caos é mais pronunciado nas pequenas TF.

Estudando o mercado sob esta luz, eu tendo a pensar que a tendência das próprias moedas (e não dos pares de moedas) é mais estável, caso contrário, obteríamos um gráfico oscilante que não pode ser analisado de forma alguma.

Isso é o que esta foto me diz. ))))

Oteste do índice do dólar em M1 e M5 produziu resultados piores do que GBP/USD. Os grandes TFs não podem ser testados devido a um arquivo histórico muito pequeno. O Fibogroup não fornece muito disso para a Nedex, e muitas corretoras não fornecem nenhum. Por isso é problemático estudar as tendências monetárias e trabalhar com lotes pequenos (0,01) .....
 
eddy:

pergunta aos programadores: como fazer do número após o ponto decimal um número inteiro?)

por exemplo, número 1.128 precisa 128, número 1.12 precisa 12, número 1.2 precisa 2)

O número é uma variável externa.

double a = 1.123345;
int b = a;
Isto também é possível.