Sistemas automáticos de Trading e Backtesting
16 mensagens
|Página 1 de 1
Sistemas baseados nos indicadores típicos nunca vão ser nada de especial, a não ser que se tenha sorte.
Os mercados são sistemas complexos não-lineares, para desenvolver uma estratégia automática de trading é preciso conhecer alguma matemática avançada.
É claro que para fazer trading manual não é preciso saber matemática, porque o cérebro consegue resolver equações muito complexas em tempo real!
Os mercados são sistemas complexos não-lineares, para desenvolver uma estratégia automática de trading é preciso conhecer alguma matemática avançada.
É claro que para fazer trading manual não é preciso saber matemática, porque o cérebro consegue resolver equações muito complexas em tempo real!
First rule of central banking: When the ship starts to sink, central bankers must bail like hell.
Luis39 Escreveu:O metatrader é gratuito? eu consegui instalar, mas quando tento correr um dos EA indicados lá não aparecem as barrinhas a moverem-se e o tempo a passar, testando o EA...será que estou a fazer algo de errado?
Tens bom remédio.
Parece que há um seminario hoje da parte deles de sistemas de trading agora as 7 da tarde.
- Mensagens: 1750
- Registado: 18/12/2009 18:54
- Localização: 16
Já agora, Supermann, ao dar uma olhada pelo código, parece-me que não se trata de código para entrada segundo cruzamento de médias móveis;
É antes de entrada quando o preço cruza em fecho a média móvel... penso eu?
(Se calhar foi só confusão na forma de expressão - em vez de "preço cruzar média móvel", disseste "cruzamento de médias móveis")
É antes de entrada quando o preço cruza em fecho a média móvel... penso eu?
(Se calhar foi só confusão na forma de expressão - em vez de "preço cruzar média móvel", disseste "cruzamento de médias móveis")
Já não ligo à automatização há muito tempo, mas já há alguns anos, a net estava cheia desses EAs para MT4 (sobretudo dos mais simples, mas também mais elaborados) - é uma questão de procurar;
Para pessoas com algumas bases (mesmo que poucas, que era o meu caso), com algum estudo são uma boa base para desenvolver versões customizadas para aquilo que pretendemos.
Como disse, hoje já não busco a automatizão total, até porque passei a um tipo de trading completamente discricionário, mas ainda assim guardo e uso alguns EAs e scripts que trabalhei a meu gosto, para me assitirem na gestão dos trades (fechar ou abrir trades, mover Stops com determinados critérios, gerir com MM a saída total ou parcial de posições, etc).
Para pessoas com algumas bases (mesmo que poucas, que era o meu caso), com algum estudo são uma boa base para desenvolver versões customizadas para aquilo que pretendemos.
Como disse, hoje já não busco a automatizão total, até porque passei a um tipo de trading completamente discricionário, mas ainda assim guardo e uso alguns EAs e scripts que trabalhei a meu gosto, para me assitirem na gestão dos trades (fechar ou abrir trades, mover Stops com determinados critérios, gerir com MM a saída total ou parcial de posições, etc).
Sim isso é a coisa mais fácil.
É super simples.
Um sistema de trading automático pode ser tão simples ou tão complexo quanto o queiras estando dependente apenas da tua capacidade de traduzir as tuas regras, para programação.
Esse que dás o exemplo é super simples.
Por exemplo, fica aqui o código para um cruzamento de médias móveis:
É super simples.
Um sistema de trading automático pode ser tão simples ou tão complexo quanto o queiras estando dependente apenas da tua capacidade de traduzir as tuas regras, para programação.

