[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 628
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
Há isso. Aqui está a correção.
E a função de modificação está aqui:
Estranho Mas não há paradas e assume a saída novamente.
OrderSelect(g_ticket,SELECT_BY_TICKET) antes da linha if(OrderStopLoss() == 0 || OrderTakeProfit() == 0)
History, History_Draw - eles trabalham como Expert Advisors durante os testes.
Você precisa de algo assim para assistir a correções na história através de determinados parâmetros
Na história ou na tabela? Se sim, então que tipo de dados você quer ver na janela do gráfico, em uma janela separada, impressa como uma tabela, na forma de velas de cores diferentes, ou como uma linha conectando o início e o fim do movimento?
OrderSelect(g_ticket,SELECT_BY_TICKET) antes da linha if(OrderStopLoss() == 0 || OrderTakeProfit() == 0)
Foi o que eu fiz:
Não há paradas e tomadas de controle. O registro diz erro 130, dizendo que as paradas estão erradas. Não vejo a razão.
Foi o que eu fiz:
Não há paradas e tomadas de controle. O registro diz erro 130, dizendo que as paradas estão erradas. Não vejo a razão.
Sem ifs, apenasOrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES);, e você pode deixá-lo em OrderModifying()
//+------------------------------------------------------------------+
Ordens nulasModificar()
{
OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES);
if(g_type == OP_BUY)
{
if(i_sl != 0)sl = NormalizeDouble(OrderOpenPrice() - i_sl*pt,Digits); // Se o parâmetro de entrada de stop loss não for 0
// Obtenha o valor de Stop Loss para a ordem selecionada
if(i_tp != 0)tp = NormalizeDouble(OrderOpenPrice() + i_tp*pt,Digits); // Se o parâmetro de entrada TakeProfit não for igual a 0, então...
// obter o valor TakeProfit para a ordem selecionada
}
if(g_type == OP_SELL)
{
if(i_sl != 0)sl = NormalizeDouble(OrderOpenPrice() + i_sl*pt,Digits); // Se o parâmetro de entrada do stop loss não for 0
// Obtenha o valor de Stop Loss para a ordem selecionada
if(i_tp != 0)tp = NormalizeDouble(OrderOpenPrice() - i_tp*pt,Digits); // Se o parâmetro de entrada TakeProfit não for igual a 0, então...
// obter o valor TakeProfit para a ordem selecionada
}
if(sl != 0 ||| tp != 0) // Se os valores obtidos de sl e tp não forem iguais a 0, então..
{
OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,OrderOpenTime() + 86400,Lime); // Modificar pedido
}
}
Problema com Symbol() MT4:
2 funções a ilustrar:
A execução da primeira produz um fio vazio:
Mas a segunda função produz uma string ID "EURUSD" (bem, depende do gráfico, mas produz, embora de acordo com a lógica da função deva ser uma string vazia):
Ajudar-me a entender o que está errado? Obrigado
Você não pode usar nomes reservados(valor) ao declarar suas variáveis, ligue para _valor
Foi o que eu fiz:
Não há paradas e tomadas de controle. O registro diz erro 130, dizendo que as paradas estão erradas. Não vejo a razão.
E eles não o farão!
Vitaly, eu fiz como você disse, mas nada mudou. Aparentemente, o bicho está enterrado em outro lugar.
Antes eu tinha tudo (abertura de pedidos - modificação e transferência para a b.w. quando o nível de preço estabelecido é atingido) e tudo funcionava. Foi assim:
Agora, como eu decompus tudo em funções especializadas específicas, tudo deixou de funcionar demais. Já tentei nos dois sentidos, nada funciona. as paradas não estão definidas.
E eles não o farão!
Onde está a lógica nisso? Eu gostaria de entender... Aqui está a função:
Se as variáveis de entrada i_sl e i_tp não forem iguais a zero, obtemos a parada e tomamos preços que já estarão na ordem - sl etp. Depois disso, vou verificar se calculamossl etp aqui (se para calções):
Se os valores forem obtidos, então eles não podem ser zero... porque serão alterados! Estas são variáveis que obtemos seqüencialmente por contexto de código.
E aqui, eu verifiquei se encontramos os valores de parar e tomar. Como eles podem ser zero depois de todas as condições?
Primeiro construa sua lógica no início, depois faça funções, arquivos, etc.
Por que coçar a mão esquerda atrás da orelha direita?
Minha função começa com uma declaração de parâmetros, ver Kim's!