![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Obrigado Ralph, mas eu estaria faltando a troca, e quero incluir o lucro/perda da troca no fechamento da decisão de compra.
Mas o primeiro loop acumula tanto o lucro quanto a troca, não é verdade?
Eu estava pensando que o valor de Equidade é o que deve ser comparado com o que 5 pips significariam para os lotes abertos.... e você então não precisa realmente calcular o preço do break-even.
Oi Ralph
Eu tenho 3 variáveis
OrdLots ; em lotes e representam os lotes abertos, mas isso irá saltar a troca
Equidade; esta é a perda de lucro total e esta incluirá a troca
MinPro ; este é o meu take profit que é 5 pips + o breakeven point
Eu não posso usar OrdLots para encontrar o lucro/perda em pips, pois isso irá pular a troca
Não posso usar Equidade para encontrar o lucro/perda em pips porque para isso preciso saber quanto lotes são usados, mas meu cálculo para os lotes salta a troca
De alguma forma eu preciso usar uma função de OrdLots e Equity para saber quantos pips estão abertos
Pode haver algo pronto no MT4 que relacione o saldo da conta ou o patrimônio líquido da conta, mas não encontrei nenhum
A solução que você propôs com agradecimento encontrará o lucro/perda em pips sem considerar a troca, mas eu já coloquei uma função para isso ... Quero sair a 5 pips acima do ponto de equilíbrio com o swap
Comparar tempos e fazer loop
Olá a todos.
Eu sou muito inexperiente com a linguagem Mql4. Eu quero comparar o tempo de abertura com um Int var e se ele me ocupa um certo tempo e as ordens ainda estão abertas eu quero aumentar a quantidade de ordens abertas permitidas para que eu possa tentar alcançar uma situação de Breakeven ou talvez uma situação de lucro e então fechar todas as ordens abertas ao mesmo tempo e ajustar o máximo de ordens de volta ao máximo permitido originalmente. Alguém pode me ajudar ou me mostrar um código em outro posto que já faça algo assim.
Estou usando este código mas parece que ele não funciona.
// Se as ordens estiverem abertas por um longo tempo, fechem as ordens e tentem equilibrar
Proteção contra o tempo vazio()
{
int totalorder = OrderTotal();
for(int i=totalordens-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
se ( OrderSymbol()==Symbol() )
{
prTime = OrderOpenTime();
prTime = prTime * CallTime;
se (prTime >= TimeCurrent())
{
MaxAllowable_Trades = MaxAllowable_Trades + 3;
bandeira = 1;
pausa;
}
}
}
retornar;
}
Eu realmente gostaria de sua ajuda nisso.
Obrigado
Oi Ralph
Eu tenho 3 variáveis
OrdLots ; em lotes e representam os lotes abertos, mas isso irá saltar a troca
Equidade; esta é a perda de lucro total e esta incluirá a troca
MinPro ; este é o meu take profit que é 5 pips + o breakeven point
Eu não posso usar OrdLots para encontrar o lucro/perda em pips, pois isso irá pular a troca
Não posso usar Equidade para encontrar o lucro/perda em pips porque para isso preciso saber quanto lotes são usados, mas meu cálculo para os lotes salta a troca
De alguma forma eu preciso usar uma função de OrdLots e Equity para saber quantos pips estão abertos
Pode haver algo pronto no MT4 que relacione o saldo da conta ou o patrimônio líquido da conta, mas não encontrei nenhum
A solução que você propôs com agradecimento encontrará o lucro/perda em pips sem considerar a troca, mas eu já coloquei uma função para isso ... Quero sair a 5 pips acima do ponto de equilíbrio com o swapAh... talvez eu entenda... Portanto, se você também acumular lucro sem trocar para EquityNoSwap no primeiro loop, então você poderia usar isso em vez de Equity em minha declaração de "se". (...) Porque então o teste seria "há 5 pips de lucro relativo ao preço do breakeven+swap?" que na verdade é o mesmo que "há 5 pips de lucro ignorando o swap? (ou talvez eu ainda não entenda)
Basicamente "lucros+swap" é relativo "breakeven", e assim "lucros" é relativo "breakeven+swap", e "lucros" é distribuído sobre "OrdLots". Em suma, você ainda não precisa determinar um preço real de pips para o "breakeven".
Melhor idéia de codificação EA
Estou aprendendo a codificar o indicador anexado, mas não funcionou. Alguém poderia ajudar? É um indicador muito confiável e se alguém pudesse fazer um EA para ele... é quase um santo graal.tia.
O preço básico é:
1.abrir Posição de venda quando a seta vermelha aparece,
2 abrir posição de compra quando a seta branca aparecer e fechar automaticamente todas as posições/ posições de venda.
3.aplicar para qualquer período de tempo .
4.sem perda de parada,
5.adicionar função de ordem.
Aguarde a resposta!
//+------------------------------------------------------------------+
//| IINWMARROWS.mq4 |
//| Baseado em EMA_CROSS.mq4 |
//| Copyright ?2006, MetaQuotes Software Corp. |
//| Software de Comércio Forex: Plataforma de negociação Forex MetaTrader 4 |
//| Última pequena modificação por Iin Zulkarnain |
//+------------------------------------------------------------------+
#Copyright ?2006, MetaQuotes Software Corp."
#link da propriedade "http://www.metaquotes.net"
//----
#janela_do_cartão_indicador de propriedade
#property indicator_buffers 2
#Indicador de propriedade_color1 Branco
#indicador de propriedade_color2 Vermelho
#largura_do_indicador de propriedade1 2
#largura_do_indicador de propriedade2 2
//----
duplo CrossUp[];
duplo CrossDown[];
externo int FasterMode=3; //0=sma, 1=ema, 2=smma, 3=lwma
externo int FasterMA= 3;
extern int SlowerMode=3; //0=sma, 1=ema, 2=smma, 3=lwma
externo int SlowerMA= 3;
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
//---- indicadores
SetIndexStyle(0, DRAW_ARROW, EMPTY);
SetIndexArrow(0, 233);
SetIndexBuffer(0, CrossUp);
SetIndexStyle(1, DRAW_ARROW, EMPTY);
SetIndexArrow(1, 234);
SetIndexBuffer(1, CrossDown);
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| Função de desinicialização de indicador personalizada |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| Função de iteração de indicador personalizada |
//+------------------------------------------------------------------+
int start()
{
int limit, i, counter;
duplo mais rápidoMAnovem, mais lentoMAnovem, mais rápidoMAnovem, mais lentoMAafter, mais lentoMAafter;
alcance duplo, AvgRange;
int counted_bars=IndicatorCounted();
//---- verificação de possíveis erros
if(counted_bars<0) return(-1);
//---- última barra contada será contada novamente
if(counted_bars>0) counted_bars--;
//----
limite=barras_contadas_combarras;
for(i=0; i<=limite; i++)
{
counter=i;
Faixa=0;
AvgRange=0;
for(counter=i ;counter<=i+9;counter+++)
{
AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
}
Alcance=AvgRange/10;
fasterMAnow=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i);
fasterMAprevious=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i+1);
fasterMAafter=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i-1);
//----
slowerMAnow=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i);
slowerMAprevious=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i+1);
slowerMAafter=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i-1);
if ((fasterMAnow > slowerMAnow) && (fasterMAprevious slowerMAafter))
{
CrossUp=Baixo - Alcance*0,5;
}
senão se ((fasterMAnow slowerMAprevious) && (fasterMAafter < slowerMAafter))
{
CrossDown=Alto + Alcance*0,5;
}
}
retorno(0);
}
//+------------------------------------------------------------------+ este tópico para aprender a codificar corretamente, estou aprendendo a codificar para
Para os grandes e corajosos codificadores
qualquer um pode adicionar posições máximas para este EA
ou deixá-lo correr apenas uma posição ?
agradecimentos antecipados
Post Eliminado
pergunta fora de tópico
İs é possível farejar dados do programa de fontes não abertas?
Eles têm a pobre linguagem de programação (semelhante ao Metastock mas mais pobre, sem a função "anterior" permitida). Eles só permitem seus próprios indicadores e têm o monopólio de dados (pela lei).İt não é possível escrever uma extensão de DLL para pôr meus indicadores funcionando em tempo real em ambiente.
Todos os programadores respondem muito bem.
Pedido aberto para um par diferente
Hi,
existe alguma forma de abrir um pedido para um par de moedas diferente.
Por exemplo, a EA está rodando em um gráfico EURUSD, mas eu quero abrir uma ordem para USDJPY.
Isto é possível.
Obrigado de antemão.![](https://c.mql5.com/forextsd/smiles/smile.png)
OrderSend("USDJPY",OP_BUY,0.1,MarketInfo("USDJPY",MODE_ASK),10,0,0,0, "Com",0,0,CLR_NONE);