Boa tarde! Você sabe, basta cortar o código da seção init da EA, (eu estava depurando-o para o fim de semana - sem carrapatos!), movê-lo para começar. Removido o laço externo dos fóruns. Eu o compilei.
É codificado - "continuar" - "quebrar" ou "continuar" usado dentro de algum ciclo apenas C:\Alpari`sexperts\Outputs.mq4 (69, 20)
Do que se trata? Bem, em loop continuo, em loop, e daí? Eu não falo muito inglês. Se eu consigo entender algumas palavras, não consigo fazer sentido delas!
Boa tarde! Você sabe, basta cortar o código da seção init da EA, (eu estava depurando-o para o fim de semana - sem carrapatos!), movê-lo para começar. Removido o laço externo dos fóruns. Compilado.
Foi usado dentro de algum ciclo apenas com... "continuar" - "quebrar" ou "continuar" C:\Alpari`sexperts\Outputs.mq4 (69, 20)
O que é isso? Bem, no loop, no loop, e daí? Eu não sou muito bom em inglês. Se eu entendo algumas palavras, não consigo fazer sentido de todas elas!
Isto é, se o preço for para um prejuízo de uma ordem aberta pelo número de pips LevelProfit (você pode chamá-lo LevelLoss), você tem que mover TakeProfit para zero ou para um prejuízo de 1 pip 2, etc., dependendo do que você colocar no parâmetro LevelWLoss, de modo que se o preço se vira mesmo, não haveria mais lucro. Ou talvez você tenha um pronto?
Agradecemos antecipadamente))
A função pode ser a seguinte:
void fMoving_TPInBU (int fi_LevelLOSS, // уровень Лосса в пп. (для цены) - ТОЛЬКО > 0int fi_LevelBU, // уровень БУ в пп. (для тэйкпрофита) - может быть и >= 0 и < 0string fs_Symbol = "", // Symbolint fi_Type = -1, // Typeint gi_MG = -1) // MagicNumber
{
double ld_Point, ld_Price;
int li_Type, li_cnt, li_total = OrdersTotal();
//----if (li_total == 0) return;
if (fs_Symbol == "" || fs_Symbol == "0") fs_Symbol = Symbol();
for (int li_pos = li_total - 1; li_pos >= 0; li_pos--)
{
if (!OrderSelect (li_pos, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != fs_Symbol) continue;
if (gi_MG > -1) if (gi_MG != OrderMagicNumber()) continue;
li_Type = OrderType();
if (li_Type > 1) continue;
if (li_Type > -1) if (li_Type != fi_Type) continue;
RefreshRates();
if (li_Type == 0) {li_cnt = 1; ld_Price = MarketInfo (fs_Symbol, MODE_BID);}
else {li_cnt = -1; ld_Price = MarketInfo (fs_Symbol, MODE_ASK);}
ld_Point = MarketInfo (OrderSymbol(), MODE_POINT);
if (li_cnt * (OrderOpenPrice() - ld_Price) >= fi_LevelLOSS * ld_Point)
{
double ld_TP = NormalizeDouble (OrderOpenPrice() + li_cnt * fi_LevelBU * ld_Point, MarketInfo (fs_Symbol, MODE_DIGITS));
//---- Проверка на "излишнюю" модификациюif (ld_TP - OrderTakeProfit() != 0.0)
{OrderModify (OrderTicket(), ld_Price, OrderStopLoss(), ld_TP, 0);}
}
}
//----
}
Não se esqueça de verificar as restrições MODE_STOPLEVEL e MODE_FREEZELEVEL ao modificar uma STOP.
Como não? E se (BUY == 0)- isto não é um loop? Estranhamente, eu só removi o laço externo, que rodeava todo o programa entre parênteses. Era necessário para a depuração, então eu o retirei.
Se não estiver lá, deixe-o passar se (strela1 < strela2), a lógica do programa não será quebrada.
Como não? E se (BUY == 0)- isto não é um loop? Estranho, eu só removi o laço mais externo que estava entrelaçando o programa inteiro no início.
Não. Não é um loop. Você tirou exatamente o que deveria ter ficado. Leia o tutorial inteiro! Especialmente aqui: "Um exemplo de utilização de um operador composto em um operador condicional. O operador condicional if(expressão) vem primeiro, seguido pelo operador do complexo. O operador do complexo contém uma lista de operadores executáveis".
AJUDA! Por favor, ajude-me!! Como exemplo, anexarei esta foto. Não sou programador deste indicador para alguma forma soldado, mas depois encontrei uma falta de conhecimento e habilidades que tentaram uma semana inteira para exibir as setas na tela não funcionaram. vou explicar a essência. em áreas selecionadas, sublinhado em branco, há uma clara divergência (como entendo) que é a diferença entre o histograma e a linha de preço. na figura, por exemplo, marquei estes lugares números 1-2-3-4.Nesses locais, os valores da linha indicadora diminuem modulo, embora o preço continue a atualizar o fundo e assim chegamos ao ponto 5 nele vemos a base do preço atualizado baixo e fundo no fechamento, o histograma também está crescendo, mas a linha mostra uma diminuição.
então por alguma razão o assessor continua a trabalhar mesmo quando o botão "assessores" é liberado Eu preciso que ele seja desativado e quando eu uso este ciclo quando um EA está funcionando é impossível abrir propriedades do EA, pode ser que alguém saiba como consertar o EA ????? Eu sei sobre o sono(......);
Boa tarde! Você sabe, basta cortar o código da seção init da EA, (eu estava depurando-o para o fim de semana - sem carrapatos!), movê-lo para começar. Removido o laço externo dos fóruns. Eu o compilei.
É codificado - "continuar" - "quebrar" ou "continuar" usado dentro de algum ciclo apenas C:\Alpari`sexperts\Outputs.mq4 (69, 20)
Do que se trata? Bem, em loop continuo, em loop, e daí? Eu não falo muito inglês. Se eu consigo entender algumas palavras, não consigo fazer sentido delas!
Boa tarde! Você sabe, basta cortar o código da seção init da EA, (eu estava depurando-o para o fim de semana - sem carrapatos!), movê-lo para começar. Removido o laço externo dos fóruns. Compilado.
Foi usado dentro de algum ciclo apenas com... "continuar" - "quebrar" ou "continuar" C:\Alpari`sexperts\Outputs.mq4 (69, 20)
O que é isso? Bem, no loop, no loop, e daí? Eu não sou muito bom em inglês. Se eu entendo algumas palavras, não consigo fazer sentido de todas elas!
Por favor, ajude a fazer esta função vice versa:
Isto é, se o preço for para um prejuízo de uma ordem aberta pelo número de pips LevelProfit (você pode chamá-lo LevelLoss), você tem que mover TakeProfit para zero ou para um prejuízo de 1 pip 2, etc., dependendo do que você colocar no parâmetro LevelWLoss, de modo que se o preço se vira mesmo, não haveria mais lucro. Ou talvez você tenha um pronto?
Agradecemos antecipadamente))
A função pode ser a seguinte:
Não se esqueça de verificar as restrições MODE_STOPLEVEL e MODE_FREEZELEVEL ao modificar uma STOP.
Obrigado!!! Vamos dar uma olhada...
Como não? E se (BUY == 0)- isto não é um loop? Estranhamente, eu só removi o laço externo, que rodeava todo o programa entre parênteses. Era necessário para a depuração, então eu o retirei.
Se não estiver lá, deixe-o passar se (strela1 < strela2), a lógica do programa não será quebrada.
Obrigado!!! Vamos dar uma olhada...
Como não? E se (BUY == 0)- isto não é um loop? Estranho, eu só removi o laço mais externo que estava entrelaçando o programa inteiro no início.
Não. Não é um loop. Você tirou exatamente o que deveria ter ficado. Leia o tutorial inteiro! Especialmente aqui: "Um exemplo de utilização de um operador composto em um operador condicional. O operador condicional if(expressão) vem primeiro, seguido pelo operador do complexo. O operador do complexo contém uma lista de operadores executáveis".
TarasBY, obrigado pelas explicações e pela função!
Estou levando a função para minha coleção, mas não entendo algo:
Parâmetro fi_LevelBU tem valor negativo - ele muda de valor, enquanto que se tem valor positivo, ele mostra lucro ou vice-versa?
E segundo: é melhor verificar se há restrições dentro da própria função ou fora da função?
TarasBY, obrigado pelas explicações e pela função!
Estou levando a função para minha coleção, mas não entendo algo:
Se o parâmetro fi_LevelBU for negativo, significa mudança do TP para lucro, enquanto que se for positivo, significa lucro ou vice versa?
Correto (não vice versa).
E o segundo: é melhor verificar se há restrições dentro da própria função ou fora da função?
Cada um decide por si mesmo. Eu criei uma biblioteca que é responsável pela execução de ordens de comércio e verificações de todas as limitações.
P.S. Havia um pequeno erro no código de função (parêntese extra) - eu o consertei.
Rapazes, aconselhem como resolver o problema
Se você usar no Expert Advisor
então por alguma razão o assessor continua a trabalhar mesmo quando o botão "assessores" é liberado Eu preciso que ele seja desativado e quando eu uso este ciclo quando um EA está funcionando é impossível abrir propriedades do EA, pode ser que alguém saiba como consertar o EA ????? Eu sei sobre o sono(......);