Esse que dás o exemplo é super simples.
Por exemplo, fica aqui o código para um cruzamento de médias móveis:
- Código: Selecionar todos
#define MAGICMA 20050610
extern double Lots = 0.1;
extern double MaximumRisk = 0.02;
extern double DecreaseFactor = 3;
extern double MovingPeriod = 12;
extern double MovingShift = 6;
//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//---- return orders volume
if(buys>0) return(buys);
else return(-sells);
}
//+------------------------------------------------------------------+
//| Calculate optimal lot size |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int orders=HistoryTotal(); // history orders total
int losses=0; // number of losses orders without a break
//---- select lot size
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcuulate number of losses orders without a break
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- return lot size
if(lot<0.1) lot=0.1;
return(lot);
}
//+------------------------------------------------------------------+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void CheckForOpen()
{
double ma;
int res;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//---- get Moving Average
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- sell conditions
if(Open[1]>ma && Close[1]<ma)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
return;
}
//---- buy conditions
if(Open[1]<ma && Close[1]>ma)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
return;
}
//----
}
//+------------------------------------------------------------------+
//| Check for close order conditions |
//+------------------------------------------------------------------+
void CheckForClose()
{
double ma;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//---- get Moving Average
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//---- check order type
if(OrderType()==OP_BUY)
{
if(Open[1]>ma && Close[1]<ma) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
break;
}
if(OrderType()==OP_SELL)
{
if(Open[1]<ma && Close[1]>ma) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
break;
}
}
//----
}
//+------------------------------------------------------------------+
//| Start function |
//+------------------------------------------------------------------+
void start()
{
//---- check for history and trading
if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//----
}
//+------------------------------------------------------------------+
- Mensagens: 1750
- Registado: 18/12/2009 18:54
- Localização: 16
Supermann Escreveu:Em Portugal têm o XTB.
Dados EOD como dados intraday tanto a Forex como Commodities e outros activos.
Permite backtesting e muitos mais coisas.
Nunca trabalhei com estes sistemas, mas se algum de vós já trabalhou gostaria de saber se é possível testar/programar o seguinte:
Comprar determinado activo qd um indicador atinge determinado valor(RSI sobe acima de 30 por exemplo), vender se RSI subir acima dos 70, caso o RSI não atinja os 70 e volte novamente abaixo de 30 e dp sobe, então comprar novamente. ou seja simular para o mesmo trade vários pontos de entrada /reforço. Isto é possível de fazer?
- Mensagens: 181
- Registado: 11/1/2008 11:56
O Amibroker é bom e barato
Podem testa-lo cerca de 30 dias antes de o comprar :-)

Artigos e estudos: Página repositório dos meus estudos e análises que vou fazendo. Regularmente actualizada. É costume pelo menos mais um estudo por semana. Inclui a análise e acompanhamento das carteiras 4 e 8Fundos.
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus
"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Portfolio Analyser: Ferramenta para backtests de Fundos e ETFs Europeus
"We don’t need a crystal ball to be successful investors. However, investing as if you have one is almost guaranteed to lead to sub-par results." The Irrelevant Investor
Re: Sistemas automáticos de Trading e Backtesting
Guitar Bullish Escreveu:Viva Pessoal.
Gostava de saber se conhecem alguns programas (ou plataformas) com sistemas de backtesting ou até de sistemas automatizados de trading. (de preferencia gratuitos ou pouco dispendiosos)
Acho que será interessante lançar este tema para discussão.
Pela minha parte só tenho visto a nível nacional o XTB com o Metatrader 4.
E vocês?
Ola Guitar
Há uns dias tb coloquei um topico no Forum a solicitar exactamente o mesmo que tu...não tive grande feedback, no entanto tb estou bastante interessado neste tema. Já trabalhaste com o Metatrader 4? Tens alguma literatura sobre sistemas automatizados de trading?
- Mensagens: 181
- Registado: 11/1/2008 11:56
O ProRealTime é gratuito, também faz back testing e é facílimo de programar. Queres melhor?
Não têm grandes facilidades de pós-processamento dos resultados do backtest mas... volto a sublinhar: é gratuito.
Não têm grandes facilidades de pós-processamento dos resultados do backtest mas... volto a sublinhar: é gratuito.
"People want to be told what to do so badly that they'll listen to anyone." - Don Draper, Mad Men
Sistemas automáticos de Trading e Backtesting
Viva Pessoal.
Gostava de saber se conhecem alguns programas (ou plataformas) com sistemas de backtesting ou até de sistemas automatizados de trading. (de preferencia gratuitos ou pouco dispendiosos)
Acho que será interessante lançar este tema para discussão.
Pela minha parte só tenho visto a nível nacional o XTB com o Metatrader 4.
E vocês?
Gostava de saber se conhecem alguns programas (ou plataformas) com sistemas de backtesting ou até de sistemas automatizados de trading. (de preferencia gratuitos ou pouco dispendiosos)
Acho que será interessante lançar este tema para discussão.
Pela minha parte só tenho visto a nível nacional o XTB com o Metatrader 4.
E vocês?
Clica no botão que diz: "Vender" antes de dizer que estás a ganhar muito...
16 mensagens
|Página 1 de 1
Quem está ligado:
Utilizadores a ver este Fórum: josehenry400, MP65 e 260 visitantes