[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 38

 
keep87:

É um pouco mais simples, vamos trabalhar dentro da função inicial.

Primeiro, vamos criar uma variável na qual escreveremos a direção da última vela.

int Candle=-1;

Vamos preenchê-la com alguns valores, um dos quais indicará uma vela em alta, o outro indicará uma vela em baixa. se -1, então não é nada (ou não foi possível determinar a direção, ou não tem direção próxima=aberta).

Valor que proponho utilizar por analogia com uma ordem comercial 0 - comprar, 1 - vender;

mais adiante escrevemos:

if(Close[1]>Open[1]) Candle=0; else
if(Close[1]<Open[1] Candle=1;

agora temos uma direção definida e podemos usá-la diretamente na função OrderSend( símbolo de corda, int cmd, ...o resto da porcaria...);

if(Candle!=-1) OrderSend( Symbol(),Candle, ...outras coisas...);

Ou seguindo sua analogia:

if(Candle==0) OpenBuy();
if(Candle===1) OpenSell();

Sim, na verdade, é a mesma função que eu escrevi aqui, compare-a com o que ela retorna. Não quero escrever todos os códigos no início, estou aprendendo a colocar tudo separadamente. E eu entendo a lógica, obrigado.
 
hoz:

É assim que eu o uso de tempos em tempos. Veja, agora as funções se parecem com isto:

Estou lendo no diário de bordo:

Assim, inicialmente do preço de compra até a parada havia uma diferença de 1.3204 - 1.3194 = 0.001 pontos.

Mais 1.3210 - 1.3201 = 0.009 pontos

E por alguma razão, no segundo caso, a parada estava mais próxima do preço de entrada, mas não houve erro! Eu estava pensando e não o entendi.

Corrigi o erro posteriormente de uma maneira diferente. Já existem condições no código:

if(price > Ask) && if(price < Bid) respectivamente para compra e venda. Ou havia outra variante? Agora não temos mais erros. Mas, mesmo assim, gostaria de ouvir a opinião de um programador mais experiente.


Foi sobre isso que eu escrevi:

O segundo erro é que você não verifica onde você coloca o pedido.

 
r772ra:

Ou talvez assim :

if(NumberOfPositions("EURUSD")==0 && NumberOfPositions()<10)
E aqui está a função


Isso está mais próximo da verdade. Muito obrigado, vou tentar.
 

avise se você pode acoplar variáveis em mql4, ou seja, duas variáveis int e elas precisam ser acopladas, uma variável tem o número 59 e a outra 17, eu preciso obter 5917 ?

 
pasha5282:

aconselhar se é possível acoplar variáveis em mql4, ou seja, duas variáveis int e elas precisam ser acopladas, uma variável tem o número 59 e a outra 17, eu preciso obter 5917 ?


HMM. Eu não entendi o que você quis dizer antes de ler tudo :) Que tipo de dados você quer na saída?

Acontece que a maneira como vejo a solução para esta situação é esta:

1. Converter int 59 e 17 em tipo string

2. Em seguida, concatenamos os dados dessas cordas.

3. Nós os convertemos de volta ao tipo int

Talvez haja outras variantes, mas não posso pensar o contrário no momento.

 
pasha5282:

avise se você pode acoplar variáveis em mql4, ou seja, duas variáveis int e elas precisam ser acopladas, uma variável tem o número 59 e a outra 17, eu preciso obter 5917 ?

5917= (StrToInteger(59.123,0) + DoubleToStr(17.456,0))
xxx
 
em php você pode acoplar variáveis, ou seja, $ um = 59; $dois = 17; $decisão = $um.$dois; assim não adicionamos dois números, nós os "colamos" juntos para obter 5917
 
pasha5282:
em php você pode acoplar variáveis, ou seja, $ um = 59; $dois = 17; $decisão = $um.$dois; assim, não juntamos dois números, "colamos" eles juntos e conseguimos 5917

mql4 não é uma linguagem muito poderosa, então tenho que me contentar com o que tenho...
 
hoz:

mql4 não é uma linguagem muito poderosa, por isso tenho que me contentar com o que tenho...

Eu terei que lidar com isso. Acho que posso ter esquecido coisas tão elementares, mas quando fui à ajuda, não as encontrei, talvez os desenvolvedores não tenham previsto tal opção, ou tenho que procurá-la, de qualquer forma, obrigado pelas respostas.
 
pasha5282:

Vou chegar ao fundo da questão. Obrigado por pelo menos uma resposta, eu pensei que era burro e não me lembrava de coisas tão elementares, e quando fui à ajuda que não encontrei, aparentemente os desenvolvedores não me deram tal opção. ou precisavam procurar mais, em qualquer caso, obrigado pelas respostas.

Para ser honesto, eu nem sei por que isso pode ser necessário. Aparentemente, os desenvolvedores também não pensaram sobre isso.
Razão: