Como codificar? - página 77

 

A Ichimoku Kinko Hyo Cross só abre a Buy's!

Olá a todos,

Programaram durante as últimas semanas e vêm se saindo razoavelmente bem. Mas cheguei a um ponto em que meu último sistema bastante simples que estou tentando codificar não vai funcionar para mim. Eu o reescrevi cerca de cinco vezes, usando códigos diferentes, tentei construtores Expert Advisor e alterei outras estratégias cruzadas e.t.c., mas o sistema só abrirá a Buy Trades. (Entre outros problemas que eu tenho) qualquer ajuda seria muito apreciada, pois parece que poderia ser um sistema lucrativo. (Ok, todos parecem pensar isso ao programá-los, mas os testes manuais barra por barra mostram um resultado positivo).

O SISTEMA: Configuração do gráfico

O indicador Ichimoku Kinko Hyo com 9,26,52 configurações padrão. Mostrar apenas as linhas Tenkan-Sen e Kijun-Sen, ocultar as linhas Senkou e Chikou.

PRIMEIRA ENTRADA (explicado para longo/compra - o mesmo se aplica para venda na direção op.)

Tenkan-Sen cruza Kijun-Sen e o preço está acima de KIJUN-Sen. Pare de perder a quantidade dos pares espalhados abaixo de Tenkan-Sen. Trilha com parada em Kijun-Sen - spread pips a menos que ocorra o sinal inverso (onde você fecha).

RE-ENTRY (às vezes alguns negócios são interrompidos antes de pegar a "grande viagem".

Se o stop loss for atingido, antes de cruzar Tenkan-Sen e Kijun-Sen uma posição pode ser reaberta se o preço fechar acima do TENKAN-Sen e o Tenkan-Sen ainda estiver acima do Kijun-Sen. Stop loss como antes.

SÍNTESE

Entre longo quando o Tenkan-Sen cruzar acima de Kijun-Sen. Stop loss se espalha uma distância abaixo de Kijun-Sen. Se parar antes de cruzar e reverter, pode reentrar numa posição longa se o preço subir acima de Tenkan-Sen. No Take Profit, basta seguir o stop loss no Kijun-Sen.

Este sistema tende a gostar de tendências, mas as perdas não devem ser muito grandes nos mercados de gama limitada. Eu planejo negociar com TF's diários, mas possíveis outros quando eu tiver o Expert funcionando. De fato, em alguns mercados que testei, o EA é lucrativo no momento, antes mesmo de funcionar corretamente!

MQ4 anexado se alguém puder decifrar onde eu estou errando!

Obrigado,

Howard

P.S. Seria ótimo receber alguma ajuda sobre isso como seu aniversário amanhã e seria muito bom receber alguma ajuda!

Também peço desculpas a todos os praticantes de Ichimoku que acham que não deveria ser automatizado, já que se trata de comercializar o mercado "num piscar de olhos". No entanto, sinto que o indicador é tão maravilhoso, especialmente o Kijun-Sen, que negocia fora dos retracements em muitas tendências longas que é perfeito para automação!

Arquivos anexados:
ikh_pro.mq4  5 kb
 
gmax111:
estou escrevendo um EA que compra e vende as cruzes do EMA. Quero filtrá-la verificando se as últimas 10 barras fechadas estavam acima do EMA antes de comprar...alguém pode me ajudar????

bool OkToBuy()

{

for(int j = 1, j < 11, j ++) if(Close[j] < EMA) return(false);

return(true);

}

 
Michel:

bool OkToBuy()

{

for(int j = 1, j < 11, j ++) if(Close[j] < EMA) return(false);

return(true);

}

Muito obrigado por este Michel...

Esta foi uma daquelas coisas que me deixou perplexo, mas agora me sinto como um tolo por pensar demais... haha... MUITO OBRIGADO NOVAMENTE!!!

 

Como codificar!!

Acho que este Ea é muito bom...

Mas apenas abra uma ordem em um só par...por quê?

 

Para a adria

adria

Eu me interessei pelo seu problema e brinquei com ele.

Parece que você precisa fazer algo assim:

Primeiro, declarar Var1, Var2 globalmente.

Depois, tente isto:

se (Hora() == 12) Var1 = iHigh(NULL,0,1);

if (Hora() == 12) Var2 = iLow(NULL,0,1);

O Metaeditor Navigator dá uma explicação de Hora().

Pesquise TSD por "horas de negociação" para mais exemplos.

Se seu EA mostrar promessa, você poderia me dar uma cópia?

Grande Seja

 

Para o Big Be

Eu criei a EA similar. Você tem que mudar o valor do TEMPO de acordo com seu

tempo do gráfico.

Arquivos anexados:
 

precisam de ajuda com esta função fechar negócios

Noto que o corretor, às vezes, exige o preço, fazendo com que a EA não feche.

o pedido. Como posso impedir que a EA continue até que todas as ordens sejam atendidas?

a seu número mágico é fechado, talvez colocar uma função de sono por 5 segundos e

um loop de tempo para verificar e fechar as ordens antes de continuar. Abaixo está o

função closealltrades. Aprecie a ajuda e agradeça antecipadamente.

nulo CloseAllTrades()

{

int rc;

int cnt;

for(cnt=OrdensTotal()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

se (OrderMagicNumber()==GetMagicNumber())

{

rc= OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

if(!rc)

Log("Close error="+GetLastError());

}

}

}

 
hedge4x:
Noto que o corretor, às vezes, exige o preço, fazendo com que a EA não feche.

o pedido. Como posso impedir que a EA continue até que todas as ordens sejam atendidas?

a seu número mágico é fechado, talvez colocar uma função de sono por 5 segundos e

um loop de tempo para verificar e fechar as ordens antes de continuar. Abaixo está o

função closealltrades. Aprecie a ajuda e agradeça antecipadamente.

nulo CloseAllTrades()

{

int rc;

int cnt;

for(cnt=OrdensTotal()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

se (OrderMagicNumber()==GetMagicNumber())

{

rc= OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

if(!rc)

Log("Close error="+GetLastError());

}

}

}

bool IsAllClosed ; //Global variable

void CloseAllTrades()

{

int cnt;

IsAllClosed = true;

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

IsAllClosed = IsAllClosed && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

}

}

void start()

{

while(!IsAllClosed) {CloseAllTrades(); return;}

...

 

obrigado

obrigado Michel por sua ajuda.

Vou experimentá-lo.

 

Esta linha while(!IsAllClosed) {CloseAllTrades(); return;}

no início principal fechará todas as posições abertas se a MT descer

e eu o inicio novamente. Existe uma maneira de colocar esta linha

na função de fechamento de negócios para não fechar todas as posições abertas

após o reinício do MT4?

obrigado.