Estou tentando codificar um EA (usando alguns códigos já feitos) que faz o seguinte:
Abre duas ordens pendentes, uma parada de venda e uma parada de compra, em um horário específico (neste caso 23:00), ambas com um SL e um TP.
Expira a ordem pendente em uma determinada hora (por exemplo às 10:00) e não abre nenhuma negociação na sexta-feira 23:00.
Se duas negociações são abertas e uma chega ao SL, a outra tem seu TP aumentado para um certo valor (acho que uma OrderModify resolverá algo como isto).
As negociações que são abertas fecham automaticamente até as 23h00 do dia seguinte.
O EA está quase pronto e algumas questões anteriores que eu tinha foram resolvidas e faz a maioria das acima, mas ainda tenho as seguintes questões e neste ponto não sei como ir mais longe, portanto, se alguém pudesse fornecer o código necessário, isso seria muito útil.
Quando dois negócios estão abertos e um atinge o prejuízo, eu preciso do outro negócio que ainda está aberto para ter seu lucro aumentado em um certo valor.
Os negócios ainda estão sendo abertos na sexta-feira às 23h00, o que eu não quero.
Qualquer negociação que ainda esteja aberta até as 23h00 deverá ser fechada, independentemente de estar com prejuízo ou lucro.
Sou um noob na MQL e tenho tentado procurar as soluções para algumas das questões acima e estou tendo problemas para encontrá-las. Acredito que as questões podem ser resolvidas com bastante facilidade com uma codificação não tão complicada. Se alguém pudesse me fornecer uma solução ou soluções para qualquer uma das questões acima, eu, mais uma vez, apreciaria muito.
Basta substituir stopLossToUse e takeLossToUse pelos valores que você deseja que sejam
kasio: Amigos,
Sou um novato na programação da MQL4 e preciso de ajuda para anexar um SL & TP a um ORDERSEND com um corretor ECN.
Inicialmente, eu não conseguia entender porque os SL & TPs estavam fazendo meu pedido resultar em um erro até que alguém apontou que alguém tem que definir o campo StopLoss & TakeProfit dentro do ORDERSEND para "0" ou então um corretor ECN/STP não executará o pedido.
Portanto, minha pergunta é: Como posso executar uma ordem no Mercado e depois imediatamente (ou dentro de um ou dois segundos) anexar um SL/TP a esse bilhete?
Aqui está uma parte do código pertinente ao meu questino:
Qualquer pessoa pode me ajudar a inserir o código logo após o comando OrderSend para que eu possa anexar um TP/SL de 25pips, digamos arbitrariamente, a esse ticket específico?
Qualquer ajuda seria muito apreciada. Agradecemos antecipadamente.
O arquivo deve estar na subpasta experts\files e eu usei como exemplo o ticket número 0, então o nome completo do arquivo estava em meu exemplo "EURUSD_Demo_0_Open.gif" e ele o abriu sem problemas (faz bem se você usar FILE_CSV assim como com FILE_BIN). Portanto, se for salvo na pasta e no nome corretos, seu código funciona OK.
Akkinmore: Hi,
Sou novo aqui e também novo na programação de MT. Alguém pode me ajudar nisto?
Eu recebi "Um erro tinha ocorrido. Número do erro = 4103. pos = 10 (não é possível abrir arquivo) mensagem".
O arquivo é salvo corretamente como gif, mas estou recebendo a mensagem acima. Onde está o problema?
O código:
Tela nula(int ticket, int cmd, datetime orderOpenTime, double orderOpenPrice)
{
RefreshRates();
if (cmd===OP_BUY) Comentário (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)," Buy: "DoubleToStr(orderOpenPrice,Digits)) ;
if (cmd==OP_SELLL) Comentário (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)," Sell: ",DoubleToStr(orderOpenPrice,Digits)) ;
mladen: Funciona OK O arquivo deve estar na subpasta experts\files e eu usei como exemplo o ticket número 0, então o nome completo do arquivo estava em meu exemplo "EURUSD_Demo_0_Open.gif" e ele o abriu sem problemas (ele funciona bem se você usar FILE_CSV assim como com FILE_BIN). Portanto, se for salvo na pasta e no nome corretos, seu código funciona OK.
Obrigado. Sim, o arquivo é salvo na pasta e no nome corretos. Posso tentar usar o FILE_BIN em vez do FILE_CSV para verificar se a mensagem de erro aparece novamente.
Precisa de ajuda para terminar esta EA
Estou tentando codificar um EA (usando alguns códigos já feitos) que faz o seguinte:
O EA está quase pronto e algumas questões anteriores que eu tinha foram resolvidas e faz a maioria das acima, mas ainda tenho as seguintes questões e neste ponto não sei como ir mais longe, portanto, se alguém pudesse fornecer o código necessário, isso seria muito útil.
Sou um noob na MQL e tenho tentado procurar as soluções para algumas das questões acima e estou tendo problemas para encontrá-las. Acredito que as questões podem ser resolvidas com bastante facilidade com uma codificação não tão complicada. Se alguém pudesse me fornecer uma solução ou soluções para qualquer uma das questões acima, eu, mais uma vez, apreciaria muito.
Muito obrigado,
madmax3
...
... Tente algo assim :
Basta substituir stopLossToUse e takeLossToUse pelos valores que você deseja que sejam
Amigos,
Sou um novato na programação da MQL4 e preciso de ajuda para anexar um SL & TP a um ORDERSEND com um corretor ECN.
Inicialmente, eu não conseguia entender porque os SL & TPs estavam fazendo meu pedido resultar em um erro até que alguém apontou que alguém tem que definir o campo StopLoss & TakeProfit dentro do ORDERSEND para "0" ou então um corretor ECN/STP não executará o pedido.
Portanto, minha pergunta é: Como posso executar uma ordem no Mercado e depois imediatamente (ou dentro de um ou dois segundos) anexar um SL/TP a esse bilhete?
Aqui está uma parte do código pertinente ao meu questino:
if((CurrentPriceBuy>UpperPriceTrigger) && TakeAction===1)
{
OrderSend(Sym,OP_BUY,Lots,CurrentPriceBuy,0,0,0,0,Comm,0,0,CLR_NONE);
TakeAction=0;
}
Qualquer pessoa pode me ajudar a inserir o código logo após o comando OrderSend para que eu possa anexar um TP/SL de 25pips, digamos arbitrariamente, a esse ticket específico?
Qualquer ajuda seria muito apreciada. Agradecemos antecipadamente.
Saudações,
Kasioajuda!
alguém pode me ajudar a fazer este indicador para não repintar por favor?
...
É um código descompilado, mas de qualquer forma olhe para esta linha : https://www.mql5.com/en/forum/179650
É mais um vento solar rebaptizado, portanto ...
alguém pode me ajudar a fazer este indicador para não repintar, por favor?
Alguma idéia sobre como codificar o que eu postei? Minhas desculpas se estou sendo impaciente ou algo assim, só quero saber se foi lido.
Obrigado,
madmax3
...
Adicione algo como isto em sua EA no início do procedimento de início() :Acrescentar isto ao código :
}}}}}Isso resolverá seus pontos 2 e 3 (ordens abertas na sexta-feira)
O primeiro ponto é bastante complicado de codificar - você provavelmente precisará redefinir essa regra
Alguma idéia sobre como codificar o que eu postei? Minhas desculpas se estou sendo impaciente ou algo assim, só quero saber se foi lido.
Obrigado,
madmax3Por favor, ajude! Número do erro = 4103. pos = 10. Não é possível abrir a FIle
Hi,
Sou novo aqui e também novo na programação de MT. Alguém pode me ajudar nisto?
Eu recebi "Um erro tinha ocorrido. Número do erro = 4103. pos = 10 (não é possível abrir arquivo) mensagem".
O arquivo é salvo corretamente como gif, mas estou recebendo a mensagem acima. Onde está o problema?
O código:
Tela nula(int ticket, int cmd, datetime orderOpenTime, double orderOpenPrice)
{
RefreshRates();
if (cmd===OP_BUY) Comentário (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)," Buy: "DoubleToStr(orderOpenPrice,Digits)) ;
if (cmd==OP_SELLL) Comentário (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)," Sell: ",DoubleToStr(orderOpenPrice,Digits)) ;
string filename = Symbol()+"_"+"Demo "+"_"+ticket+"_Open.gif";
int handle = FileOpen(filename,FILE_CSV|FILE_READ);
if(handle<1)
{
se (GlobalVariableGet("_MonitorScreenScreenShot") != 0 )
{
if(!WindowScreenShot(filename,900,600)) Imprimir("WindowScreenShot error: "+GetLastError());
}
}
outro FileClose(handle);
}
Qualquer ajuda é apreciada. Obrigado.
...
Funciona bem
O arquivo deve estar na subpasta experts\files e eu usei como exemplo o ticket número 0, então o nome completo do arquivo estava em meu exemplo "EURUSD_Demo_0_Open.gif" e ele o abriu sem problemas (faz bem se você usar FILE_CSV assim como com FILE_BIN). Portanto, se for salvo na pasta e no nome corretos, seu código funciona OK.
Hi,
Sou novo aqui e também novo na programação de MT. Alguém pode me ajudar nisto?
Eu recebi "Um erro tinha ocorrido. Número do erro = 4103. pos = 10 (não é possível abrir arquivo) mensagem".
O arquivo é salvo corretamente como gif, mas estou recebendo a mensagem acima. Onde está o problema?
O código:
Tela nula(int ticket, int cmd, datetime orderOpenTime, double orderOpenPrice)
{
RefreshRates();
if (cmd===OP_BUY) Comentário (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)," Buy: "DoubleToStr(orderOpenPrice,Digits)) ;
if (cmd==OP_SELLL) Comentário (DateTimeInfo(),"\n", "Order Open Time: ",TimeToStr(orderOpenTime,TIME_DATE|TIME_SECONDS)," Sell: ",DoubleToStr(orderOpenPrice,Digits)) ;
string filename = Symbol()+"_"+"Demo "+"_"+ticket+"_Open.gif";
int handle = FileOpen(filename,FILE_CSV|FILE_READ);
if(handle<1)
{
se (GlobalVariableGet("_MonitorScreenScreenShot") != 0 )
{
if(!WindowScreenShot(filename,900,600)) Imprimir("WindowScreenShot error: "+GetLastError());
}
}
outro FileClose(handle);
}
Qualquer ajuda é apreciada. Obrigado.Funciona OK O arquivo deve estar na subpasta experts\files e eu usei como exemplo o ticket número 0, então o nome completo do arquivo estava em meu exemplo "EURUSD_Demo_0_Open.gif" e ele o abriu sem problemas (ele funciona bem se você usar FILE_CSV assim como com FILE_BIN). Portanto, se for salvo na pasta e no nome corretos, seu código funciona OK.
Obrigado. Sim, o arquivo é salvo na pasta e no nome corretos. Posso tentar usar o FILE_BIN em vez do FILE_CSV para verificar se a mensagem de erro aparece novamente.
...
Como fazer meu computador mostrar as palavras em russo em indicadores corretamente?....Obrigado...