Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1133

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
prıvet .podzajajajte pojalusta pogu na demo schete ne mogu otkrıt zdelkı
o comércio está desativado .oshıbka
Sem pecados, o que jura.
Quais são os erros do compilador
Algo a ver com o fato de que a função deve ser global e esperar por vírgulas em lugares onde não faz sentido colocá-las! Por exemplo, no separador entre as informações sobre o corretor e o par negociado
Uma palavra de conselho para um boneco. Como posso abrir uma conta ativa?
O que você quer dizer com "nenhum"? Ordenar por bilhete - sempre haverá uma ordem e nenhuma contradição com a documentação, diz sobre ordenação por número de série, não por bilhete, são coisas diferentes.
Temos esta lista de pedidos em um momento (por bilhete)
- Comprar nº 1
- Comprar nº 2
- ComprarStop #3
- Venda #4
A ordem dos bilhetes na lista é: #1,#2,#3,#4Após a BuyStop #3, qual será a ordem de compra dos bilhetes na lista?
É #1,#2,#4,#3?
Portanto, os bilhetes também não garantem a regularidade.
Outro problema que eu encontrei! Não julgue, estou estudando o idioma há 2-3 semanas, talvez eu seja apenas burro!
A tarefa no Expert Advisor é notificar o trader via e-mail a cada 4 horas, se a margem livre na conta tiver acrescentado um certo valor.
No assunto da mensagem você tem que escrever o nome do corretor e do par negociado, e no corpo da mensagem "Perigo! O saque está acima do limite. Tomar as medidas necessárias".
O compilador está com defeito de funcionamento, não sou bom em inglês e não consigo descobrir qual é o erro!
double Sag;
void OnTick()
{
Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1); //находим процент просадки и округляем до 1 знака
if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3) //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
{
Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит
}
}
PS: Talvez em geral haja uma solução mais fácil para este tipo de problema, mas até agora só vejo desta maneira)
//| exTestSendMail.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
input double MessageMail = 50.0;
//---
double Sag=0;
string MailSubject="";
datetime PrevTime=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
MailSubject="Mail from EA "+MQLInfoString(MQL_PROGRAM_NAME);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
//--- Находим процент просадки и округляем до 1 знака
Sag=NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_MARGIN_FREE)/AccountInfoDouble(ACCOUNT_BALANCE)),1);
//--- Если открыт новый бар на H4
if(iTime(Symbol(),PERIOD_H4,0) !=PrevTime) {
//--- если просадка больше заданного
if(Sag>MessageMail) {
Alert(Symbol(), ": Просадка = ", DoubleToString(Sag,1), " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале
string MailText=AccountInfoString(ACCOUNT_COMPANY)+" > Опасность! Просадка ("+DoubleToString(Sag,1)+"%) привысила допустимое значение. Примите необходимые меры.";
SendMail(MailSubject,MailText);
}
PrevTime=iTime(Symbol(),PERIOD_H4,0);
}
}
//+------------------------------------------------------------------+
Obrigado! Prepare-se para enviar cartas!
como fixaro valor de retorno '' OrderClose deve ser verificado??????????????????????????????
Caros programadores, por favor, ajudem um novato neste negócio.
A EA está abrindo ordens de compra e venda seqüencialmente após um certo período de tempo. Quero que ele modifique todas as ordens anteriores (especificamente, todas as anteriores devem ser fechadas por Take Profit da última. Isto é, se a última ordem de compra e a ordem de venda anterior, então o stop loss da ordem anterior é definido para o nível de take profit da última,
Se a compra anterior for efetuada, então seu TakeProfit será fixado no nível do último TakeProfit. A questão é que quando chega o takeprofit do último pedido, todos os pedidos devem ser fechados).
Espero ter explicado claramente, embora seja difícil entender como deve ser implementado. Agradecemos antecipadamente.
Entendo que podemos passar por todas as ordens abertas e modificá-las, mas como podemos pular a última ordem?