[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 465
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
Ajude-me a entender o código. Eu não sei como descrever a condição corretamente.
Aqui está uma parte do EA.
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
Entendo que o fator psicológico me impede... a ganância... o medo de perder até 300 centavos... O que devo fazer?... Esqueça que a conta real...
E se eu mudar minha mentalidade? Não "apontar para ganhar", mas "não apontar para perder".
Ajude a entender!
A essência da idéia: enquanto o iMACD está aumentando - continuamos COMPRADO, assim que começa a diminuir - fechamos COMPRA e abrimos VENDA. A comparação é feita utilizando os três últimos valores, excluindo o atual.
O código tem um problema: ele abre várias ordens em valores iMACD +-0, como eu vejo. Normalizedouble() não ajuda.
Aqui está o código:
Ajude-me a entender o código. Eu não sei como descrever a condição corretamente.
Aqui está uma peça do Consultor Especialista.
total=OrdersTotal();
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
Não funciona assim?
não até se não funcionar.
Deve ser tão longo quanto a condição (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 está correta, para abrir apenas uma ordem de venda desde que iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
É o mesmo no sentido inverso.
Pode ser feito enquanto ou bool? Estou em uma crise total na programação. Entendo a cadeia lógica, mas minhas mãos são lentas para convertê-la em código.
não até se não funcionar.
Deve sertão longo quanto a condição (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 está correta, para abrir apenas uma ordem de venda desde que iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
É o mesmo no sentido inverso.
Pode ser escrito enquanto ou bool? Estou em uma crise total na programação. Entendo a cadeia lógica, mas minhas mãos são lentas para convertê-la em código.
Olá! não quero (e às vezes quero) ser pego pela StopOut. Decidi limitar o lote com um valor, que não pegaria o StopOut nas piores condições. Passando por tentativas e erros por muito tempo. Talvez alguém tenha uma solução?
Dados de entrada:
- par de moedas - não necessariamente EURUSD
- preço (preço de compra/venda)
- StopLoss especificado em pontos (assume-se que o pior cenário é não pegar um StopOut mesmo que o nível StopLoss seja alcançado)
- valor fixo do lote
- Todos os outros valores devem ser obtidos usando as funções MT4: tamanho 1 lote, alavancagem, taxa cruzada.
Um código seria desejável.
Em teoria eu entendo o que preciso: equilíbrio menos possível perda no nível StopLoss dividido pela margem. E este valor deve ser maior que o StopOut (em termos percentuais)
Ajude a entender!
A essência da idéia: enquanto o iMACD está aumentando - continuamos COMPRAR, assim que começa a diminuir - fechamos COMPRAR e abrimos VENDER. A comparação é feita utilizando os três últimos valores, excluindo o atual.
O código tem um problema: ele abre várias ordens em valores iMACD +-0, como eu vejo. Normalizedouble() não ajuda.
Aqui está o código:
Talvez esse tenha sido o problema
aberto até o dinheiro acabar? ou aberto uma vez por bar? ou uma vez por carrapato?
A condição é verificada a cada nova barra. Neste caso, o cronograma é de hora em hora. Esta condição é verificada no início de cada hora.
Talvez este tenha sido o problema
Não... Eu fiz como você sugeriu - a mesma coisa permanece.
Também mudei o código, dividindo separadamente os blocos de abertura e fechamento por condições. É tudo a mesma coisa. Eu não sei o que fazer agora.
Aqui está um screenshot do testador, Conselheiro Especialista para o testador em reboque: