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 538
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
Não recuse um recém-chegado a programar, olhe o código, para ver se ele está escrito corretamente. Que não é muito preguiçoso para lidar com isso. Não posso testá-lo no Testador de Estratégia porque é multimoeda. Arquivo com o código e os indicadores anexados ao arquivo.
Estou tentando escrever um simples EA que fecha todas as posições em minha conta quando atinge os valores especificados de lucro ou perda na moeda do depósito (abro por vários símbolos), mas fecha as posições assim que elas aparecem (((
Eu não entendo o que está errado:
Confira isto.
lucro interno externo = 30;
Exterior int Magic=0;
int CurProfit;
bool externo CurSymbolOnly = falso;
int start() // Início de funções especiais
{
//contador de lucro de todos os pedidos
duplo p1;
int i1, kk1=OrdensTotal(), pr1=0;
para (i1=0; i1<kk1; i1++)
{
se(OrderSelect(i1, SELECT_BY_POS, MODE_TRADES))
{
se (!CurSymbolOnly || OrderSymbol()==Symbol())
{
p1=MarketInfo(OrderSymbol(), MODE_POINT);
if (p1==0) if (StringFind(OrderSymbol(), Symbol())<0) p1=0,0001; caso contrário p1=0,01;
se (OrderType()==OP_BUY)
{
pr1+=NormalizeDouble((OrderClosePrice()-OrderOpenPrice())/p1, 0);
}
se (OrderType()==OP_SELL)
{
pr1+=NormalizeDouble((OrderOpenPrice()-OrderClosePrice())/p1, 0);
}
}
}
}
CurProfit=pr1;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
se (lucro<==pr1)
{
FecharPoswithMaxProfitInCurrency();
}
retorno(0);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///fecha do mais caro para o mais barato
void ClosePosWithMaxProfitInCurrency(string sy="", int op=-1, int mn=-1)
{
duplo pr=0;
int i5, k=OrdersTotal(), np=-1;
se (sy=="0") sy=Símbolo();
para (i5=k-1; i5>=0; i5--)
{
se (OrderSelect(i5, SELECT_BY_POS, MODE_TRADES))
{
se ((OrderSymbol()==sy ||| sy==") && (op<0 || OrderType()==op))
{
se (mn<0 || OrderMagicNumber()==mn)
{
se (pr<OrderProfit()+OrderSwap())
{
pr=OrderProfit()+OrderSwap();
np=i5;
}
}
}
}
}
se (np>=0)
{
se (OrderSelect(np, SELECT_BY_POS, MODE_TRADES))
{
{for (int i=OrdensTotal()-1; i>=0; i--)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) quebrar;
se (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),9);
se (OrderType()==OP_SELL) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),9);
}
}
}
}
closeotlojnie();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//closeotlojnie
closeotlojnie() vazio
{
para (int i=OrdensTotal()-1; i>=0; i--)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) quebrar;
se (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());
se (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket());
se (OrderType()==OP_BUYLIMIT ) OrderDelete(OrderTicket());
se (OrderType()==OP_SELLLIMIT) OrderDelete(OrderTicket());
}
}
Eu trabalhei uma única função para você criar conjuntos de símbolos ligados e número de pedidos (posições abertas) para comprar e vender, testar o roteiro abrindo várias posições em uma demonstração
Obrigado por seu tempo, mas é um pouco complicado para mim, desculpe pela intrusão. Explicar-me o quê, onde, como? Como eles dizem nos dedos.
Eu nunca estive acostumado a comercializar este tipo de roteiros.
Obrigado por seu tempo, mas é um pouco complicado para mim, desculpe pela intrusão. Explicar-me o quê, onde, como? Como eles dizem nos dedos.
Eu experimentei e negociei manualmente em uma conta demo.
Como você o testou em uma conta demo se só há erros? O código que foi apresentado não podia ser comercializado. Eu adicionei comentários ao código. Você tem que fazer todo o trabalho sozinho, sem conhecimento e trabalho duro. Você não pode negociar nas bolsas de valores, especialmente forex. O resultado será inequívoco. Além dos problemas acima mencionados, você deve usar o sistema comercial que você escolheu. Após 2-3 meses os resultados serão mostrados, então você decidirá se este sistema é adequado para você pessoalmente e para o comércio em princípio.
Pergunta aos moderadores ou administradores: Posso mudar meu apelido? Tentei me registrar na MQL5, mas descobri que meu apelido já estava sendo usado lá, então tive que me registrar sob outro. Eu quero ter o mesmo apelido aqui e ali. É claro que também posso me recadastrar aqui, mas comecei a postar algo na Base de Código e quero manter a autoria de meus trabalhos (e postagens) simplesmente "mudando meu nome". Isso é possível?
Escreva para Rosha em uma mensagem privada. Espero que você a encontre. Diga qual é o problema
OK, obrigado.
Olá! Tendo EAs em uma versão anterior do MetaTrader I atualizou o terminal. Depois disso, voltei a 509. Assim, os EAs "foram" em 60... Bild, eles voltaram à versão terminal na qual foram escritos.
A questão é: O que fazer com aqueles EAs que param de abrir negócios no Strategy Tester depois de "voltar" e aqueles que não podem mais ser testados (o botão start no Strategy Tester simplesmente não responde a um clique)?