![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
Eu não gosto de ter pedidos sem SL ou sem TP e ao usar o superclose(), não há TP até que o Trailing seja ativado. Portanto, pergunto por que não definir um takeprofit inicial (antes do superclose set() para ser fixado em caso de quebra do computador. É por isso que propus duas vezes o valor da variável takeprofit.
Também para iniciar no plano de teste, os parâmetros são:
Parada: 10 a 30?
Takeprofit: 20 a 100?
TimeFrames: M1 M15 H4 Diário Semanal...
Moedas: 12 da seleção Holyguy7? somente aqueles com um pouco de spread (<=5)?
Essas são apenas sugestões.Ok, estou entendendo o que você quer dizer agora. É bastante fácil de se fazer. Eu uso um servidor dedicado com 100% de tempo de atividade, então eu negligencio pensar em coisas como essa.
E aqui estão algumas notas sobre o superclose(). Eu esperava ter a capacidade de rastrear os preços do TS pelo número do ticket, para que você possa definir o MaxTrades para mais de 1 E ser capaz de rastrear por menos de 10 pips.
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==ID){//Pulls in order that meets the criteria for processing
int num=0;int pos=0;
for(int b=0;b<21;b++){// this (loopB) compares the ticket# of the selected order against the number stored in the ticket array
if(tsTicket==OrderTicket() ){
num++; pos=b;// if ticket numbers match, pos is the position in the array where the trailing data is stored
Print("(",pos,") Ticket ",tsTicket[pos]," found. SL is ",tsPrice[pos]);
break;
}
}
if(num==0){ // if the loopB did not find a matching ticket number it is time to initialize the data
for(int j=0;j<21;j++){
if(tsTicket[j]==0){// this is looking for the earliest instance within the array to store the data
pos=j;
break;
}
}
tsTicket[pos]=OrderTicket();// setting the ticket number
tsok[pos]=false;// this is to determine when trailing kicks in
Print("(",pos,") New ticket initialized = ",tsTicket[pos]);
}
if (OrderType()==OP_SELL) {
if (!tsok[pos] && (OrderOpenPrice()-Ask>=TSactivation*Point || TSactivation==0 ) ) {// if the trailing factor is false, but it has hit the activation point continue
tsPrice[pos]=Ask+TrailPips*Point;// this is the new trailinf stop price
tsok[pos]=true;// it's ok to proceed with trailing stop
if(TrailPips>8){// if this distance from the current price to the new stop, then modify the order.
ModifyStopLoss(Ask+TrailPips*Point);//modifies order
}
}
if (tsok[pos] && Ask+TrailPips*Point < tsPrice[pos] ){//if the position is gaining in profit
tsPrice[pos]=Ask+TrailPips*Point;
if(TrailPips>8){
ModifyStopLoss(Ask+TrailPips*Point);
}
}
if (tsok[pos] && Ask >= tsPrice[pos] ){// if the postion hits the stop price
CloseOrder(2);
Print("Order ",tsTicket[pos]," Closed from TS");
}
}
if (OrderType()==OP_BUY) {// reverse of SELL
if(!tsok[pos] && (Bid-OrderOpenPrice() >= TSactivation*Point || TSactivation==0 ) ) {
tsPrice[pos]=Bid-TrailPips*Point;
tsok[pos]=true;
if(TrailPips>8){
ModifyStopLoss(Bid-TrailPips*Point);
}
}
if (tsok[pos] && Bid-TrailPips*Point > tsPrice[pos] ){
tsPrice[pos]=Bid-TrailPips*Point;
if(TrailPips > 8){
ModifyStopLoss(Bid-TrailPips*Point);
}
}
if (tsok[pos] && Bid <= tsPrice[pos] ){
CloseOrder(1);
Print("Order ",tsTicket[pos]," Closed from TS");
} } } } }
for(i=0;i<21;i++){// this searches the array for ticket numbers that are now obsolete due to an order that has closed
if(tsTicket>0){
bool found=false;
for(b=0;b<OrdersTotal();b++){
OrderSelect(b,SELECT_BY_POS);
if(tsTicket==OrderTicket()){
found=true;
break;
}
}
if(!found){// if there are matching ticket numbers in the trade pool and the array then nothing happens
tsTicket=0;tsPrice=0;tsok=false;// if there is an obolete ticket the the data is reset. And the next new ticket data can occupy this space
Print("Array pos ",i," Cleaned");
} } } }Aqui está o EA com a mudança para o TP após o UseClose é verdade. Ele irá dobrar o TP por razões de segurança. Obrigado Jo!
Eu esperava testar o Profit Generator 2.4. Ele não tem colocado nenhuma negociação de 630GMT.....Hastou colocando qualquer outra negociação para ninguém. TF15 $/CHT, £/$, Euro/$...Por favor, me avise, pois acho que este é um bom EA em princípio.
Você terá menos negócios porque o primeiro critério é que a barra atual tem que ser maior do que o valor da LongBar em comprimento. Eu recomendaria uma vela menor no TF inferior.
ok, mas como novato vou esperar que alguém mais experiente dê limites altos e baixos a diferentes parâmetros.
Atualmente estou testando 2,4 em pré-ajustes de Holyguy7 e a partir de 1:00 da manhã só fiz 3 negócios (1:10 venda usdcad no BAD diário; 7:29 e 14:29 gbpusd no H1 primeiros 28 pips e segundo realmente perdedor). Parece ser normal, alguém tem os mesmos resultados?
Além disso, para permitir testes em vários prazos, mudei três linhas na versão 2.6:
1 -
identificação int. externa;
torna-se
ID_BASE=100000; para dar um número a PG_2.6 (aqui 1)
2 - Adicionei a próxima linha logo abaixo de "int Bar;"
int ID;
3 - Eu adicionei a função init()
int init(){
ID=ID_BASE+Periodo(); retorno(0);
}
Assim, em um gráfico diário o número mágico será 101440 e aparecerá no comentário do comércio. Será mais fácil analisar os resultados para cada período de tempo e tipo de parâmetro. Eu ainda não o testei, mas deve funcionar.
e para um gráfico específico você terá uma identificação fixa e não um número aleatório.
Além disso, talvez pudéssemos adicionar um takeprofit inicial usando a função superclose. Apenas em caso de falha do computador.
PS: Fiz outras mudanças que devo apagar antes de postar. me diga se estou interessado.Ótima idéia! A única coisa a ter em mente é se você vai executar testes diferentes no mesmo par e TF para mudar o ID base. Eu acrescentei essas mudanças, mas fiz uma pequena alteração. ...porque o Período pode mudar da variável "period" (diferente do gráfico), eu fiz isso em vez disso:ID=ID_BASE+P(); return(0);
O P() retorna o período real em uso pelo programa. Grande idéia... com que outras mudanças você já jogou?
Aqui está 2.6.2.
nada mais desde o último post sobre isto (gbpusd ainda perdedor) mas estou correndo no H1 e diariamente e mantive longbar=15.
vamos esperar esta noite (em geral para pares de jpy)
alguém para me sugerir parâmetros de teste (SL & TP)?
Não usarei limite de horas nas principais moedas e M1, M5, M15, H1 e H4.
nada mais desde o último post sobre isto (gbpusd ainda perdedor) mas estou correndo no H1 e diariamente e mantive longbar=15.vamos esperar esta noite (em geral para pares de jpy)
Tenho notado que o GBPUSD parece funcionar melhor no gráfico diário:
TP: 40
SL: 30
Sem filtro de tempo
Longbar: 10
Apenas parece mais confiável. EURUSD e USDCHF parecem se sair melhor no gráfico H1 com barra longa aos 15 anos e com o cronômetro ligado.
Estou lutando agora mesmo, já que os principais pares de moedas estão me dando encaixes com este EA. Alguém foi bem sucedido nos principais pares de moedas??? Em caso afirmativo, por favor, poste suas descobertas.
Hi
HolyGUY,
Qual é o progresso hoje nesta nova EA
Hi
HolyGUY,
Qual é o progresso hoje nesta nova EABem, houve algum retrocesso a partir de ontem por causa de alguns dos principais pares de moedas. Ainda aumentou mais de 20% durante a semana e atualmente o sistema NÃO tem nenhuma negociação aberta.
Publicarei meus resultados dentro de algumas horas. Eu tinha o GBPUSD no cronograma H1, mas acredito que ele é mais confiável no cronograma D1 como os outros são. Manterei vocês informados.