[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 404
A travessia é mais fácil e mais rápida para verificar de outra forma
A velocidade é maior. As expressões complexas lógicas levam mais tempo para serem executadas do que as simples. A multiplicação é mais rápida que lógica
Obrigado Vinin, e quanto ao número de ofícios, você pode escrevê-los para ser apenas 1.2...N, depois de cruzar o MA.
for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1) { Lots = m; }
Почему у меня Lots всегда оказывается равен нулю?
O laço é executado ou é imediatamente abandonado pela condição?
https://docs.mql4.com/ru/basis/operators/for
Expressão1 descreve a inicialização do laço. Expression2 é uma verificação para a condição de terminação do laço. Se for verdade, o corpo do loop para é executado. Isto se repete até que a expressão2 seja falsa. Se for falso, o loop é terminado e o controle é dado ao próximo operador. A expressão3 é calculada após cada iteração. para(expressão1; expressão2; expressão3) operador;
Boa noite. Eu tenho um problema com o terminal, não posso resolvê-lo de forma alguma:
Eu carrego o MT4, carrego um modelo, desenho linhas de tendência, e quando eu troco os TFs, as linhas desaparecem, inclusive não são exibidas no prazo original também. Ao mesmo tempo, todos os outros gráficos ( linhas horizontais, verticais, canais, todas as Fibos, etc.) funcionam bem. Em um gráfico limpo ("sem modelo"), o layout é preservado completamente, os mesmos induladores estavam funcionando bem antes. Os Consultores Especialistas e Consultores Especializados foram desativados. Eu trabalho principalmente na tabela, me ajude!!!
Você tem que começar com a lógica. O que você queria obter e como você queria obtê-lo.
Bem, a lógica está nos comentários...
Retirei os retornos e foi assim:
//попытка сделать функцию: отключение всех индикаторов и разрешение только Бай или Селл в зависимости от того, //что закуплено, когда баланс снижается на заданный процент//второй вариант:bool fOffInd(){int i, b, s;if( UT_AutoOf==1){//если баланс снизился на LossIndikator процентовif( gProfit<=((-1.0)* LossIndikator*AccountBalance())/100.0){Print("Включен автореверс UT_!");
UT_ON=0;//выключатель индикатора, 0-контроль отключен
VRF_ON=0;//выключатель индикатора, 0-контроль отключен//выбираем открытые ордера Бай for( i=1; i<=OrdersTotal(); i++){if(OrderSelect( i-1, SELECT_BY_POS)==true){if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()){ b= b+1;}}}//выбираем открытые ордера Селл for( i=1; i<=OrdersTotal(); i++){if(OrderSelect( i-1, SELECT_BY_POS)==true){if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()){ s= s+1;}}}//если открытых Бай больше чем Селл, то включаем запрет торговли Бай if( s>= b){ CloseAllBuyNow =true;
MaxCount = b;Print("Автореверс. Работаем только Селл!");}else{//если открытых Селл больше чем Селл, то включаем запрет торговли Селл if( b>= s){ CloseAllSellNow =true;
MaxCount = s;Print("Автореверс. Работаем только Бай!");}}return(false);}}else{//все индикаторы должны быть включены и запрет на Бай и Селл снят
UT_ON=1;
VRF_ON=1;
CloseAllBuyNow =false;
CloseAllSellNow =false;}return(0);}
Parece funcionar, mas não sei se o código está correto... Se algo está errado, alguém pode corrigi-lo?
A travessia é mais fácil e mais rápida para verificar de outra forma
A velocidade é maior. As expressões complexas lógicas levam mais tempo para serem executadas do que as simples. A multiplicação é mais rápida que lógicaObrigado Vinin, e quanto ao número de ofícios, você pode escrevê-los para ser apenas 1.2...N, depois de cruzar o MA.
Пересечение проще и быстрее проверять по другому
Скорость работы выше. Логические сложные выражение выполняются дольше простых. Умножение быстрее логическогоoutra opção, mas acho que o autor da pergunta ainda não a entenderá
Obrigado Vinin, e quanto ao número de ofícios, é possível escrevê-los apenas 1.2...N, após a passagem de MA.
Aparentemente, precisamos considerar condições adicionais para a entrada.
E conte o número de posições em aberto.
Mas terá pouca relação com o crossovers.
Porque talvez em um caso houvesse apenas um sinal, no segundo caso havia 10.
Mas primeiro devemos determinar as condições para uma entrada adicional.
Aparentemente, há condições de entrada adicionais a serem consideradas.
E conte o número de posições em aberto.
Mas tem pouca relação com o crossover.
Porque talvez em um caso houvesse apenas um sinal, no segundo caso - 10.
Mas primeiro devemos definir as condições para a entrada adicional
OK, vou tentar olhar mais a fundo, muito obrigado a Vilin e Sanyooooook pela ajuda.
double Lots;
double m = 0.1;
for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}
Por que meus Lotes sempre acabam sendo zero?
double Lots;
double m = 0.1;
for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}
Почему у меня Lots всегда оказывается равен нулю?
O laço é executado ou é imediatamente abandonado pela condição?
https://docs.mql4.com/ru/basis/operators/for
Expressão1 descreve a inicialização do laço. Expression2 é uma verificação para a condição de terminação do laço. Se for verdade, o corpo do loop para é executado. Isto se repete até que a expressão2 seja falsa. Se for falso, o loop é terminado e o controle é dado ao próximo operador. A expressão3 é calculada após cada iteração.
para(expressão1; expressão2; expressão3)
operador;
Boa noite. Eu tenho um problema com o terminal, não posso resolvê-lo de forma alguma:
Eu carrego o MT4, carrego um modelo, desenho linhas de tendência, e quando eu troco os TFs, as linhas desaparecem, inclusive não são exibidas no prazo original também. Ao mesmo tempo, todos os outros gráficos ( linhas horizontais, verticais, canais, todas as Fibos, etc.) funcionam bem. Em um gráfico limpo ("sem modelo"), o layout é preservado completamente, os mesmos induladores estavam funcionando bem antes. Os Consultores Especialistas e Consultores Especializados foram desativados. Eu trabalho principalmente na tabela, me ajude!!!
Olá,
Como faço para que minha EA não feche um negócio antes de 3 min?
Alguém pode aconselhar o que e onde prescrever?
Você tem que começar com a lógica. O que você queria obter e como você queria obtê-lo.
Bem, a lógica está nos comentários...
Retirei os retornos e foi assim:
Parece funcionar, mas não sei se o código está correto... Se algo está errado, alguém pode corrigi-lo?