Discussão do artigo "Aplicação do método de Monte Carlo para otimizar estratégias de negociação"
Функция setks() вычисляет массив прибылей сделок, исходя из истории торговли.
bool setks(double &k[]) { if(!HistorySelect(0,TimeCurrent())) return false; uint nhd=HistoryDealsTotal(); int nk=0; ulong hdticket; double capital=TesterStatistics(STAT_INITIAL_DEPOSIT); long hdtype; double hdcommission,hdswap,hdprofit,hdprofit_full; for(uint n=0;n<nhd;++n) { hdticket=HistoryDealGetTicket(n); if(hdticket==0) continue; if(!HistoryDealGetInteger(hdticket,DEAL_TYPE,hdtype)) return false; if(hdtype!=DEAL_TYPE_BUY && hdtype!=DEAL_TYPE_SELL) continue; hdcommission=HistoryDealGetDouble(hdticket,DEAL_COMMISSION); hdswap=HistoryDealGetDouble(hdticket,DEAL_SWAP); hdprofit=HistoryDealGetDouble(hdticket,DEAL_PROFIT); if(hdcommission==0.0 && hdswap==0.0 && hdprofit==0.0) continue; ++nk; ArrayResize(k,nk,NADD); hdprofit_full=hdcommission+hdswap+hdprofit; k[nk-1]=1.0+hdprofit_full/capital; capital+=hdprofit_full; } return true; }
O destaque pressupõe que algumas negociações de fechamento com lucro zero não estão, de alguma forma, incluídas na amostra, enquanto algumas negociações de abertura estão.
Tente DEAL_ENTRY.
O swap e a comissão precisam ser calculados ao analisar as negociações de Monte Carlo? Eles não têm valor sistêmico.
Eu recomendaria usar a proporção dos preços de abertura e fechamento como lucro. Aqui podemos discutir "os lotes devem ser levados em conta?".
Por um lado, supõe-se que as transações sejam independentes.
Por outro lado, é difícil imaginar um TS em que as transações sejam independentes.
Por exemplo, se você já tiver uma posição aberta, não poderá ignorar essa circunstância ao decidir fazer uma negociação.
Acontece que o monte carlim é um valor não aleatório. Ou será que eu não entendi alguma coisa?
O destaque pressupõe que algumas negociações de fechamento com lucro zero não são, de alguma forma, incluídas na amostra, enquanto algumas negociações de abertura são.
Tente DEAL_ENTRY.
Para simplificar o modelo, consideramos como negociações apenas aquelas que afetam a curva de capital.
O swap e a comissão precisam ser calculados ao analisar as negociações de Monte Carlo? Eles não têm um valor sistêmico.
Depende do dispositivo EA, eu acho. Se seu valor for pequeno, não afetará o cálculo do critério de otimização; se for grande, negligenciá-lo distorcerá os resultados da otimização.
fxsaber:
Eu recomendaria usar a proporção dos preços de abertura e fechamento como lucro. Aqui podemos discutir o tópico "os lotes devem ser levados em conta?".
O que você está falando é semelhante ao que chamei de lucratividade no artigo sobre risco. Nesse artigo, estamos estudando o EA por dentro, enquanto aqui o consideramos como um dado - uma "caixa preta" - e o gerenciamento do tamanho da negociação é parte integrante dele. Isso significa que a distribuição dos lucros pode ser muito diferente da distribuição dos retornos. Portanto, se nos basearmos apenas nos retornos, estaremos otimizando um EA muito diferente.
Por um lado, presume-se que as transações são independentes.
Por outro lado, é difícil imaginar um TS em que as transações sejam independentes.
Por exemplo, se você já tiver uma posição aberta, não poderá ignorar essa circunstância ao decidir fazer uma negociação.
Acontece que o monte carlim é um valor não aleatório. Ou não estou entendendo alguma coisa?
Obviamente, a independência das negociações é uma idealização. Se duas negociações não se sobrepuserem muito no tempo, podemos considerá-las independentes, pois os preços na primeira aproximação podem ser considerados como um processo aleatório com incrementos independentes. Ou seja, a independência e a aleatoriedade são determinadas pelo preço de saída da transação. Para fins de definição, uma negociação aqui é o que no MT4 é chamado de posição. Já tentei fazer algumas considerações sobre o tópico da independência das negociações no artigo.
Mas as outras negociações que não foram abertas porque já estavam abertas - o que acontece com elas? E as negociações que abriram, de acordo com os sinais da mesma lógica de toro, mas que tiveram a sorte de não haver outras negociações abertas no momento do sinal de negociação - elas são especiais?
É aqui que reside uma certa contradição. Talvez seja razoável montar os sinais de negociação. Eles realmente não dependem uns dos outros, pois são apenas uma função do preço.
Mas as outras negociações que não abriram porque já estavam abertas - o que acontece com elas? E as negociações que foram abertas, de acordo com os sinais da mesma lógica de toro, mas que tiveram a sorte de não haver outras negociações abertas no momento do sinal de abertura - elas são especiais?
É aqui que reside uma certa contradição. Talvez seja razoável montar sinais de negociação. Eles realmente não dependem uns dos outros, pois são apenas uma função do preço.
Obrigado pelo artigo, mas não vi os testes no forward, pois o objetivo principal era melhorar a robustez do TS na nova amostra, introduzindo novos critérios de otimização
Mas há muito o que pensar.
não foram realizados testes no forward, pois o objetivo principal era melhorar a estabilidade do TS em uma nova amostra, introduzindo novos critérios de otimização
Você está certo, está faltando. Mas, para obter um resultado significativo, seria necessário realizá-lo em um número suficientemente grande de intervalos de tempo, símbolos e EAs (lei dos grandes números). Não havia a intenção de aumentar muito o tamanho do artigo.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Aplicação do método de Monte Carlo para otimizar estratégias de negociação foi publicado:
Antes de lançar um robô em uma conta de negociação, geralmente nós realizamos testes e otimizações no histórico das cotações. No entanto, surge uma pergunta razoável: como os resultados passados podem nos ajudar no futuro? O artigo descreve a aplicação do método de Monte Carlo para construir critérios personalizados para a otimização da estratégia de negociação. Além disso, são considerados os critérios de estabilidade do EA.
Vamos explicar tudo acima pelo gráfico. Ele mostra várias curvas de capital. Cada um deles é determinado pela sequência gerada de negociações. Eu marquei as curvas com cores diferentes para uma maior conveniência. Na verdade, o número deles é muito maior — várias dezenas de milhares. Para cada um deles, nós calculamos os parâmetros necessários e fazemos conclusões estatísticas com base em sua totalidade. Obviamente, a mais importante dessas características é o lucro final.

Outras abordagens para a formalização probabilística e a posterior modelagem operacional do EA também são possíveis. Por exemplo, em vez de sequências de negociações, nós podemos simular sequências de preços e estudar os lucros agregados que o EA obteve sobre eles. O princípio de gerar as séries de preços pode ser selecionada dependendo de uma tarefa que você queira resolver. No entanto, esse método requer muito mais recursos de computação. Além disso, a MetaTrader atualmente não fornece formas regulares de usá-lo com um EA aleatório.Autor: Aleksey Nikolayev