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
dasioIt já está passando por todas as horas do dia atual. Eu coloquei o iClose() e iOpen() apenas como exemplo de uma chamada de um período de tempo diferente de 1 hora. Se você quiser acessar um dia diferente do atual, substitua o "0" na data/hora de inícioTime=iTime(NULL,PERÍODO_D1,0); parte com qualquer dia para o qual você deseja que os dados coletados
Obrigado.
Talvez eu tenha que estudar.
Não entendo como posso fazer cálculos separados para a vela 00:00 - 01:00 - 02:00 etc.
Desculpe
Problemas de sinal
Mladen
Obrigado, olhei atentamente....Im ainda experimentando o código. Estarei notificando quando terminar.
dasio
Esta parte
define o i para o turno da primeira vela de hora no dia especificado (é por isso que a data/hora de inícioTime=iTime(NULL,PERÍODO_D1,0); foi adicionado - para descobrir a hora de início do dia) depois disso, ele irá loopar através de cada valor da barra de 1 hora até que o dia permaneça o mesmo (por exemplo, na sexta-feira ele não irá loopar 24 vezes, mas 22 ou 23, dependendo do seu corretor)
Se você precisa sentir alguma coisa que tem que ser feita de maneira um pouco diferente, deixe-me agora uf que a idéia foi sua)
Obrigado.
Talvez eu tenha que estudar.
Não entendo como posso fazer cálculos separados para a vela 00:00 - 01:00 - 02:00 etc.
DesculpeComo fazer uma parada de um Expert ?
Olá codificadores,
Como codificar algumas linhas de codificação extras para que um Especialista pare depois de um negócio vencedor?
Os Pips estão no saco, então faça o Expert parar...
Muito obrigado
Tomcat98
dasio
Esta parte
define o i para o turno da primeira vela de hora no dia especificado (é por isso que a data/hora de inícioTime=iTime(NULL,PERÍODO_D1,0); foi adicionado - para descobrir a hora de início do dia) depois disso, ele irá loopar através de cada valor da barra de 1 hora até que o dia permaneça o mesmo (por exemplo, na sexta-feira ele não irá loopar 24 vezes, mas 22 ou 23, dependendo do seu corretor)
Se você precisa sentir alguma coisa que tem que ser feita de maneira um pouco diferente, deixe-me agora uf que a idéia foi sua)Obrigado,
estou entendendo pouco mais.
No entanto, eu preciso dele, por exemplo.
Devo associar a variáveis algo como isto:
(vela 00:00 ; Variável = Perto+Alto
vela 01:00 ; Variable1 = Close+Open
vela 02:00 ; Variable2 = alto+baixo;
E assim por diante durante toda a vela de hora do dia.
Assim, as variáveis são definidas como sendo o dobro.
Depois disso tenho que fazer alguns cálculos matemáticos com a variável e associar o resultado a um buffer (não é um problema).
A questão para mim é a variável associação....
Outro problema... estou tentando estudar a programação e às vezes (só de vez em quando? eheh) preciso de ajuda.
Se eu tenho um pedido pendente, como posso codificar se eu quiser que quando um pedido pendente é aberto, o outro pedido pendente deve ser excluído?
Obrigado.
Você tem que usar 2 loops :
Primeiro você tem que contar as ordens para descobrir se algumas das ordens pendentes se tornaram uma ordem "regular" (então você tem que fazer uma contagem regular das ordens que têm tipos OP_BUY ou OP_SELL e, se desejar, contar o resto das ordens também).
Se houver ordens abertas, então você tem que fazer um loop mais uma vez e excluir todas as ordens que não sejam do tipo OP_BUY ou OP_SELL.
O código pode ser algo parecido com isto :
int pending =0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
opened++;
else pending++;
}
if (opened>0 && pending>0)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)
OrderDelete(OrderTicket());
}
}Outro problema... estou tentando estudar a programação e às vezes (apenas em tempo?eheh) eu preciso de ajuda.
Se eu tenho uma ea que coloca duas ordens pendentes, como posso codificar se eu quiser que quando uma ordem pendente é aberta, a outra ordem pendente deve ser apagada?
Obrigado.Fechar todas as posições de venda ou compra somente (quando atingido o lucro alvo)
Olá a todos ... sou novo no FX e EA. Eu tentei encontrar um EA para "fechar todas as vendas" ou "fechar todas as compras" quando atingido o alvo, mas não consegui encontrar. Encontrei apenas fechar todas as vendas ou todas as compras sem o "HIT TARGET or PROFIT". É possível se alguém pudesse me ajudar a criar 1 EA com as características abaixo:-
1)Fechar todas as vendas se o lucro atingir o alvo X.
2)Fechar todas as compras se o lucro atingir a meta X.
3)Incluir trailing stop (se possível, se não houver problema).
4) Não fechar se o nível de patrimônio ou margem for inferior a X % se fechar todas as compras ou fechar todas as vendas (se possível, se não houver problema)
Nota:
Se nenhum 4 é bastante difícil de codificar, então apenas nenhum 1,2 e 3 em uma EA.
Se nenhum 4 e 3 é difícil, então apenas 1 e 2 em uma EA
Se ainda assim for difícil, basta criar o 1 e o 2 separadamente.
Seria muito grato se alguém pudesse me fornecer o acima mencionado.
Obrigado de antemão
Olá a todos ... sou novo no FX e EA. Eu tentei encontrar um EA para "fechar todas as vendas" ou "fechar todas as compras" quando atingido o alvo, mas não consegui encontrar. Encontrei apenas fechar todas as vendas ou todas as compras sem o "HIT TARGET ou PROFIT". É possível se alguém pudesse me ajudar a criar 1 EA com as características abaixo:-
1)Fechar todas as vendas se o lucro atingir a meta X.
2)Fechar todas as compras se o lucro atingir a meta X.
3)Incluir trailing stop (se possível, se não houver problema).
4) Não fechar se o nível de patrimônio ou margem for inferior a X % se fechar todas as compras ou fechar todas as vendas (se possível, se não houver problema)
Nota:
Se nenhum 4 é bastante difícil de codificar, então apenas nenhum 1,2 e 3 em uma EA.
Se nenhum 4 e 3 é difícil, então apenas 1 e 2 em uma EA
Se ainda assim for difícil, basta criar o 1 e o 2 separadamente.
Seria muito grato se alguém pudesse me fornecer o acima mencionado.
Obrigado de antemãoOlá Pipsmonitor,
Talvez tenha encontrado algo aqui nesta página https://www.mql5.com/en/forum/181179 também fez uma busca de óculos na barra de cabeçalho do fórum usado fechado sobre o lucro encontrado alguns lá você pode ser capaz de usar, também pode tentar uma busca de trailing Eas, conhecer um Ema trailing e BBand parar de trailing Ea.
Hi,
Estou tentando fundir estes dois códigos, mas tenho problemas com ele.
Preciso que quando uma ordem pendente é preenchida, a outra deve ser cancelada.
Obrigado por sua disponibilidade.
int pending =0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
opened++;
else pending++;
}
if (opened>0 && pending>0)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)
OrderDelete(OrderTicket());
}
} [/PHP]
[PHP] extern int Magic = 68415;
extern int Orario_Inizio = 0;
extern int Orario_Fine = 6;
extern int Buffer = 0;
extern double Lotti = 0.1;
extern int TakeProfit = 10;
extern int StopLoss = 50;
double Massimo;
double Minimo;
int BarCount;
int BarStart;
int BarShift;
double MinLot;
double LotSize;
int i;
int ticket;
string Status;
string BuyStatus1;
string SellStatus1;
double Range;
string CommentoRange;
double pipMultiplier = 1;
int init()
{
}
int start()
{
if (Digits==3 || Digits==5)
{pipMultiplier = 10;}
else {pipMultiplier = 1; }
double TakeProfit1 = TakeProfit*Point*pipMultiplier;
double StopLoss1 = StopLoss*Point*pipMultiplier;
double Buffer1 = Buffer*Point*pipMultiplier;
double StopLossPrice = NormalizeDouble(StopLoss1,Digits);
double TakeProfitPrice = NormalizeDouble(TakeProfit1,Digits);
double BufferPrice = NormalizeDouble(Buffer1,Digits);
//CALCOLA LE BARRE DEL RANGE
if(Orario_Inizio>Orario_Fine)
{
BarCount=24+Orario_Fine-Orario_Inizio;
}
if(Orario_Inizio<Orario_Fine)
{
BarCount=Orario_Fine-Orario_Inizio;
}
//CALCOLA IL MASSIMO E IL MINIMO DEL RANGE
if(Hour()>=Orario_Fine)
{
BarStart=Hour()-Orario_Fine;
BarShift=BarStart+BarCount;
Minimo=iLow(NULL,PERIOD_H1,BarStart);
Massimo=0;
for(i=BarStart;i<=BarShift;i++)
{
Massimo=MathMax(Massimo,iHigh(NULL,PERIOD_H1,i));
Minimo=MathMin(Minimo,iLow(NULL,PERIOD_H1,i));
Range=(Massimo-Minimo)/Point;
}
}
else
{
Massimo=0;
Minimo=0;
return(0);
}
//CONTROLLA SE E' L'ORARIO PER POTER TRADARE
if(Hour()==Orario_Fine && OrdersTotal()<2)
{
//CONTROLLA SE IL MASSIMO E' STATO ROTTO. CONDIZIONE BUY
double OpenPriceBuy = NormalizeDouble((Massimo+BufferPrice),Digits);
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lotti,OpenPriceBuy,0,OpenPriceBuy-StopLossPrice,OpenPriceBuy+TakeProfitPrice,NULL,Magic,0,Blue);
//CONTROLLA SE IL MINIMO E' STATO ROTTO. CONDIZIONE SELL
double OpenPriceSell = NormalizeDouble((Minimo-BufferPrice),Digits);
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lotti,OpenPriceSell,0,OpenPriceSell+StopLossPrice,OpenPriceSell-TakeProfitPrice,NULL,Magic,0,Red);
if (ticket != -1)
return(0);
}
}