Página 1 de 1

MensagemEnviado: 5/2/2012 19:36
por EuroVerde
Quem disse?

MensagemEnviado: 4/8/2011 19:21
por ToshB
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!

MensagemEnviado: 4/8/2011 18:41
por Supermann
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.

MensagemEnviado: 3/8/2011 11:29
por Luis39
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?

MensagemEnviado: 2/8/2011 20:08
por Supermann
Sim eu é q me enganei... pensei que este era de crusamento mas não... é de preço sim senhor :)

MensagemEnviado: 2/8/2011 18:48
por tonirai
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")

MensagemEnviado: 2/8/2011 16:57
por tonirai
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).

MensagemEnviado: 2/8/2011 15:39
por canteiro
Só quem tiver bases de C poderá aspirar ao entendimento :)

MensagemEnviado: 2/8/2011 15:23
por Tridion
Simples só se for para o Superhomemm :wink:

MensagemEnviado: 2/8/2011 15:06
por Supermann
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:

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();
//----
  }
//+------------------------------------------------------------------+

MensagemEnviado: 2/8/2011 10:15
por Luis39
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?

MensagemEnviado: 1/8/2011 17:21
por Supermann
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.

MensagemEnviado: 1/8/2011 15:12
por VirtuaGod
O Amibroker é bom e barato ;-) Podem testa-lo cerca de 30 dias antes de o comprar :-)

Re: Sistemas automáticos de Trading e Backtesting

MensagemEnviado: 1/8/2011 14:58
por Luis39
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?

MensagemEnviado: 31/7/2011 16:42
por Quico
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.

Sistemas automáticos de Trading e Backtesting

MensagemEnviado: 31/7/2011 15:46
por Guitar Bullish
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?