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
Idéia
OK meninos e meninas
Tenho brincado com a idéia de apenas criar um CUF (Commonly used functions) - de tudo o que li, você não pode chamar scripts de dentro de um EA.
Não obstante - pensando em uma alternativa porque não gosto de ser forçado a redesenhar a roda toda vez que o projeto é feito, pois tenho certeza de que isso faria as coisas funcionarem melhor desta forma.
Os scripts, como todos sabem, carregam e depois descarregam para nunca mais carregar, exceto se você pressionar suas teclas de atalho.
Este é um grande problema que vejo com todas as EA's é que elas parecem ficar presas esperando por alguma condição de tempo ou alguma condição crua de "sono" para passar antes de continuar. Isto torna improvável que o cancelamento e a venda em uma fração de segundo aconteça o que é um grande fracasso em condições extremamente voláteis do que você poderia fazer uma fortuna em poucos segundos.
A solução? Fazer um indicador CUFF que funcione em variáveis globais?? Alguém já tentou isto. O indicador cicla a cada tique de forma que seja perfeito.
Como codificar um alerta que enviará alertas sonoros ou por e-mail quando múltiplos indicadores e condições de barra forem atendidos?
oi,
sendo um novato eu gostaria de perguntar se a função metastock embutida : ref() e stochmomentum() são implementadas por algumas funções no metatrader
thnx
Darian veja meu exemplo acima de globals. encontre um script que envie um e-mail /whistles /does o que você quer e codifique-o nele. lembre-se que você terá que considerar que todos eles não vão explodir exatamente ao mesmo tempo, então você terá que colocar alguns segundos /minutos de atraso antes de redefinir as variáveis de volta a 0.
com a Global
posso adicionar um GlobalVarible a um Indicador como este ?
se ( tendência[2]0 && Volume[0]>1 && !UpTrendAlert)
{
GlobalVariableSet("tendência "+Símbolo(),1);
//Print("UP" + GlobalVariableGet("trend "+Symbol()));
Mensagem = " Comprar "+Symbol()+" M "+Periodo()+": Sinal para COMPRAR";
se ( AlertMode>0 ) Alerta (Mensagem);
UpTrendAlert=verdadeiro; DownTrendAlert=falso;
então chamar isso de GlobalVariable em um EA com
int init() {
GlobalVariableDel("tendência "+Símbolo());
tendência = GlobalVariableGet("tendência "+Símbolo());
Comprar = (tendência == 1);
Venda = (tendência == 2);
toda ajuda apreciada
Você poderia, no entanto, negociar mais de 1 moeda que não funcione.
Problemas com os Arrays, precisam de ajuda!
Hi,
Estou tentando fazer uma função que determina se algum pedido em aberto está perdendo mais dinheiro do que um ponto de corte (digamos, US$-1000).
A função deve então armazenar o OrderTicket() e o OrderProfit() em duas matrizes separadas, e sair com retorno (1) para significar que o ponto de corte foi atingido.
Antes de armazenar os valores nessas matrizes, deve-se verificar a array OrderTicket() para ver se esta ordem já está arquivada.
Se o número OrderTicket já estiver armazenado no array, ele deve determinar se a ordem perdeu um valor ADICIONAL de $1000, e se sim: substituir o valor no array OrderProfit() por um novo valor, e sair com retorno(1) para significar que um NOVO ponto de corte foi alcançado. Se a ordem não perdeu um valor adicional de $1000 (chamado Cutoff), então deve retornar(0) para significar que nenhuma ordem perdeu um valor adicional de $1000.
Acho que praticamente o tenho funcionando (não tenho certeza???), mas por alguma razão a matriz é preenchida com muitos valores '0' juntamente com os valores legítimos. A saída do array é a seguinte:
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 431 ResumeArrayPrices[k] = -3042
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 425 ResumeArrayPrices[k] = -3042
ResumeArrayTickets[k] = 386 ResumeArrayPrices[k] = -1008
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 371 ResumeArrayPrices[k] = -12933
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 320 ResumeArrayPrices[k] = -6057
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 249 ResumeArrayPrices[k] = -5076
ResumeArrayTickets[k] = 241 ResumeArrayPrices[k] = -1017
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 230 ResumeArrayPrices[k] = -13122
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 186 ResumeArrayPrices[k] = -4068
ResumeArrayTickets[k] = 128 ResumeArrayPrices[k] = -1008
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
[/code]
The following is my actual code:
[code]
int CheckForResume()
{
ResumeCheck = TimeLocal()+(PERIOD_M1*60)*5;
}
int arraycount1 =1;
int arraycount2 =1;
bool found = false;
int k;
for (int i = 0; i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
if (OrderProfit()< Cutoff)
{
for (k=0; k<ArraySize(ResumeArrayTickets); k++)
{
if ((ResumeArrayTickets[k] == OrderTicket()) && ResumeArrayTickets[k] !=0)
{
found = true;
if (ResumeArrayPrices[k] + Cutoff < OrderProfit())
{
return (0);
}
else
{
Print ("ELSE");
arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1);
arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1);
ResumeArrayTickets[k] = OrderTicket();
ResumeArrayPrices[k] = OrderProfit();
return (1);
}
}
}
if (found == false)
{
arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1)'
arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1);
ResumeArrayTickets[k] = OrderTicket();
ResumeArrayPrices[k] = OrderProfit();
return (1);
}
}
}
return (0);
}
}
Refrescando uma vez um EA
Olá, há alguma forma de atualizar uma EA para que ela reaja como da primeira vez que é inicializada? (Como um reinício) É preciso fazer isso uma vez que uma barra. Por exemplo, uma vez a cada 30 minutos.
RefreshRates() e WindowRedraw() não o fazem corretamente.
Também gostaria de reter algumas variáveis e não perder os dados.
Existe uma maneira de fazer isso?
Eu também gostaria de poder fazer isto para um indicador também.
Muito obrigado.
Ajuda para programação
Olá a todos,
Estou trabalhando na modificação de um medidor de força da moeda para mostrar a força da moeda com base no tempo a partir do gráfico. No momento, o código utilizado é:
aLow = MarketInfo(mySymbol,MODE_LOW); // set a low today
aBid = MarketInfo(mySymbol,MODE_BID); // set a last bid
aAsk = MarketInfo(mySymbol,MODE_ASK);Eu entendo MODE_HIGH e MODE_LOW obtêm os dias atuais altos e baixos. Como eu poderia obter o máximo e o mínimo dos gráficos no período de tempo atual?
Obrigado!
P.S. Eu não sou um programador, então use palavras pequenas, por favor:)
Veja no manual de ajuda as funções iHigh e iLow.
Boa sorte.
Lux