Há um botão SRC no painel de edição, o código é colorido automaticamente ;)
Quanto ao código, se ele usa if (OrderSymbol() == Symbol()...) então se (OrderSymbol()!= Symbol()) continuar; não precisamos de um ou de outro.
para (int k = 0; k < OrderTotal(); k++) é melhor substituir isto por
para (int k = OrderTotal()-1; k >=0 ; k--), é mais seguro
Eu escrevi desta maneira
if(NumberOfPositionsSell(Symbol())==1 && NumberOfPositionsBay_otl(Symbol())==1 &&GetOrderLotsOtlBay(Symbol())==start_Lot*2 &&GetOrderLotsSell(Symbol())==start_Lot)
{
for (int kk = OrdersTotal()-1; kk >=0 ; kk--)
{
if (OrderSelect(kk,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP ) {
tp_buy_otl=NormalizeDouble(b+((((2*Point)+spred+(b+Point+spred-GetOrderPriceSell(Symbol()))/Point)/2)*Point), Digits);
sl_buy_otl=NormalizeDouble(GetOrderPriceSell(Symbol()), Digits);
OrderModify(OrderTicket(), NormalizeDouble(b+Point+spred, Digits),sl_buy_otl,tp_buy_otl,0);
Alert("tp_buy_otl = ",DoubleToStr(tp_buy_otl, Digits)+"\n"+"sl_buy_otl = ",DoubleToStr(sl_buy_otl, Digits)+"\n"+" цена открытия бай стоп = ", DoubleToStr(b+Point+spred, Digits)+"\n"+"OrderSymbol() = ",OrderSymbol()+"\n"+"OrderType() = ",OrderType());
}
if (OrderSymbol() == Symbol() && OrderType() == OP_SELL ) {
sl_sell_otl=NormalizeDouble(b+spred+Point, Digits);
OrderModify(OrderTicket(),OrderOpenPrice(), sl_sell_otl,OrderTakeProfit(),0);
}
}
}
}
а в алерте почемуто OrderSymbol()==GBPUSD посмотрите на скин
да и открытый селл он модифицировал а отложенный нет
Assim que retirei a ordem pendente para gbpusd e retirei a EA da mesma, a ordem para o euro foi modificada imediatamente
Olá a todos. Pessoal, vocês podem me dizer se este teste de um EA durante 5 anos pode ser considerado bem-sucedido. Ou é a rentabilidade pequena e o drawdown grande. Eu gostaria de ouvir minha opinião, os dados do testador são muito diferentes da conta real (testei-os no terminal Alpari)? Estou mostrando os resultados:
Olá a todos. Pessoal, vocês podem me dizer se este teste de um EA durante 5 anos pode ser considerado bem-sucedido. Ou a rentabilidade é pequena e o drawdown é grande. Eu gostaria de ouvir minha opinião, os dados do testador são muito diferentes da conta real (testei-os no terminal Alpari)? Estou mostrando os resultados:
Período
quantia
rentabilidade
levantamento de crédito
valor da transação
01.06.2012-30.05.2013
1490.63
1.7
37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23
1.48
25.82% (448.34)
231
01.06.2010-30.05.2011
1677.66
1.62
53.26% (880.57)
213
01.06.2009-30.05.2010
1664.33
1.68
32.16% (560.68)
208
01.06.2008-30.05.2009
1817.72
1.48
43.73% (472.15)
233
Isto é uma grande desvantagem e a rentabilidade não é suficiente... Qual é o valor do saque dos fundos?
É uma grande desvantagem e a rentabilidade é um pouco baixa... Qual é o valor do saque dos fundos?
Pode ser que assim seja:
Saque absoluto: 2,40 USD.
Máximo: 9,08 USD
Relativo: 0,78%
Máx. de fundos: 97,81% ))
O drawdown relativo é indicado. O saque absoluto é mais ou menos o mesmo em porcentagens e dinheiro. Os dados do testador diferem muito da conta real? Então o que devo fazer com o Expert Advisor - devo colocá-lo na conta real (parece funcionar bem por 3 semanas na conta demo) ou colocá-lo na prateleira até que haja novas idéias para sua melhoria?
Deixe a demonstração funcionar por pelo menos meio ano. O testador não mostra o sorteio por meios, mas você pode vê-lo em tempo real. O que tenho mostrado - trabalho sem paradas, drawdowns com excesso de vista. A vida das contas anteriores - 2-3 meses, esta está viva desde agosto, vou ver quanto tempo durará ))))
Se você tem experiência, a partir de que parâmetros você deve começar: rentabilidade mínima e drawdown? Se a rentabilidade for inferior a 1,5% e o drawdown for superior a 50% em 5 anos, então meu consultor especializado deve ser colocado na prateleira até tempos melhores.
Estou usando meu próprio indicador no EA, vejo visualmente durante os testes que ele está crescendo e de acordo com as condições que ele deve abrir a compra, mas isso não acontece.
Vejo os seguintes erros no registro (tenho dois tipos. Estou mostrando-os um por um):
TestGenerator: erro de dados incomparável (limite de volume 372 em 2013.12.11 21:00 excedido)
TestGenerator: erro de dados incomparável (valor baixo 1.33097 em 2013.09.12 19:45 não é alcançado a partir do menor prazo, preço baixo 1.33105 desajustes)
Talvez haja algumas peculiaridades com o funcionamento de indicadores personalizados? Há dois meses eu ando mexendo com esta EA e estou adiando indefinidamente.
Baixe o histórico completo do símbolo que está sendo testado. Não é a EA que está causando o erro, é a história "tortuosa".
Erros 129.138 ocorrem de vez em quando em uma EA. O problema só é resolvido após o reinício do terminal.
Quero adicionar a função de Informações de Mercado para atualizar ofertas e solicitações e depois verificar.
É possível chamar artificialmente os erros 129.138?
Erro 129 - preço errado
Erro 138 - novos preços (requote)
Antes de enviar um pedido comercial, obtenha os preços mais recentes, seja atualizando o ambiente comercial usando o RefreshRates(), ou diretamente do MarketInfo()
Não se esqueça disso:
Conselheiros especializados e roteiros trabalham com sua própria cópia de dados históricos. A cópia dos dados sobre o símbolo atual é criada no primeiro lançamento do Expert Advisor ou roteiro.
Cada vez que o Expert Advisor ou roteiro é executado em seguida, a cópia inicialmente criada é atualizada. Enquanto o Expert Advisor ou roteiro estiver em execução, um ou mais tiquetaques novos podem chegar, de modo que os dados podem ficar desatualizados.
Antes de enviar um pedido comercial, obtenha os preços mais recentes atualizando o ambiente comercial usando o RefreshRates(), ou diretamente do MarketInfo()
Não se esqueça disso:
Conselheiros especializados e roteiros trabalham com sua própria cópia de dados históricos. A cópia dos dados sobre o símbolo atual é criada no primeiro lançamento do Expert Advisor ou roteiro.
Cada vez que o Expert Advisor ou roteiro é executado em seguida, a cópia inicialmente criada é atualizada. Enquanto o Expert Advisor ou roteiro estiver em execução, um ou mais tiquetaques novos podem chegar, de modo que os dados podem ficar desatualizados.
Muito obrigado!
Agora eu sei qual é o problema.
Eu o usei para comprar:
if (iClose(Symbol(),Period(),0) <= MA_6_t)
{
Opn_B=true;
}
Tanto quanto sei, comprar é pedir, mas iClose(Symbol(),Period(),0) aceita preços de licitação. Esta pode ser a razão do erro.
Agora eu uso a seguinte combinação:
double pa=MarketInfo(Symbol(),MODE_ASK);
if (pa <= MA_6_t)
{
Opn_B=true;
}
Mas então tenho uma pergunta, porque a EA não é uma EA baseada em pips, o preço esteve na zona de compra por muito tempo e atualizado a cada tique.
Por que o comércio não é aberto? Acontece que a EA pende no erro e não vê mais movimento de preços?
Há um botão SRC no painel de edição, o código é colorido automaticamente ;)
Quanto ao código, se ele usa if (OrderSymbol() == Symbol()...) então se (OrderSymbol()!= Symbol()) continuar; não precisamos de um ou de outro.
para (int k = 0; k < OrderTotal(); k++) é melhor substituir isto por
para (int k = OrderTotal()-1; k >=0 ; k--), é mais seguro
Eu escrevi desta maneira
Assim que retirei a ordem pendente para gbpusd e retirei a EA da mesma, a ordem para o euro foi modificada imediatamente
Assim que retirei a ordem pendente sobre gbpusd e retirei a EA da mesma, a ordem sobre euro foi modificada imediatamente
Olá a todos. Pessoal, vocês podem me dizer se este teste de um EA durante 5 anos pode ser considerado bem-sucedido. Ou é a rentabilidade pequena e o drawdown grande. Eu gostaria de ouvir minha opinião, os dados do testador são muito diferentes da conta real (testei-os no terminal Alpari)? Estou mostrando os resultados:
Olá a todos. Pessoal, vocês podem me dizer se este teste de um EA durante 5 anos pode ser considerado bem-sucedido. Ou a rentabilidade é pequena e o drawdown é grande. Eu gostaria de ouvir minha opinião, os dados do testador são muito diferentes da conta real (testei-os no terminal Alpari)? Estou mostrando os resultados:
Isto é uma grande desvantagem e a rentabilidade não é suficiente... Qual é o valor do saque dos fundos?
Ou poderia ser:
Relativo: 0 ,78%)
Max Money: 97,81% ))
É uma grande desvantagem e a rentabilidade é um pouco baixa... Qual é o valor do saque dos fundos?
Pode ser que assim seja:
Relativo: 0,78%
Máx. de fundos: 97,81% ))
Estou usando meu próprio indicador no EA, vejo visualmente durante os testes que ele está crescendo e de acordo com as condições que ele deve abrir a compra, mas isso não acontece.
Vejo os seguintes erros no registro (tenho dois tipos. Estou mostrando-os um por um):
TestGenerator: erro de dados incomparável (limite de volume 372 em 2013.12.11 21:00 excedido)
TestGenerator: erro de dados incomparável (valor baixo 1.33097 em 2013.09.12 19:45 não é alcançado a partir do menor prazo, preço baixo 1.33105 desajustes)
Talvez haja algumas peculiaridades com o funcionamento de indicadores personalizados? Há dois meses eu ando mexendo com esta EA e estou adiando indefinidamente.
Erros 129.138 ocorrem de vez em quando em uma EA. O problema só é resolvido após o reinício do terminal.
Quero adicionar a função de Informações de Mercado para atualizar ofertas e solicitações e depois verificar.
É possível chamar artificialmente os erros 129.138?
Erro 129 - preço errado
Erro 138 - novos preços (requote)
Antes de enviar um pedido comercial, obtenha os preços mais recentes, seja atualizando o ambiente comercial usando o RefreshRates(), ou diretamente do MarketInfo()
Não se esqueça disso:
Conselheiros especializados e roteiros trabalham com sua própria cópia de dados históricos. A cópia dos dados sobre o símbolo atual é criada no primeiro lançamento do Expert Advisor ou roteiro.
Cada vez que o Expert Advisor ou roteiro é executado em seguida, a cópia inicialmente criada é atualizada. Enquanto o Expert Advisor ou roteiro estiver em execução, um ou mais tiquetaques novos podem chegar, de modo que os dados podem ficar desatualizados.
Erro 129 - preço incorreto
Erro 138 - novos preços (requote)
Antes de enviar um pedido comercial, obtenha os preços mais recentes atualizando o ambiente comercial usando o RefreshRates(), ou diretamente do MarketInfo()
Não se esqueça disso:
Conselheiros especializados e roteiros trabalham com sua própria cópia de dados históricos. A cópia dos dados sobre o símbolo atual é criada no primeiro lançamento do Expert Advisor ou roteiro.
Cada vez que o Expert Advisor ou roteiro é executado em seguida, a cópia inicialmente criada é atualizada. Enquanto o Expert Advisor ou roteiro estiver em execução, um ou mais tiquetaques novos podem chegar, de modo que os dados podem ficar desatualizados.
Muito obrigado!
Agora eu sei qual é o problema.
Eu o usei para comprar:
Tanto quanto sei, comprar é pedir, mas iClose(Symbol(),Period(),0) aceita preços de licitação. Esta pode ser a razão do erro.
Mas então tenho uma pergunta, porque a EA não é uma EA baseada em pips, o preço esteve na zona de compra por muito tempo e atualizado a cada tique.Agora eu uso a seguinte combinação:
Por que o comércio não é aberto? Acontece que a EA pende no erro e não vê mais movimento de preços?
Eu peguei o modelo para meu consultor especializado em https://c.mql5.com/mql4/book/mq4/experts/tradingexpert.mq4
Na sua opinião, devo acrescentar à função de tratamento de erros nesta EA uma verificação de 129 e 138 erros?
Se sim, como fazer isso?