Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 836
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
Está tudo bem se diz
nada, o fio é para o MT4, então você não presta atenção a ele
OK, ocupa-te, aqui é chato
Saudações a todos. Boa sorte na vida e lucro no trabalho.
Estou pedindo ajuda (inesperadamente, huh? :) ).
Em Mql eu sou um zerobom, 2 dias "no assunto". Se a EA real me força a usar o comércio automático, estou tentando escrever (coletar em tempo real de diferentes partes) coruja para minha EA plana e, claro, estou ficando confuso :). Estou tentando resolver outro problema há cerca de 10 horas e ainda não cheguei a ele. Se o conselho de alguém ou um exemplo for extremamente grato (verbalmente e por escrito, e o mais importante no chuveiro).
Em geral... Há o TC, utilizado com sucesso por mim há muito tempo. Em condições comerciais no mesmo instrumento podem as ordens de mercado multidirecionais (sem pendentes). Para a posição rebaixada pode ser preenchido em um sinal comercial, desde que a posição tenha caído pelo menos X pips, às vezes acontece e faz uma adição ao preenchimento (sob as mesmas condições (sinal comercial + tamanho do drawdown)). O problema (atual) está em abrir posições adicionais, a saber... como verificar e devolver o valor da perda em uma posição longa. Seguindo o exemplode https://www.mql5.com/ru/forum/117061, eu ajustei o código para atribuir a cada posição sua própria Magik, mas isso é tudo. Como selecionar exatamente uma posição que tenha se sentado e devolver seu valor de perda.... :(.
código "meu" para abrir negócios.
//-----------------
if (NumberOfPositions(Symbol(),OP_BUY, Magic)<1)
{
se (minhas condições de entrada)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); caso contrário TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Bid - stoploss*Point,Digits); caso contrário SL = 0;
ticket=OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),5,SL,TP, "BUY",Magic,0,Blue);
if(ticket < 0) { Imprimir("Erro ao abrir ordem de compra #", GetLastError());}
}}
if(NumberOfPositions(Symbol(),OP_SELL, Magic)<1)
{
se (minhas condições de entrada)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); caso contrário TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Ask + stoploss*Point,Digits); caso contrário SL = 0;
ticket=OrderSend(Symbol(),OP_SELLL,LOT,NormalizeDouble(Bid,Digits),5,SL,TP, "SELL",Magic,0,Red);
if(ticket < 0) { Imprimir("Erro ao abrir ordem de venda #", GetLastError());}
}}
//---------------
Ordens adicionais estão planejadas para serem abertas usando o seguinte código
//---------------
if (NumberOfPositions(Symbol(),OP_BUY, Magic)===1 && NumberOfPositions(Symbol(),OP_BUY, Magic_2)<1)
{
if (minhas condições de entrada && GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic)>= LEVEL_1)
{
ticket=OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),5,SL,TP, "Extra Buy",Magic_2,0,Blue);
if(ticket < 0) { Imprimir("Erro abrindo ordem de compra #", GetLastError()); }
} }
//---------------
E foi aí que eu fiquei preso :). O que usar ao invés de GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic). Acho que preciso usar o Drawdown_level(Symbol(),OP_BUY,Magic) mas como obtê-lo...
Ajude POR FAVOR, seja amigo.
Z.U. Se você aconselhar, por favor tenha em mente que eu ainda sou nubyara que não sou muito preguiçoso para me enviar um pouco mais de detalhe, sabe, como se: FOREST THERE, então não se esqueça de especificar a direção <------ || ------>>.
Obrigado por sua atenção :).
Nada, o fio é para o MT4, portanto você não presta atenção a ele.
Ok, ocupa-te, é chato aqui
Diga-me onde fica uma filial semelhante para o MT5, vou perguntar lá...
Diga-me onde está um fio semelhante para o MT5, vou perguntar lá...
É possível especificar
No MT4 a chamada de função do Indicador vai sem erros e funciona conforme necessário(int handle=iEnvelopes(Symbol(), tf, period, method, shift, price, Deviation(kanal), buff);) Pensei que poderia ser a mesma coisa no MT5.
Por favor, informe como fazê-lo corretamente ?
No MT4 a chamada de função do Indicador vai sem erros e funciona conforme necessário(int handle=iEnvelopes(Symbol(), tf, period, method, shift, price, Deviation(kanal), buff);) Pensei que poderia ser a mesma coisa no MT5.
Você pode me dizer como fazer isso corretamente?
Portanto, é impossível obter dados de Envelopes em mql4
Aqui está o código do MT4
Tudo funciona perfeitamente. Eu gostaria do mesmo em MT5
Aqui está o código do MT4
Tudo funciona perfeitamente. Eu gostaria do mesmo em MT5
Bem, isso porque é um código diferente e funcionará.
Corrigido o código MT5 para enviar dados para o Indicador:
Mas o erro é o mesmo.
Aqui está o código do MT4
Tudo funciona perfeitamente. Eu gostaria do mesmo em MT5
Cuidado com suas mãos:
Em meu post anterior, isto está destacado em seu código
e, no código desta, a mensagem citada é uma declaração de função. Também destacado.
E isto
Chamando uma função do usuário que existe. Embora este método de programação seja inaceitável para mim, ele ainda é compreensível. Mas como descrever o erro nesse código, estou perdido.