Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 22
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
О! Obrigado (risos) Não me dei conta disso pela manhã... No entanto, ainda é preciso fazer uma verificação para as matrizes de enchimento. Na Quatermass não se reuniram, e em Five muitas vezes não foram preenchidos os dados na primeira vez devido à falta de dados históricos.
ZS. Você deve dormir mais - seus pensamentos vão trabalhar nessa direção.
Bem, você pode colocá-lo em um loop
ou mesmo
para copiar exatamente o valor solicitado.
ps; enquanto fui servir chá, tive outra idéia, usar CopyRates() e um conjunto de estruturas MqlRates[] mas sou preguiçoso demais para reescrever algo.
Bem, você também poderia colocá-lo em um loop
ou mesmo
para copiar exatamente o número de cópias solicitadas.
ps; enquanto bebia chá, tive outra idéia - usar CopyRates() e uma gama de estruturas MqlRates[] mas sou preguiçoso demais para reescrevê-lo.
Ajude-me a verificar outras condições de venda.
{
//+--------------------------------------------------------------------+
//| -= stop loss в без убыток =- |
//+--------------------------------------------------------------------+
bool result;
double stop;
int cmd,error;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderProfit()>pOPCS)
{
cmd=OrderType();
double blevel=OrderStopLoss()<Bid-Point*TS;
double slevel=OrderStopLoss()>Ask+Point*TS;
//---
if(cmd==OP_BUY || cmd==OP_SELL)
{
while(true)
{
if(cmd==OP_BUY && blevel) stop=Bid-Point*TS;
else stop=Ask+Point*TS;
result=OrderModify(OrderTicket(),OrderOpenPrice(),stop,0,0,Orange);
if(result!=TRUE) { error=GetLastError(); Print("LastError = ",error); }
else error=0;
if(error==135) RefreshRates();
else break;
}
}
}
}
Tem uma lógica estranha. Mas mesmo se você não olhar para a lógica estranha, então:
Aqui você tem duas condições para Comprar, e todo o resto para Vender.
else stop=Ask+Point*TS;
Sua lógica é estranha. Mas mesmo se você não olhar para a lógica estranha, então:
Aqui você tem duas condições verificadas para Comprar, e todo o resto para Vender
else stop=Ask+Point*TS;
Tentei anexarslevel=OrderStopLoss()>Ask+Point*TS for Sell;
Mas como eu não sou uma pista sobre programação, nada de útil saiu. Eu espreitei os fóruns durante uma semana.
Por que a lógica estranha?) O código não é inteiramente meu.
Eu tentei adicionarslevel=OrderStopLoss()>Ask+Point*TS;
Há uma semana que ando bisbilhotando nos fóruns. Todas as minhas tentativas acabaram com o Sell Stop movendo-se junto com o preço.
Por que a lógica estranha?) O código não é todo meu. Eu o retrabalhei o melhor que pude.
Por que você não escreve primeiro as condições sob as quais as paradas de Venda e Compra devem ser mudadas?
E então, depois de pensar sobre isso, escreva em seu código o que está escrito no deslize.
E antes de tudo, escreva em um pedaço de papel com um lápis as condições sob as quais você precisa mudar a parada Comprar e parar de Vender.
E então, depois de ter pensado nisso, escreva no código o que está escrito no pedaço de papel.
slevel=OrderStopLoss()>Ask+Point*TS; bem, parece ser o certo. Ou é errado? Eu sou novo nisso.
Você entende ao menos o que está escrito nesta condição? Esta é uma atribuição de zero ou um para uma variável do tipo duplo
O que você quer obter?
Você entende ao menos o que está escrito nesta condição? É uma atribuição de zero ou um para uma variável do tipo duplo
O que você quer alcançar?
Aqui está o que eu revejo.
Verificar condição - não para mover SL para frente e para trás, mas apenas em uma direção.
Por exemplo, para um pedido de COMPRA, sua fórmula
OrderStopLoss()<bid-point*TrailingStop
Usando este exemplo, eu o fiz para a Sel.
aqui está o que li.
Verificar condição - não para mover SL para frente e para trás, mas apenas em uma direção
Por exemplo, para um pedido de COMPRA, sua fórmula
OrderStopLoss()<bid-point*TrailingStop
Usando este exemplo, eu o colei para uma posição de Venda.
Portanto, você precisa assim:
em russo... se a ordem de parada for menor que o preço de Bid menos a distância de parada de rastreio, então ... sua ação
E você atribui à variável o resultado desta expressão lógica - ou seja, zero ou um.
Portanto, você precisa disto:
em russo... se a ordem de parada for menor que o preço de Bid menos a distância de parada de rastreio, então ... suas ações
E você atribui à variável o resultado desta expressão booleana - ou seja, zero ou um.
Estou completamente confuso.
double blevel=OrderStopLoss()<Bid-Point*TS; funciona para mim. SL vai atrás do preço somente em lucro.
double slevel=OrderStopLoss()>Ask+Point*TS; eu não sei como adicionar este a outro
eles não são um bool.