Como codificar? - página 225

 

novato...

antes de mais nada feliz ano novo para todos!

depois obrigado por todo o conhecimento que você está compartilhando neste fórum

Estou me aproximando do mql4, não sou um codificador.

Eu apreciaria um pouco de apoio para escrever esta estratégia muito simples:

entradas longas:

(ask-bid) <= Z_pips /* spread check */

e

(bollinger_up-bollinger_down) <= K_pips /* volatily check */

e

ask < (bollinger_down + X_pips) /* price check */

e

ma_Qperiods >= ma_Wperiods /* verificação de tendência */

saídas:

Trailing SL = 15 pips

Alguém tem tempo para me dar uma chance?

Obrigado de antemão

neeverr

 

preciso de ajuda com meu indicador nº 7

olá

eu sou o indicador de codificação para o nº 7.

o algo é

-calcular o alcance e armazená-lo em ordem

- se a faixa atual <= últimas 7 faixas, então a barra atual é a nr7

mas o indicador parece estar marcando cada barra como nr7. dunno onde eu cometi um erro.

A captura de tela está aqui

2010-01-18_0531

Arquivos anexados:
nr7.mq4  3 kb
 

advancedsar EA

Oi, amigos,

Preciso de toda sua ajuda, se algum de vocês puder me ajudar a modificar uma EA que recebi de outro tópico, mas infelizmente não tenho seu arquivo mql.

A partir da lógica original desta EA, quero fazer uma pequena modificação como abaixo:

- Esta EA trabalhando apenas em 4 dígitos, ajuda a melhorar eles podem trabalhar também em 5 dígitos.

- Esta EA funcionando de acordo com o sistema de martingale comum, preciso adicionar mais 2X modo de operação de methode,

1. Se a EA abrir ordem na última negociação, e eles atingirem TP, então a EA iniciará um novo ciclo e abrirá a negociação como a mesma ordem da última ordem. Exemplo: se a última negociação é ordem de compra, e eles atingem TP, então o EA continuará abrindo a negociação de compra a menos que eles atinjam SL e EA mudará a ordem para ordem de venda em direção oposta. a mesma coisa na ordem de venda, como se eles tivessem lucro na ordem de venda, então eles continuarão abrindo a ordem de venda com um novo ciclo até que eles tenham SL e direção mudada para ordem de compra.

2. Segundo modo de operação. A EA trabalhando em seqüência lógica buy-sell-buy-sell-buy, este modo é projetado para o mercado sem tendência.

será apreciada por toda a sua ajuda.

obrigado

yoha

Arquivos anexados:
 

Alguma idéia por que esta EA não faz pedidos?

Ei pessoal, já faz um tempo desde que estou de volta a este jogo .... de qualquer forma, apenas começando a me atualizar no mql....lot mudou aqui.

basicamente quero colocar pedidos pendentes de compra e venda a 10 pip de distância da abertura de um bar em ambos os lados. Takeprofit está a 15 pip de distância de pedidos pendentes.

o problema é que os pedidos nunca são feitos...

int counted_bars = IndicatorCounted();

int pos = Bars - counted_bars + 1;

if (counted_bars == 0) pos = Bars - 10;

if (counted_bars>0) counted_bars--;

double currentPrice = iClose("EURUSD",PERIOD_M1,0);

while(pos>0)

{

//Putting Pending LongOrder

Print("Long...");

OrderSend("EURUSD",OP_BUYLIMIT,1,Open+10*Point,3,0,Open+25*Point,"Pending Long Order", 888, 0, Green);

Print("Short...");

//Putting Pending ShortOrder

OrderSend("EURUSD",OP_SELLSTOP,1,Open-10*Point,3,0,Open-25*Point,"Pending Short Order", 999, 0, Red);

pos--;

}
 

Não tenho certeza do que as barras contadas têm a ver com um EA? Ele não foi projetado para uso em indicadores?

Acho que, se você retirou essa parte, você pode ficar bem.

 

variável de data e hora

Hi,

Quero escrever os dados reais e o tempo

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

Como posso escrever isto?

Mas como posso escrever isto?

hora de início = Data do dia + starthour + startminute;

 

Não sei bem o que você está perguntando, mas suponho que você está tentando incrementar uma data em algumas horas e minutos. Se você olhar para o arquivo de ajuda do TimeCurrent() verá que ele retorna o tempo como segundos. Então, logicamente, você pode deduzir que para adicionar minutos você multiplicaria por 60 e por horas seria por 3600 (60*60).

Assim, você teria algo como...

TimeCurrent()+(starthour*3600)+(startmin*60);

Basta substituir TimeCurrent() por qualquer tempo que você tenha designado como 'data de início'.

Lux

 
sunshineh:
Hi,

Quero escrever os dados reais e o tempo

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

Como posso escrever isto?

Mas como posso escrever isto?

hora de início = Data do dia + starthour + startminute;

Use a função StrToTime. Se você não passar o dia para esta função, mas apenas hora e minuto, ele usará o dia atual. Assim:

data/hora de inícioTime = StrToTime( StartHour+": "+ StartMinute);

Onde StartHour e StartMinute são cordas:

StrTime StartHour = 8;

String StartMinute = 0;

 

Muito obrigado!!

Tenho outra pergunta, também.

Como posso codificá-la, se eu quero que minha EA só compre ou venda ao preço fechado da vela?

Pensei que podia escrever

if(!Close[0]) return;

mas não funciona.

 
sunshineh:
Muito obrigado!!

Tenho outra pergunta, também.

Como posso codificá-la, se eu quero que minha EA só compre ou venda ao preço fechado da vela?

Pensei que podia escrever

if(!Close[0]) return;
mas não funciona.

Você precisa definir uma variável, digamos que será:

int barsNumber = 0;

na seção global (por exemplo, logo antes da função init)

e então na função iniciar, onde você tem sua parte com a função sendOrder, você precisa verificar esta condição

if(Bars>barsNumber)

e se for verdade, então defina nosso número variável de barrasNumber para Bars

barsNumber = Barras;

Assim, tudo ficaria assim:

#Algumas propriedades

int barsNumber = 0;

int init()

{

}

int deinint()

{

}

int start()

{

if(Bars>barsNumber)

{

SendOrder(...);

barsNumber = Barras;

}

}

Razão: