Pergunte! - página 97

 

Problemas ainda

Olá a todos,

Obrigado Big Be por dar uma olhada na minha EA. Meu RSI estocástico está sem o sublinhado. Quando eu tentei com ele, ele me deu um erro. Mas, eu descobri algumas coisas.

1) Quando eu tento o Strategy Tester nos prazos mais baixos, ele parece funcionar mais rápido. Uma vez que chego ao H1 ou mais, ele fica muito lento. Presumo que isso se deva ao fato de que ele tem que fazer muita verificação a cada tique. Há algo que possa ser feito a respeito disso? Eu gostaria de otimizá-lo para o H4 e possivelmente até diariamente.

2) Ainda há o problema de o primeiro comércio acontecer antes de uma verdadeira cruz.

3) Quando olho para meus testes de retaguarda, parece que perco completamente alguns negócios. Isso é porque meus dados são defeituosos/desajustados? Verifiquei um lugar onde a New Digital explica como obter os dados para o corretor que estamos usando, indo ao histórico e clicando duas vezes sobre eles... depois abrindo cada período de tempo e segurando a "Page Up" até chegar ao final, mas, parece que não ajudou.

A parte do programa que lhe enviei é apenas uma parte de 3. Eu ainda tenho que adicionar as outras 3 partes nele. Se eu não conseguir que o Testador de Estratégia seja mais rápido, nunca saberei se é uma idéia lucrativa.

Quaisquer idéias ou sugestões serão úteis.

Cumprimentos,

Putz

 

Estudei o que fiz para um Índice de Qualidade de Volatilidade EA I fixado, Kiko_v2.

Veja o post 319 aqui:

https://www.mql5.com/en/forum/general

Divirta-se,

Grande Seja

 

Vq

Oi Big Be

Obrigado pela idéia. Trabalharei nisso neste fim de semana...e se tudo funcionar fantástico...devo estar rico no próximo fim de semana...hahaha

Putz

 

Ajuda...por favor

Olá Big Be e todos os programadores,

Big Be, estudei sua volatilidade EA mas agora parece que afinal não era um problema meu. Eu estava usando o IBFX para meus testes e não tinha nada além de problemas. Finalmente desisti e baixei o Alpari e isso funciona muito melhor.

Pelo menos agora não leva dias para fazer um backtest nos meus EA. Então comecei tudo de novo e reconstruí meu programa a partir do zero e ele não faz nenhum pedido.

O programa é basicamente o EMS Fresh Cross da EMSguru, mas eu quero que ele seja baseado no Stochastic RSI e quando StochRSI cruzar a linha 50. Deixei quase tudo como por codersguru, incluindo variáveis para facilitar o isolamento do problema.

Acredito que o problema está na função do iCustom, pois essa é basicamente a única mudança que fiz no programa e ele não aceita nenhuma ordem. Alguém pode olhar para ele e ver se consegue encontrar o meu erro. Há duas semanas estou tentando fazer com que isto funcione e isto está me deixando louco.

Coloquei algumas notas precedidas por //

Obrigado

Putz

#property copyright "Putz FX

#property link "http://www.putzfx.com"

//---- input parameters

extern double TakeProfit=130;

extern double StopLoss = 60;

extern double Lots=1;

extern double TrailingStop=30;

extern double TimeFrame= 60;

extern bool ExitOnCross = true;

extern int MagicNumber = 444444;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

int FreshCross ()

{

//This was added in based on what I could figure from Big Be.

if (Volume[0] != 1) return(0);

//what is the difference between using "Null" or "Symbol()" in iCustom as

//neither one works.

double SEma, LEma,SEmaP, LEmaP;

//The following 4 lines have been changed from the original

SEma = iCustom(Symbol(),PERIOD_H1,"Stochastic RSI",28,55,9,0,0);

LEma = 50;

SEmaP = iCustom(Symbol(),PERIOD_H1,"Stochastic RSI",28,55,9,0,1);

LEmaP = 50;

//Don't work in the first load, wait for the first cross!

//some changes were done to the below two lines as he was comparing the

//return value with the Ask or Bid and Close values

if(SEma>LEma && SEmaP < LEmaP) return(1); //up

if(SEma LEmaP) return(2); //down

return (0); //not changed

}

//+------------------------------------------------------------------+

//| Check Open Position Controls |

//+------------------------------------------------------------------+

int CheckOpenTrades()

{

int cnt;

int NumTrades; // Number of buy and sell trades in this symbol

NumTrades = 0;

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol() != Symbol()) continue;

if ( OrderMagicNumber() != MagicNumber) continue;

if(OrderType() == OP_BUY ) NumTrades++;

if(OrderType() == OP_SELL ) NumTrades++;

}

return (NumTrades);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

int cnt, ticket, total;

double TP;

if(Bars<100)

{

Print("bars less than 100");

return(0);

}

/* if(TakeProfit<10)

{

Print("TakeProfit less than 10");

return(0); // check TakeProfit

}

*/

int isCrossed = 0;

isCrossed = FreshCross ();

total = CheckOpenTrades();

if(total < 1)

{

if(isCrossed == 1)

{

TP = 0;

if (TakeProfit > 0) TP = Ask + TakeProfit * Point;

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,TP,"EMA_CROSS",MagicNumber,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

if(isCrossed == 2)

{

TP = 0;

if (TakeProfit > 0) TP = Bid - TakeProfit * Point;

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,TP,"EMA_CROSS",MagicNumber,0,Black);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());

}

else Print("Error opening SELL order : ",GetLastError());

return(0);

}

return(0);

}

total = OrdersTotal();

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//OrderPrint();

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

if(OrderType()==OP_BUY) // long position is opened

{

// should it be closed?

/* REMOVED - Trailling stop only close */

if(ExitOnCross && isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Black); // close position

return(0); // exit

}

/**/

// check for trailing stop

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

else // go to short position

{

// should it be closed?

/* REMOVED - Trailling stop only close */

if(ExitOnCross && isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Black); // close position

return(0); // exit

}

/* */

// check for trailing stop

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+
 

Você já verificou que sua LER Stochastic RSI leva 3 parâmetros de entrada?

(O que eu observei leva 4)

 

que ajuda

Oi Ralph,

Obrigado por sua ajuda. O meu tem dois amortecedores, mas 4 parâmetros de entrada. Eu tentei com 4 parâmetros e isso não funcionou, mas depois eu tentei com 2 e recebi um pedido. Agora eu só tenho que resolver o resto. Obrigada por me tirar do lugar.

Putz

 

Pergunta noobie de noobie!

post mudou para cá: https://www.mql5.com/en/forum

Arquivos anexados:
buy.jpg  7 kb
 

Alguém me ajuda?

olá a todos

tudo que você conhece o indicador Pivot_Monday_fixed

preciso de algumas mudanças neste indicador

quero apenas a linha pivot e outras quatro linhas

2 azul Pivot +20 e Pivot + 40

2 Pivot vermelho - 20 e Pivot - 40

apenas 5 linhas

obrigado

Arquivos anexados:
 

Pergunta idiota

Alguém pode me dizer a maneira mais rápida de converter um arquivo mq4 da EA para um arquivo ex4?

Sei que ele aparece em arquivos de especialistas como ex4 depois de rodar uma vez no mt4, mas esta é a única maneira de fazer isso?

Obrigado de antemão.

 
fxgrm:
Alguém pode me dizer a maneira mais rápida de converter o arquivo mq4 de um EA para um arquivo ex4?

Sei que aparece em arquivos de especialistas como ex4 depois de rodar uma vez no mt4, mas esta é a única maneira de fazer isso?

Agradecemos antecipadamente

Abra seu arquivo .mq4 no MetaEditor, depois clique em "Compile" e o arquivo .ex4 é criado.